### Nintendo Confidential

## 15. Envelope Node

### (1) EnvelopeList Description (English)

> u32 envelope_list_tag | Specifies the tags of EnvelopeList. Please set the tags shown below.
>     TAG_ENVELOPE_LIST       0x00220000
> u32 envelope_list_header_size | Specifies the byte size of the EnvelopeListHeader.
> u32 envelope_list_size | Specifies the byte size of the EnvelopeList.
> u32 envelope_num | Specifies the total number of Envelope.
> u32 envelope_size | Specifies the byte size of the envolpe Envelope.
> Envelope | This is the Envelope area.

> See Data Chunk

### (2) Envelope Description (English)

> u32 envelope_tag | Specifies the tags of Envelope. Please set the tags shown below.
>     TAG_ENVELOPE            0x00220100
> u32 this_envelope_index | Specifies the Envelope index number.
> u32 envelope_header_size Specifies the byte size of the EnvelopeHeader.
> u32 envelope_size | Specifies the byte size of the Envelope.
> u32 envelope_name_index | Specifies the Envelope name with the index number in the NameList.
> u32 envelope_type | 0x0
> u32 full_weighted_part_num | Specifies the total number of FullWeightedPart.
> u32 weighted_part_num | Specifies the total number of WeightedPart.
> u32 morph_part_num | Specifies the total number of MorphPart.
> u32 envelope_tri_num | Specifies the total number of EnvelopeTri.
> FullWeightedPart | FullWeightPart is the group of vertices for which all Weight are 100% in the Envelope.
> WeightedPart | WeightedPart is the group of vertices expressed in a normal Envelope.
> MorphPart | MorphPart is the group of vertices affected only by single-axis rotation in the Envelope.
> EnvelopeTri | Display 1 polygon using the vertices that belong to one of the parts in the Envelope.

> See Data Chunk

### (3) FullWeightedPart Description (English)

> u32 full_weighted_part_tag | Specifies the tags of FullWeightedPart. Please specify the tags shown below.
>     TAG_FULL_WEIGHTED_PART  0x00220110
> u32 this_full_weighted_part_index | Specifies the index number of the FullWeightedPart in this Envelope.
> u32 full_weighted_part_size | Specifies the byte size of the FullWeightedPart.
> u32 full_weighted_part_name_index | Specifies this FullWeightedPart name with a NameList index number.
> u32 kind_of_transform_node_full | Use the tags below to specify the node type that affects the Part:
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> For an external reference, please set it to 0xffffffff.
> u32 transform_node_index_full | Specifies the index number of the node that affects the Part. For an external reference, please set it to 0xffffffff.
> u32 external_transform_obj_file_name_index | When the Obj that affects the FullWeightedPart references an external file, that file name is specified with an ExternalNameList index number. Please do not include the directory name etc. when specifying this file name. If there is no external reference, please set it to 0xffffffff.
> u32 external_transform_obj_name_index | When the Obj that affects the FullWeightedPart references an external file, that Obj name is specified with an ExternalNameList index number. If there is no external reference, please set it to 0xffffffff.
> u32 full_weighted_vtx_group_index | Specifies the index number of the VtxGroup that specifies the vertex coordinates in this part.
> u32 full_weighted_vtx_nv_group_index | Specifies the index number of the VtxNvGroup that specifies the normal vectors of vertices in this part.
> u32 full_weighted_tri_nv_group_index | Specifies the index number of the TriNvGroup that specifies the normal vectors of the polygons in this part.
> u32 full_weighted_vtx_color_group_index | Specifies the index number of the VtxColorGroup that specifies the vertex color in this part.
> u32 full_weighted_tri_color_group_index | Specifies the index number of the TriNvGroup that specifies the polygon color in this part.
> u32 full_weighted_st_group_index | Specifies the index number of the StGroup that specifies the ST values of the vertices in this part.

> See Data Chunk

### (4) WeightedPart Description (English)

