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 0x00004000If 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 0x00260000When 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 0x00260000When 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 0x00260000When 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 0x00260000When 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 0x00260000When 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 0x00260000When 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 0x00260000When 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.
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 0x00000003NIFF2_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.
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 0x00000003NIFF2_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.
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 0x00000003NIFF2_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.
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 0x00000003NIFF2_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.
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 0x00000003NIFF2_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.
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 0x00000003NIFF2_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.
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 0x00000003NIFF2_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.
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 0x00000003NIFF2_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.