# Nintendo Confidential

## 7. ShapeNode

### (1) ShapeNode

> u32 shape_type | Shapeのタイプを指定します。現在下記のフラグが定義されています。
>     SHAPE_TYPE_CLEAR	0x00000000
>     SHAPE_TYPE_AA		0x00000001
>     SHAPE_TYPE_RA		0x00000002
>     SHAPE_TYPE_ZB		0x00000004
>     SHAPE_TYPE_CULL_BACK	0x00000010
>     SHAPE_TYPE_CULL_FRONT	0x00000020
>     SHAPE_TYPE_CULL_BOTH	0x00000030
> SHAPE_TYPE_CLEARはシェープタイプをクリアします。 SHAPE_TYPE_AAはアンチエイリアス処理を行います。 SHAPE_TYPE_RAはレデュースドエイリアス処理を行います。 SHAPE_TYPE_ZBはz-buffer処理を行います。 SHAPE_TYPE_CULL_BACKはバックフェイスカリングを行います。

> SHAPE_TYPE_CULL_FRONTはフロントフェイスカリングを行います。

> SHAPE_TYPE_CULL_BOTHは常にカリングを行います。

> SHAPE_TYPE_AA、SHAPE_TYPE_RAフラグは両方同時に指定することはできません。また、SHAPE_TYPE_CULL_*フラグもいずれか一つを指定することになります。

> たとえば、アンチエイリアス、z-buffer処理をし、バックフェイスカリングを行ったシェープデータの場合、下記のようにフラグをセットします。

>     SHAPE_TYPE_AA | SHAPE_TYPE_ZB | SHAPE_TYPE_CULL_BACK

> NIFF2.0から下記のフラグが追加されました。

>     SHAPE_TYPE_USE_VTX_ALPHA_FOR_FOG	0x00000100

> このフラグはFogを使用する場合に頂点アルファを使用する時にセットしてください。 通常Fogを使用する場合はNIFF→N64コンバータで頂点アルファを出力しません。このフラグをセットするとFogを使用する場合でも強制的に頂点アルファを出力します。
> u32 kind_of_node_for_geometry | NIFF2.0からshape_tri_linkでリンクできるノードはTriGroupノード、 Envelopeノード、ClusterShapeノードの３種類になります。 このデータに下記のタグのうちのいずれかを設定することで、shape_tri_linkは該当するリスト中の インデックス番号を示します。
>     TAG_TRI_GROUP           0x00080100
>     TAG_ENVELOPE            0x00220100
>     TAG_CLUSTER_SHAPE       0x00280100
> TAG_TRI_GROUPの場合、shape_tri_linkはTriGroupのインデックス番号を記述します。 TAG_ENVELOPEの場合、shape_tri_linkはEnvelopeのインデックス番号を記述します。 TAG_CLUSTER_SHAPEの場合、shape_tri_linkはClusterShapeのインデックス番号を記述します。
> u32 external_mat_file_name_index | Matノードを外部ファイル参照する場合、そのファイル名をExternalNameListのインデックス番号で記述します。 ファイル名はディレクトリ名などを含まない形で記述してください。 その場合、shape_mat_link = 0xffffffffを指定してください。 外部ファイル参照しない場合は0xffffffffを記述してください。
> u32 external_mat_name_index | Matノードを外部ファイル参照する場合、Mat名をExternalNameList内のインデックス番号で記述します。 その場合、shape_mat_link = 0xffffffffを指定してください。 外部ファイル参照しない場合は0xffffffffを記述してください。

> 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.