### Nintendo Confidential

## 12. Anim Node

### (1) AnimGroup Description (English)

> u32 use_animation_channel | When every channel has data, this is used instead of Anim, which was used by NIFF 1.0. The following are the channels that are ready for use:
>     NIFF2_ANIM_CHANNEL_NO_USE                        0x00000000
>     NIFF2_ANIM_CHANNEL_ROTATE_AXIS                   0x00000001
>     NIFF2_ANIM_CHANNEL_ROTATE_X                      0x00000002
>     NIFF2_ANIM_CHANNEL_ROTATE_Y                      0x00000004
>     NIFF2_ANIM_CHANNEL_ROTATE_Z                      0x00000008
>     NIFF2_ANIM_CHANNEL_ORIENTATION_XY                0x00000010
>     NIFF2_ANIM_CHANNEL_TRANSLATION                   0x00000020
>     NIFF2_ANIM_CHANNEL_UNIQUE_SCALE                  0x00000040
>     NIFF2_ANIM_CHANNEL_CLASSICAL_SCALE               0x00000080
>     NIFF2_ANIM_CHANNEL_ORIENTATION_CONSTRAINT        0x00000100
>     NIFF2_ANIM_CHANNEL_DIRECTION_CONSTRAINT          0x00000200
>     NIFF2_ANIM_CHANNEL_UPVECTOR_CONSTRAINT           0x00000400
>     NIFF2_ANIM_CHANNEL_PREFERRED_AXIS_CONSTRAINT     0x00000800
>     NIFF2_ANIM_CHANNEL_POSITION_CONSTRAINT           0x00001000
>     NIFF2_ANIM_CHANNEL_UNIQUE_SCALE_CONSTRAINT       0x00002000
>     NIFF2_ANIM_CHANNEL_CLASSICAL_SCALE_CONSTRAINT    0x00004000
> If the former Anim is used, please set ANIM_CHANNEL_NO_USE. NIFF2_ANIM_CHANNEL_ROTATE_AXIS is the animation channel for spinning around the rotation axis. NIFF2_ANIM_CHANNEL_ROTATE_X is the animation channel specifying the angle of rotation around the X axis.

> NIFF2_ANIM_CHANNEL_ROTATE_Y is the animation channel specifying the angle of rotation around the Y axis.

> NIFF2_ANIM_CHANNEL_ROTATE_Z is the animation channel specifying the angle of rotation around the Z axis.

> NIFF2_ANIM_CHANNEL_ORIENTATION_XY is the animation channel specifying the rotation orientation, in which case the X axis and Y axis are specified. If the X axis and the Y axis are not vertical to each other, please adjust the Y axis to create the N64 software

> NIFF2_ANIM_CHANNEL_TRANSLATION is the animation channel specifying the translating value.

> NIFF2_ANIM_CHANNEL_UNIQUE_SCALE is the animation channel specifying the unique scale used by Unique.

> NIFF2_ANIM_CHANNEL_CLASSICAL_SCALE is the animation channel specifying the scale used by normal CG tools.

> NIFF2_ANIM_CHANNEL_ORIENTATION_CONSTRAINT is the animation channel that constrains the orientation value for the specified object.

> NIFF2_ANIM_CHANNEL_DIRECTION_CONSTRAINT is the animation channel that constrains the object specifying the X axis.

> NIFF2_ANIM_CHANNEL_UPVECTOR_CONSTRAINT is the animation channel that constrains the object specifying the Y axis.

> NIFF2_ANIM_CHANNEL_PREFERRED_AXIS_CONSTRAINT is the animation channel that constrains the object specifying the Z axis.

> NIFF2_ANIM_CHANNEL_POSITION_CONSTRAINT is the animation channel that constrains the object specifying translating.

> NIFF2_ANIM_CHANNEL_UNIQUE_SCALE_CONSTRAINT is the animation channel that constrains the object specifying unique scale.

> NIFF2_ANIM_CHANNEL_CLASSICAL_SCALE_CONSTRAINT is the animation channel that constrains the object specifying classical scale.

