# Nintendo Confidential

## 16. ClusterList

### (1) ClusterList

> u32 cluster_list_tag | ClusterListを示すタグを記述します。下記のタグを設定してください。
>     TAG_CLUSTER_LIST        0x00280000
> u32 cluster_list_header_size | ClusterListHeaderのバイト数を記述します。
> u32 cluster_list_size | ClusterListのバイト数を記述します。
> u32 cluster_shape_num | ClusterShape数を記述します。
> u32 cluster_shape_size | ClusterShapeのバイト数を記述します。
> ClusterShape | ClusterShapeエリアです。

> Go to the data chunk

> Go back to the index

### (2) ClusterShape

> u32 cluster_shape_tag | ClusterShapeを示すタグを記述します。下記のタグを設定してください。
>     TAG_CLUSTER_SHAPE        0x00280100
> u32 this_cluster_shape_index | ClusterShapeのインデックス番号を記述します。
> u32 cluster_shape_size | ClusterShapeのバイト数を記述します。
> u32 cluster_shape_name_index | ClusterShape名をNameList内のインデックス番号で指定します。
> u32 cluster_shape_type | 0x0
> u32 cluster_num | Cluster数を記述します。 １つのシェープ内でClusterを割り当てられていない頂点がある場合、この頂点も１つのClusterとして登録してください。その場合、Cluster(0)に割り当ててください。
> u32 cluster_tri_num | ClusterTri数を記述します。
> Cluster | ある一つのノードに対する頂点の集合をClusterとして登録します。
> ClusterTri | ClusterShape内のClusterに属する頂点を使用した1ポリゴンを表します。

> Go to the data chunk

> Go back to the index

### (3) Cluster

> u32 cluster_tag | Clusterを示すタグを記述します。下記のタグを指定してください。
>     TAG_CLUSTER        0x00280110
> u32 this_cluster_index | このClusterShape内でのClusterのインデックス番号を記述します。
> u32 cluster_size | Clusterのバイト数を記述します。
> u32 cluster_name_index | このCluster名をNameList内のインデックス番号で記述します。
> u32 kind_of_transform_node | Clusterが影響を受けるノードの種類を下記のタグで記述します。
>     TAG_OBJ_LIST            0x00020000
> 外部参照する場合は0xffffffffを記述してください。
> u32 transform_node_index | Clusterが影響を受けるノードのインデックス番号を記述します。 外部参照する場合は0xffffffffを記述してください。
> u32 external_transform_obj_file_name_index | Clusterが影響を受けるObjを外部ファイル参照する場合、そのファイル名をExternalNameListのインデックス番号で記述します。 ファイル名はディレクトリ名などを含まない形で記述してください。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_transform_obj_name_index | Clusterが影響を受けるObjを外部ファイル参照する場合、そのObj名をExternalNameList内のインデックス番号で記述します。 外部参照しない場合は0xffffffffを記述してください。
> u32 cluster_vtx_group_index | このCluster内の頂点座標を指定するVtxGroupのインデックス番号を記述します。
> u32 cluster_vtx_nv_group_index | このCluster内の頂点の法線ベクトルを指定するVtxNvGroupのインデックス番号を記述します。
> u32 cluster_tri_nv_group_index | このCluster内のポリゴンの法線ベクトルを指定するTriNvGroupのインデックス番号を記述します。
> u32 cluster_vtx_color_group_index | このCluster内の頂点カラーを指定するVtxColorGroupのインデックス番号を記述します。
> u32 cluster_tri_color_group_index | このCluster内のポリゴンのカラーを指定するTriNvGroupのインデックス番号を記述します。
> u32 cluster_st_group_index | このCluster内の頂点のST値を指定するStGroupのインデックス番号を記述します。

> Go to the data chunk

> Go back to the index

### (4) ClusterTri

> u32 cluster_tri_tag | ClusterTriを示すタグを記述します。下記のタグを設定してください。
>     TAG_CLUSTER_TRI        0x00280180
> u32 this_cluster_tri_index | ClusterTriのインデックス番号を記述します。
> u32 cluster_tri_size | ClusterTriのバイト数を記述します。
> u32 kind_of_cluster_for_tri | tri_nv_index, tri_color_indexに使用されるClusterの種類を下記のタグで記述します。
>     TAG_CLUSTER        0x00280110
> u32 cluster_index_for_tri | tri_nv_index, tri_color_indexに使用されるClusterのインデックス番号を記述します。
> u32 tri_nv_index | このtriangleの法線ベクトルのインデックス番号を記述します。 なお、CGツール上で４角形以上のpolygonを自動分割する場合、そのtriangleの法線ベクトルは各頂点の法線ベクトルを平均化した物を同一のデータとして出力してください。
> u32 tri_color_index | このtriangleのカラーを指定します。 なお、CGツール上で４角形以上のpolygonを自動分割する場合、そのtriangleのカラーは同一データを出力してください。
> ClusterVtx | ClusterVtxエリアです。このtriangleを構成するVtxを記述します。

> Go to the data chunk

> Go back to the index

### (5) ClusterVtx

> u32 kind_of_cluster | この頂点の属するClusterの種類を下記のタグで記述します。
>     TAG_CLUSTER        0x00280110
> u32 cluster_index | Clusterのインデックス番号を記述します。
> u32 vtx_index | 頂点のインデックス番号を記述します。
> u32 st_index | 頂点のST値のインデックス番号を記述します。
> u32 vtx_nv_index | 頂点の法線ベクトルのインデックス番号を記述します。 vtx_indexと同一になるように出力してください。
> u32 vtx_color_index | 頂点カラーのインデックス番号を記述します。

> Go to the data chunk

> Go back to the index

Copyright 1998,1999 NINTENDO Co.,Ltd. All rights reserved.
Copyright 1998,1999 MONEGI CORPORATION All rights reserved.