> u32 weighted_part_tag | Specifies the tags of WeightedPart. Please specify the tags shown below.
>     TAG_WEIGHTED_PART       0x00220120
> u32 this_weighted_part_index | Specifies this WeightedPart index number.
> u32 weighted_part_size | Specifies the byte size of the WeightedPart.
> u32 weighted_part_name_index | Specifies the WeightedPart name with an index number in the NameList.
> u32 affected_node_num | Specifies the total number of the node that affects the vertices in this part.
> u32 weight_st_group_index | Specifies the StGroup index number indicating the vertices in this part.
> u32 external_affected_obj_num | Specifies the total number of the Obj that affects an external file reference WeightedPart.
> u32 kind_of_affected_node | Use the tags shown below to specify the node type that affects the vertices in this part.
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> u32 affected_node_index | Specifies the node index number that affects the vertices in this part.
> u32 external_affected_obj_file_name_index | When the Obj that affects this WeightedPart references an external file, that file name is specified with an ExternalNameList index number. Please do not include the directory name etc. when specifying this file name. If there is no external reference (external_affected_obj_num = 0), this field is not specified.
> u32 external_affected_obj_name_index | When the Obj that affects this WeightedPart references an external file, that Obj name is specified with an ExternalNameList index number. If there is no external reference (external_affected_obj_num = 0), this field is not specified.
> u32 weight_group_index | Specifies the WeightGroup index number indicating the weight value of the effect to each vertex from the node. Save the weight value such that the indexes are the same in each vertex pertaining to the corrresponding index.
> u32 weight_vtx_group_index | Specifies the index number of the VtxGroup that indicates the vertices in this part. Save the vertex such that the indexes are the same in the various VtxGroup pertaining to the corresponding vertex.
> u32 weight_vtx_nv_group_index | Specifies the index number of the VtxNvGroup that indicates the vertices in this part. Save vertex normal such that the indexes are the same in the various VtxNvGroup pertaining to the corresponding vertex.
> u32 weight_tri_nv_group_index | Specifies the index number of the TriNvGroup that indicates the vertices in this part. Save triangle normal such that the indexes are the same in the various TriNvGroup pertaining to the corresponding triangle.
> u32 weight_vtx_color_group_index | Specifies the index number of the VtxColorGroup that indicates the vertices in this part. Save vertex color such that the indexes are the same in the various VtxColorGroup pertaining to the corresponding vertex.
> u32 weight_tri_color_group_index | Specifies the index number of the TriNvGroup that indicates the vertices in this part. Save triangle color such that the indexes are the same in the various TriColorGroup pertaining to the corresponding triangle.

> See Data Chunk

### (5) MorphPart Description (English)

> u32 morph_part_tag | Specifies the tags of MorphPart. Please specify the tags shown below.
>     TAG_MORPH_PART          0x00220130
> u32 this_morph_part_index | Specifies this MorphPart index number.
> u32 morph_part_size | Specifies the byte size of the MorphPart.
> u32 morph_part_name_index | Specifies the index number of the MorphPart name in the NameList.
> u32 kind_of_node0 u32 kind_of_node1 | Use the tags below to specify the node type that affects this part:
>     TAG_OBJ_LIST            0x00020000
>     TAG_JOINT_LIST          0x00250000
> For an external reference, please set it to 0xffffffff.
> u32 node_index0 u32 node_index1 | Specifies the node index number that affects this part. For an external reference, please set it to 0xffffffff.
> u32 external_obj0_file_name_index u32 external_obj1_file_name_index | When the Obj that affects this MorphPart references the index number of an external file, that file name is specified with an ExternalNameList. Please do not include the directory name etc. when specifying this file name. If there is no external reference, please set it to 0xffffffff.
> u32 external_obj0_name_index u32 external_obj1_name_index | When the Obj that affects this MorphPart references the index number of an external file, that Obj name is specified with an ExternalNameList. If there is no external reference, please set it to 0xffffffff.
> u32 morph_st_group_index | Specifies the StGroup index number specified in this part in correspondence to the table.
> u32 table_num | This part divides the angle between two nodes by the specified number and makes a table from which vertices are affected. The divisor is specified here. Please specify either 9, 17, 33 or 65.
> u32 morph_vtx_group_index | Specifies the VtxGroup index number specified in this part in correspondence to the table. The values in VtxGroup are the coordinate values of the node indicated by node_index0.
> u32 morph_vtx_nv_group_index | Specifies the VtxNvGroup index number specified in this part in correspondence to the table. The values in VtxNvGroup are the normal vector values of the node indicated by node_index0.
> u32 morph_tri_nv_group_index | Specifies the TriNvGroup index number specified in this part in correspondence to the table. The values in TriNvGroup are the normal vector values of the node indicated by node_index0.
> u32 morph_vtx_color_group_index | Specifies the VtxColorGroup index number specified in this part in correspondence to the table.
> u32 morph_tri_color_group_index | Specifies the TriColorGroup index number specified in this part in correspondence to the table.