> If multiple animation channels are used simultaneously, please describe each with bitOR. However, there are some impossible combinations as shown below:

> RotateAxis, (RotateX, RotateY, RotateZ), OrientationXY cannot be used simultaneously. However, RotateX, RotateY and RotateZ can be used in combination.

> UniqueScale and ClassicalScale cannot be used simultaneously.

> OrientationConstraint cannot be used simultaneously with RotateAxis, RotateY, RotateZ, or OrientationXY.

> UpVectorConstraint cannot be used simultaneously with RotateAxis, RotateX, RotateZ, or OrientationXY.

> PreferredAxisConstraint cannot be used simultaneously with RotateAxis, RotateX, RotateY, or OrientationXY.

> Direction Constraint cannot be used simultaneously with RotateAxis, RotateX, RotateY, or OrientationXY.

> PositionConstraint and Translation cannot be used simultaneously.

> UniqueScaleConstraint cannot be used simultaneously with UniqueScale, ClassicalScale, or ClassicalScaleConstraint.

> ClassicalScaleConstraint cannot be used simultaneously with UniqueScale, ClassicalScale, or UniqueScaleConstraint.

> Plural constraints that are of the same kind cannot be used simultaneously for translating, rotating or scaling.

> u32 rotate_axis_num | Specifies the total number of RotateAxis. When the RotateAxis channel is not used, please set it to 0x0.
> u32 rotate_x_num | Specifies the total number of RotateX. When the RotateX channel is not used, please set it to 0x0.
> u32 rotate_y_num | Specifies the total number of RotateY. When the RotateY channel is not used, please set it to 0x0.
> u32 rotate_z_num | Specifies the total number of RotateZ. When the RotateZ channel is not used, please set it to 0x0.
> u32 orientation_xy_num | Specifies the total number of OrientationXY. When the OrientationXY channel is not used, please set it to 0x0.
> u32 translation_num | Specifies the total number of Translation. When the Translation channel is not used, please set it to 0x0.
> u32 unique_scale_num | Specifies the total number of UniqueScale. When the UniqueScale channel is not used, please set it to 0x0.
> u32 classical_scale_num | Specifies the total number of ClassicalScale. When the ClassicalScale channel is not used, please set it to 0x0.
> u32 kind_of_orientation_constraint_node | The following tags specify the type of the node that performs Orientation Constraint.
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> When Orientation Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 orientation_constraint_node | Specifies the index number of the node that performs Orientation Constraint. When Orientation Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 kind_of_direction_constraint_node | The following tags specify the type of node that performs Direction Constraint.
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> When Direction Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 direction_constraint_node | Specifies the index number of the node that performs Direction Constraint. If Direction Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 kind_of_upvector_constraint_node | The following tags specify the type of node that performs Upvector Constraint.
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> When not using Upvector Constraint, or if there are any external file references, please set it to 0xffffffff.
> u32 upvector_constraint_node | Specifies the index number of the node that performs UpVector Constraint. When not using Upvector Constraint, or if there are any external file references, please set it to 0xffffffff.
> u32 kind_of_preferred_axis_constraint_node | The following tags specify the type of node that performs Preferred Axis Constraint.
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> When Preferred Axis Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 preferred_axis_constraint_node | Specifies the index number of the node that performs Preferred Axis Constraint. When Preferred Axis Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 kind_of_position_constraint_node | The following tags specify the type of node that performs Position Constraint.
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> When Position Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 position_constraint_node | Specifies the index number of the node that performs Position Constraint. When Position Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 kind_of_unique_scale_constraint_node | The following tags specifies the type of node that performs Unique Scale Constraint.
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> When Unique Scale Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 unique_scale_constraint_node | Specifies the index number of the node that performs Unique Scale Constraint. When Unique Scale Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 kind_of_classical_scale_constraint_node | The following tags specify the type of node that performs Classical Scale Constraint.
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> When Classical Scale Constraint is not used, or there are any external file references, please set it to 0xffffffff.
> u32 classical_scale_constraint_node | Specifies the index number of the node that performs Classical Scale Constraint. When Classical Scale Constraint is not used, or if there are any external file references, please set it to 0xffffffff.
> u32 external_orientation_constraint_file_name_index | If the Obj that performs Orientation Constraint is referenced as an external file, that file name is specified by the 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_orientation_constraint_obj_name_index | If the Obj that performs Orientation Constraint is referenced as an external file, that Obj name is specified by the ExternalNameList index number. If there is no external reference, please set it to 0xffffffff.
> u32 external_direction_constraint_file_name_index | If the Obj that performs Direction Constraint is referenced as an external file, that file name is specified by the 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_direction_constraint_obj_name_index | If the Obj that performs Direction Constraint is referenced as an external file, that Obj name is specified by the ExternalNameList index number. If there is no external reference, please set it to 0xffffffff.
> u32 external_upvector_constraint_file_name_index | If the Obj that performs Upvector Constraint is referenced as an external file, that file name is specified by the 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_upvector_constraint_obj_name_index | If the Obj that performs Upvector Constraint is referenced as an external file, that Obj name is specified by the ExternalNameList index number. If there is no external reference, please set it to 0xffffffff.
> u32 external_preferred_axis_constraint_file_name_index | If the Obj that performs Preferred Axis Constraint is referenced as an external file, that file name is specified by the 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_preferred_axis_constraint_obj_name_index | If the Obj that performs Preferred Axis Constraint is referenced as an external file, that Obj name is specified by the ExternalNameList index number. If there is no external reference, please set it to 0xffffffff.
> u32 external_position_constraint_file_name_index | If the Obj that performs Position Constraint is referenced as an external file, that file name is specified by the 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_position_constraint_obj_name_index | If the Obj that performs Position Constraint is referenced as an external file, that Obj name is specified by the ExternalNameList index number. If there is no external reference, please set it to 0xffffffff.
> u32 external_unique_scale_constraint_file_name_index | If the Obj that performs Unique Scale Constraint is referenced as an external file, that file name is specified by the 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_unique_scale_constraint_obj_name_index | If the Obj that performs Unique Scale Constraint is referenced as an external file, that Obj name is specified by the ExternalNameList index number. If there is no external reference, please set it to 0xffffffff.
> u32 external_classical_scale_constraint_file_name_index | If the Obj that performs Classical Scale Constraint is referenced as an external file, that file name is specified by the 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_classical_scale_constraint_obj_name_index | If the Obj that performs Classical Scale Constraint is referenced as an external file, that Obj name is specified by the ExternalNameList index number. If there is no external reference, please set it to 0xffffffff.
> RotateAxis | This is the RotateAxis area. This channel specifies rotation by specifying the axis of rotation. When rotate_axis_num = 0, this area is not used.
> RotateX | This is the channel that specifies rotation around the X axis. When rotate_x_num = 0, this area is not used.
> RotateY | This is the channel that specifies rotation around the Y axis. When rotate_y_num = 0, this area is not used.
> RotateZ | This is the channel that specifies rotation around the Z axis. When rotate_z_num = 0, this area is not used.
> OrientationXZ | The channel is used when rotation is specified by orientation. In the case of orientation_xy_num=0, this area is not used.
> Translation | This is the area that specifies translating. When translation_num = 0, this are is not used.
> UniqueScale | This is the area that specifies UniqueScale. When unique_scale_num = 0, this area is not used.
> ClassicalScale | This is the area that specifies ClassicalScale scaling used by normal CG tools. When classical_scale_num = 0, this area is not used.

