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ノードの3種類になります。

このデータに下記のタグのうちのいずれかを設定することで、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.