> See Data Chunk

### (6) EnvelopeTri Description (English)

> u32 envelope_tri_tag | Specifies the tags of EnvelopeTri. Please set the tags shown below.
>     TAG_ENVELOPE_TRI       0x00220180
> u32 this_envelope_tri_index | Specifies the EnvelopeTri index number.
> u32 envelope_tri_size | Specifies the byte size of the EnvelopeTri.
> u32 kind_of_envelope_for_tri | The tags shown below describe the type of Envelope part that is used by tri_nv_index and tri_color_index.
>     TAG_FULL_WEIGHTED_PART  0x00220110
>     TAG_WEIGHTED_PART       0x00220120
>     TAG_MORPH_PART          0x00220130
> u32 envelope_part_index_for_tri | Specifies the index number of the Envelope part used by tri_nv_index and tri_color_index.
> u32 envelope_tri_size Specifies the byte size of the EnvelopeTri.
> u32 tri_nv_index | Specifies the index number of the normal vector of this triangle. If polygons with four or more sides are to be automatically divided with the CG tool, please output the data such that the same index is assigned for each triangle that is created.
> u32 tri_color_index | Specifies this triangle's color. If polygons with four or more sides are to be automatically divided with the CG tool, please output the data such that the same index is assigned for each triangle that is created.
> u32 weight_index_tri | When this triangle is a WeightedPart, this specifies it with the index number of the WeightGroup that indicates the weight value. Specify 0xffffffff if this triangle is not a WeightedPart. If polygons with four or more sides are to be automatically divided with the CG tool, please output the data such that the same index is assigned for each triangle that is created.
> EnvelopeVtx | This is the EnvelopeVtx area. Specifies the Vtx comprising this triangle.

> See Data Chunk

### (7) EnvelopeVtx Description (English)

> u32 kind_of_envelope u32 kind_of_envelope_part | The tags shown below describe the Envelope type of this vertex.
>     TAG_FULL_WEIGHTED_PART  0x00220110
>     TAG_WEIGHTED_PART       0x00220120
>     TAG_MORPH_PART          0x00220130
> u32 envelope_part_index | Specifies the index number of the Envelope part. The Envelope parts (FullWeightedPart, WeightedPart and MorphPart) indicate different types of part which differ in the way the vertices in the Envelope are weighted.
> u32 vtx_index | Specifies the index number of the vertex.
> u32 st_index | Specifies the index number of the ST value of the vertex.
> u32 vtx_nv_index | Specifies the index number of the normal vectors of the vertex. Please output so it is identical to vtx_index.
> u32 vtx_color_index | Specifies the index number for the color of the vertex.
> u32 weight_index | When this vertex is a WeightedPart, this specifies it with the index number of the WeightGroup that indicates the weight value. Specify 0xffffffff if this triangle is not a WeightedPart.

> See Data Chunk

> See Appendix 4: Envelope System

> Back to Index

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