> See Data Chunk

> See Appendix 3: Unique Scale

> See Appendix 6: Hermite Interpolation

### (2) RotateAxis Description (English)

> u32 interpolation_type | Specifies the interpolation type from this key to the next key. The following flags have been defined:
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONST retains data from this key to the next key. In this case, all acceleration data is ignored. NIFF2_INTERPOLATION_TYPE_FULL expresses full frame animation. Please specify data for all keys. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_LINEAR performs linear interpolation from this key to the next key. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_HERMITE performs trilinear interpolation from this key to the next key using the Hermite function

> u32 key | Specifies the Key value.
> float axis_x | Specifies the X component of the direction vector of the normalized rotation axis.
> float axis_y | Specifies the Y component of the direction vector of the normalized rotation axis.
> float axis_z | Specifies the Z component of the direction vector of the normalized rotation axis.
> float rotation_angle | Uses radians to describe the angle around the rotation axis.
> float differential_axis_x | Specifies the X component of the connection vector for Hermite interpolation concerning the direction vector of the rotation axis.
> float differential_axis_y | Specifies the Y component of the connection vector for Hermite interpolation concerning the direction vector of the rotation axis.
> float differential_axis_z | Specifies the Z component of the connection vector for Hermite interpolation concerning the direction vector of the rotation axis.
> float differential_rotation_angle | Specifies the connection vector for Hermite interpolation concerning the angle around the rotation axis.

> See Data Chunk

> See Appendix 6: Hermite Interpolation

### (3) RotateX Description (English)

> u32 interpolation_type | Specifies the interpolation type from this key to the next key. The following flags have been defined:
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONST retains data from this key to the next key. In this case, all acceleration data is ignored. NIFF2_INTERPOLATION_TYPE_FULL specifies full frame animation. Please specify data for all keys. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_LINEAR performs linear interpolation from this key to the next key. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_HERMITE uses the Hermite function to perform 3D interpolation from this key to the next key.

> u32 key | Specifies the Key value.
> float rotate_angle | Uses radians to specify the rotation angle around the X axis.
> float differential_rotate_angle | Specifies the connection vector for Hermite interpolation concerning the rotation angle around the X axis.

> See Data Chunk

> See Appendix 6: Hermite Interpolation

### (4) RotateY Description (English)

> u32 interpolation_type | Specifies the interpolation type from this key to the next key. The following flags have been defined:
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONST retains data from this key to next key. In this case, all acceleration data is ignored. NIFF2_INTERPOLATION_TYPE_FULL specifies full frame animation. Please specify data for all keys. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_LINEAR performs linear interpolation from this key to the next key. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_HERMITE uses the Hermite function to perform 3D interpolation from this key to the next key.

> u32 key | Specifies the Key value.
> float rotate_angle | Uses radians to describe the rotation angle around the Y axis.
> float differential_rotate_angle | Specifies the connection vector for Hermite interpolation concerning the rotation angle around the Y axis.

> See Data Chunk

> See Appendix 6: Hermite Interpolation

### (5) RotateZ Description (English)

> u32 interpolation_type | Specifies the interpolation type from this key to the next key. The following flags have been defined:
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONST retains data from this key to the next key. In this case, all acceleration data is ignored. NIFF2_INTERPOLATION_TYPE_FULL specifies full frame animation. Please specify data for all keys. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_LINEAR performs linear interpolation from this key to the next key. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_HERMITE uses the Hermite function to perform 3D interpolation from this key to the next key.

> u32 key | Specifies the Key value.
> float rotate_angle | Uses radians to describe the rotation angle around the Z axis.
> float differential_rotate_angle | Specifies the connection vector for Hermite interpolation concerning the rotation angle around the Z axis.

> See Data Chunk

> See Appendix 6: Hermite Interpolation

### (6) OrientationXY Description (English)

> u32 interpolation_type | Specifies the interpolation type from this key to the next key. The following flags have been defined:
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONST retains data from this key to the next key. In this case, all acceleration data is ignored. NIFF2_INTERPOLATION_TYPE_FULL specifies full frame animation. Please specify data for all keys. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_LINEAR performs linear interpolation from this key to the next key. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_HERMITE uses the Hermite function to perform 3D interpolation from this key to the next key.

> u32 key | Specifies the Key value.
> float x_axis_x | Specifies the X component of the normalized X axis.
> float x_axis_y | Specifies the Y component of the normalized X axis.
> float x_axis_z | Specifies the Z component of the normalized X axis.
> float y_axis_x | Specifies the X component of the normalized Y axis.
> float y_axis_y | Specifies the Y component of the normalized Y axis.
> float y_axis_z | Specifies the Z component of the normalized Y axis.
> float differential_x_axis_x | Specifies the connection vector for Hermite interpolation concerning the X component of the X axis.
> float differential_x_axis_y | Specifies the connection vector for Hermite interpolation concerning the Y component of the X axis.
> float differential_x_axis_z | Specifies the connection vector for Hermite interpolation concerning the Z component of the X axis.
> float differential_y_axis_x | Specifies the connection vector for Hermite interpolation concerning the X component of the Y axis.
> float differential_y_axis_y | Specifies the connection vector for Hermite interpolation concerning the Y component of the Y axis.
> float differential_y_axis_z | Specifies the connection vector for Hermite interpolation concerning the Z component of the Y axis.

> See Data Chunk

> See Appendix 6: Hermite Interpolation

### (7) Translation Description (English)

> u32 interpolation_type | Specifies the interpolation type from this key to the next key. The following flags have been defined:
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONST retains the data from this key to the next key. In this case, all acceleration data is ignored. NIFF2_INTERPOLATION_TYPE_FULL specifies full frame animation. Please specify the data for all keys. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_LINEAR performs linear interpolation from this key to the next key. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_HERMITE uses the Hermite function to perform 3D interpolation from this key to the next key.

> u32 key | Specifies the Key value.
> float translate_x | Specifies the X component of the translation.
> float translate_y | Specifies the Y component of the translation.
> float translate_z | Specifies the Z component of the translation.
> float differential_translate_x | Specifies the connection vector for Hermite interpolation concerning the X component of the translation.
> float differential_translate_y | Specifies the connection vector for Hermite interpolation concerning the Y component of the translation.
> float differential_translate_z | Specifies the connection vector for Hermite interpolation concerning the Z component of the translation.

> See Data Chunk

> See Appendix 6: Hermite Interpolation

### (8) UniqueScale Description (English)

> u32 interpolation_type | Specifies the interpolation type from this key to the next key. The following flags have been defined:
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONST retains the data from this key to the next key. In this case, all acceleration data is ignored. NIFF2_INTERPOLATION_TYPE_FULL specifies full frame animation. Please specify the data for all keys. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_LINEAR performs linear interpolation from this key to the next key. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_HERMITE uses the Hermite function to perform 3D interpolation from this key to the next key.

> u32 key | Specifies the Key value.
> float scale_x | Specifies the scale value in the X axis direction.
> float scale_y | Specifies the scale value in the Y axis direction.
> float scale_z | Specifies the scale value in the Z axis direction.
> float differential_scale_x | Specifies the connection vector for Hermite interpolation concerning the scale value in the X axis direction.
> float differential_scale_y | Specifies the connection vector for Hermite interpolation concerning the scale value in the Y axis direction.
> float differential_scale_z | Specifies the connection vector for Hermite interpolation concerning the scale value in the Z axis direction.

> See Data Chunk

> See Appendix 3: Unique Scale

> See Appendix 6: Hermite Interpolation

### (9) ClassicalScale Description (English)

> u32 interpolation_type | Specifies the interpolation type from this key to the next key. The following flags have been defined:
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONST retains the data from this key to the next key. In this case, all acceleration data is ignored. NIFF2_INTERPOLATION_TYPE_FULL specifies full frame animation. Please specify the data for all keys. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_LINEAR performs linear interpolation from this key to the next key. In this case, all acceleration data is ignored.

> NIFF2_INTERPOLATION_TYPE_HERMITE uses the Hermite function to perform 3D interpolation from this key to the next key.

> u32 key | Specifies the Key value.
> float scale_x | Specifies the scale value in the X axis direction.
> float scale_y | Specifies the scale value in the Y axis direction.
> float scale_z | Specifies the scale value in the Z axis direction.
> float differential_scale_x | Specifies the connection vector for Hermite interpolation concerning the scale value in the X axis direction.
> float differential_scale_y | Specifies the connection vector for Hermite interpolation concerning the scale value in the Y axis direction.
> float differential_scale_z | Specifies the connection vector for Hermite interpolation concerning the scale value in the Z axis direction.

> See Data Chunk

> See Appendix 6: Hermite Interpolation

> Back to Index

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