# Nintendo Confidential

## 12. AnimNode

### (1) AnimGroup

> u32 use_animation_channel | NIFF1.0で使用していたAnimを使用せずに各チャンネル毎にデータを持つ場合に使用します。下記のチャンネルが用意されています。
>     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
> 従来通りのAnimを使用する場合はANIM_CHANNEL_NO_USEを設定してください。 NIFF2_ANIM_CHANNEL_ROTATE_AXISはローテーション軸について回転するアニメーションチャンネルです。 NIFF2_ANIM_CHANNEL_ROTATE_XはX軸周りの回転角度を指定するアニメーションチャンネルです。 NIFF2_ANIM_CHANNEL_ROTATE_YはY軸周りの回転角度を指定するアニメーションチャンネルです。 NIFF2_ANIM_CHANNEL_ROTATE_ZはZ軸周りの回転角度を指定するアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_ORIENTATION_XYはX軸とY軸の方向を指定して回転をおこないアニメーションチャンネルです。X軸とY軸が直交しない場合はY軸を調整するようにN64側のソフトウェアを作成してください。

> NIFF2_ANIM_CHANNEL_TRANSLATIONは平行移動値を指定するアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_UNIQUE_SCALEはUniqueで使用されるunique scaleを指定するアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_CLASSICAL_SCALEは通常のCGツールで使用されるscaleを指定するアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_ORIENTATION_CONSTRAINTは指定したオブジェクトに対してorientation値をconstraintするアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_DIRECTION_CONSTRAINTはX軸を指定したオブジェクトに向けるアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_UPVECTOR_CONSTRAINTはY軸を指定したオブジェクトに向けるアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_PREFERRED_AXIS_CONSTRAINTはZ軸を指定したオブジェクトに向けるアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_POSITION_CONSTRAINTは平行移動を指定したオブジェクトにconstraintするアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_UNIQUE_SCALE_CONSTRAINTはunique scaleを指定したオブジェクトにconstraintするアニメーションチャンネルです。

> NIFF2_ANIM_CHANNEL_CLASSICAL_SCALE_CONSTRAINTはclassical scaleを指定したオブジェクトにconstraintするアニメーションチャンネルです。

> また、複数のアニメーションチャンネルを同時に使用する場合はそれぞれbitORして記述してください。ただし、下記のように不可能な組み合わせが存在します。

> RotateAxis、(RotateX, RotateY, RotateZ)、OrientationXYは同時使用できません。ただし、RotateX, RotateY, RotateZはそれぞれ組み合わせて使用できます。

> UniqueScale、ClassicalScaleは同時使用できません。

> OrientationConstraintはRotateAxis、RotateY、RotateZ、OrientationXYと同時使用できません。

> UpVectorConstraintはRotateAxis、RotateX、RotateZ、OrientationXYと同時使用できません。

> PreferredAxisConstraintはRotateAxis、RotateX、RotateY、OrientationXYと同時使用できません。

> DirectionConstraintはRotateAxis、RotateX、RotateY、OrientationXYと同時使用できません。

> PositionConstraintはTranslationと同時使用できません。

> UniqueScaleConstraintはUniqueScale、ClassicalScale、ClassicalScaleConstraintと同時使用できません。

> ClassicalScaleConstraintはUniqueScale、ClassicalScale、UniqueScaleConstraintと同時使用できません。

> 移動、回転、スケールに関して、同じ種類の複数のconstraintを同時に使用することはできません。

> u32 rotate_axis_num | RotateAxis数を記述します。RotateAxisチャンネルを使用しない場合は0x0を記述してください。
> u32 rotate_x_num | RotateX数を記述します。RotateXチャンネルを使用しない場合は0x0を記述してください。
> u32 rotate_y_num | RotateY数を記述します。RotateYチャンネルを使用しない場合は0x0を記述してください。
> u32 rotate_z_num | RotateZ数を記述します。RotateZチャンネルを使用しない場合は0x0を記述してください。
> u32 orientation_xy_num | OrientationXY数を記述します。OrientationXYチャンネルを使用しない場合は0x0を記述してください。
> u32 translation_num | Translation数を記述します。Translationチャンネルを使用しない場合は0x0を記述してください。
> u32 unique_scale_num | UniqueScale数を記述します。UniqueScaleチャンネルを使用しない場合は0x0を記述してください。
> u32 classical_scale_num | ClassicalScale数を記述します。ClassicalScaleチャンネルを使用しない場合は0x0を記述してください。
> u32 kind_of_orientation_constraint_node | Orientation Constraintするノードの種類を下記のタグで記述します。
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> Orientation Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 orientation_constraint_node | Orientation Constraintするノードのインデックス番号を記述します。 Orientation Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 kind_of_direction_constraint_node | Direction Constraintするノードの種類を下記のタグで記述します。
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> Direction Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 direction_constraint_node | Direction Constraintするノードのインデックス番号を記述します。 Direction Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 kind_of_upvector_constraint_node | Upvector Constraintするノードの種類を下記のタグで記述します。
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> Upvector Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 upvector_constraint_node | UpVector Constraintするノードのインデックス番号を記述します。 UpVector Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 kind_of_preferred_axis_constraint_node | Preferred Axis Constraintするノードの種類を下記のタグで記述します。
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> Preferred Axis Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 preferred_axis_constraint_node | Preferred Axis Constraintするノードのインデックス番号を記述します。 Preferred Axis Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 kind_of_position_constraint_node | Position Constraintするノードの種類を下記のタグで記述します。
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> Position Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 positon_constraint_node | Position Constraintするノードのインデックス番号を記述します。 Position Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 kind_of_unique_scale_constraint_node | Unique Scale Constraintするノードの種類を下記のタグで記述します。
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> Unique Scale Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 unique_scale_constraint_node | Unique Scale Constraintするノードのインデックス番号を記述します。 Unique Scale Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 kind_of_classical_scale_constraint_node | Classical Scale Constraintするノードの種類を下記のタグで記述します。
>     TAG_OBJ_LIST            0x00020000
>     TAG_CHAIN_ROOT_LIST     0x00240000
>     TAG_JOINT_LIST          0x00250000
>     TAG_EFFECTOR_LIST       0x00260000
> Classical Scale Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 classical_scale_constraint_node | Classical Scale Constraintするノードのインデックス番号を記述します。 Classical Scale Constraintを使用しない場合や、外部ファイル参照する場合は0xffffffffを記述してください。
> u32 external_orientation_constraint_file_name_index | Orientation ConstraintするObjを外部ファイル参照する場合、ファイル名をExternalNameListのインデックス番号で記述します。 ファイル名はディレクトリ名などを含まない形で記述してください。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_orientation_constraint_obj_name_index | Orientation ConstraintするObjを外部ファイル参照する場合、そのObj名をExternalNameList内のインデックス番号で記述します。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_direction_constraint_file_name_index | Direction ConstraintするObjを外部ファイル参照する場合、ファイル名をExternalNameListのインデックス番号で記述します。 ファイル名はディレクトリ名などを含まない形で記述してください。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_direction_constraint_obj_name_index | Direction ConstraintするObjを外部ファイル参照する場合、そのObj名をExternalNameList内のインデックス番号で記述します。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_upvector_constraint_file_name_index | Upvector ConstraintするObjを外部ファイル参照する場合、ファイル名をExternalNameListのインデックス番号で記述します。 ファイル名はディレクトリ名などを含まない形で記述してください。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_upvector_constraint_obj_name_index | Upvector ConstraintするObjを外部ファイル参照する場合、そのObj名をExternalNameList内のインデックス番号で記述します。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_preferred_axis_constraint_file_name_index | Preferred Axis ConstraintするObjを外部ファイル参照する場合、ファイル名をExternalNameListのインデックス番号で記述します。 ファイル名はディレクトリ名などを含まない形で記述してください。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_preferred_axis_constraint_obj_name_index | Preferred Axis ConstraintするObjを外部ファイル参照する場合、そのObj名をExternalNameList内のインデックス番号で記述します。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_position_constraint_file_name_index | Position ConstraintするObjを外部ファイル参照する場合、ファイル名をExternalNameListのインデックス番号で記述します。 ファイル名はディレクトリ名などを含まない形で記述してください。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_position_constraint_obj_name_index | Position ConstraintするObjを外部ファイル参照する場合、そのObj名をExternalNameList内のインデックス番号で記述します。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_unique_scale_constraint_file_name_index | Unique Scale ConstraintするObjを外部ファイル参照する場合、ファイル名をExternalNameListのインデックス番号で記述します。 ファイル名はディレクトリ名などを含まない形で記述してください。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_unique_scale_constraint_obj_name_index | Unique Scale ConstraintするObjを外部ファイル参照する場合、そのObj名をExternalNameList内のインデックス番号で記述します。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_classical_scale_constraint_file_name_index | Classical Scale ConstraintするObjを外部ファイル参照する場合、ファイル名をExternalNameListのインデックス番号で記述します。 ファイル名はディレクトリ名などを含まない形で記述してください。 外部参照しない場合は0xffffffffを記述してください。
> u32 external_classical_scale_constraint_obj_name_index | Classical Scale ConstraintするObjを外部ファイル参照する場合、そのObj名をExternalNameList内のインデックス番号で記述します。 外部参照しない場合は0xffffffffを記述してください。
> RotateAxis | RotateAxisエリアです。回転軸を指定することでrotationを記述するチャンネルです。rotate_axis_num = 0の時はこのエリアは記述されません。
> RotateX | X軸周りの回転を記述するチャンネルです。rotate_x_num = 0の時はこのエリアは記述されません。
> RotateY | Y軸周りの回転を記述するチャンネルです。rotate_y_num = 0の時はこのエリアは記述されません。
> RotateZ | Z軸周りの回転を記述するチャンネルです。rotate_z_num = 0の時はこのエリアは記述されません。
> OrientationXZ | 回転をorientationで表現する場合に記述するチャンネルです。orientation_xy_num = 0の時はこのエリアは記述されません。
> Translation | 平行移動を記述するエリアです。translation_num = 0の時はこのエリアは記述されません。
> UniqueScale | UniqueScaleを記述するエリアです。unique_scale_num = 0の時はこのエリアは記述されません。
> ClassicalScale | 通常のCGツールで使用されているスケーリングであるClassicalScaleを記述するエリアです。classical_scale_num = 0の時はこのエリアは記述されません。

> Appendix ... about Unique Scale

> Go to the data chunk

> Go back to the index

### (2) RotateAxis

> u32 interpolation_type | このキーから次のキーまでの補間タイプを記述します。下記のフラグが定義されています。
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONSTはこのキーから次のキーまでデータを保持します。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_FULLはフルフレームアニメーションを表現します。すべてのキーのデータを記述してください。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_LINEARはこのキーから次のキーまで線形補間をおこないます。この場合、すべての加速度データは無視されます。

> NIFF2_INTERPOLATION_TYPE_HERMITEはこのキーから次のキーまで三次補間をHermite関数を用いておこないます。

> u32 key | Key値を記述します。
> float axis_x | 正規化された回転軸の方向ベクトルのX成分を記述します。
> float axis_y | 正規化された回転軸の方向ベクトルのY成分を記述します。
> float axis_z | 正規化された回転軸の方向ベクトルのZ成分を記述します。
> float rotation_angle | 回転軸周りの角度をラジアンで記述します。
> float differential_axis_x | 回転軸の方向ベクトルについてHermite補間のための接ベクトルのX成分を記述します。
> float differential_axis_y | 回転軸の方向ベクトルについてHermite補間のための接ベクトルのY成分を記述します。
> float differential_axis_z | 回転軸の方向ベクトルについてHermite補間のための接ベクトルのZ成分を記述します。
> float differential_rotation_angle | 回転軸周りの角度についてHermite補間のための接ベクトルを記述します。

> Appendix ... about Hermite

> Go to the data chunk

> Go back to the index

### (3) RotateX

> u32 interpolation_type | このキーから次のキーまでの補間タイプを記述します。下記のフラグが定義されています。
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONSTはこのキーから次のキーまでデータを保持します。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_FULLはフルフレームアニメーションを表現します。すべてのキーのデータを記述してください。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_LINEARはこのキーから次のキーまで線形補間をおこないます。この場合、すべての加速度データは無視されます。

> NIFF2_INTERPOLATION_TYPE_HERMITEはこのキーから次のキーまで三次補間をHermite関数を用いておこないます。

> u32 key | Key値を記述します。
> float rotate_angle | X軸周りの回転角度をラジアンで記述します。
> float differential_rotate_angle | X軸周りの回転角度についてHermite補間のための接ベクトルを記述します。

> Appendix ... about Hermite

> Go to the data chunk

> Go back to the index

### (4) RotateY

> u32 interpolation_type | このキーから次のキーまでの補間タイプを記述します。下記のフラグが定義されています。
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONSTはこのキーから次のキーまでデータを保持します。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_FULLはフルフレームアニメーションを表現します。すべてのキーのデータを記述してください。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_LINEARはこのキーから次のキーまで線形補間をおこないます。この場合、すべての加速度データは無視されます。

> NIFF2_INTERPOLATION_TYPE_HERMITEはこのキーから次のキーまで三次補間をHermite関数を用いておこないます。

> u32 key | Key値を記述します。
> float rotate_angle | Y軸周りの回転角度をラジアンで記述します。
> float differential_rotate_angle | Y軸周りの回転角度についてHermite補間のための接ベクトルを記述します。

> Appendix ... about Hermite

> Go to the data chunk

> Go back to the index

### (5) RotateZ

> u32 interpolation_type | このキーから次のキーまでの補間タイプを記述します。下記のフラグが定義されています。
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONSTはこのキーから次のキーまでデータを保持します。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_FULLはフルフレームアニメーションを表現します。すべてのキーのデータを記述してください。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_LINEARはこのキーから次のキーまで線形補間をおこないます。この場合、すべての加速度データは無視されます。

> NIFF2_INTERPOLATION_TYPE_HERMITEはこのキーから次のキーまで三次補間をHermite関数を用いておこないます。

> u32 key | Key値を記述します。
> float rotate_angle | Z軸周りの回転角度をラジアンで記述します。
> float differential_rotate_angle | Z軸周りの回転角度についてHermite補間のための接ベクトルを記述します。

> Appendix ... about Hermite

> Go to the data chunk

> Go back to the index

### (6) OrientationXY

> u32 interpolation_type | このキーから次のキーまでの補間タイプを記述します。下記のフラグが定義されています。
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONSTはこのキーから次のキーまでデータを保持します。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_FULLはフルフレームアニメーションを表現します。すべてのキーのデータを記述してください。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_LINEARはこのキーから次のキーまで線形補間をおこないます。この場合、すべての加速度データは無視されます。

> NIFF2_INTERPOLATION_TYPE_HERMITEはこのキーから次のキーまで三次補間をHermite関数を用いておこないます。

> u32 key | Key値を記述します。
> float x_axis_x | 正規化されたX軸のX成分を記述します。
> float x_axis_y | 正規化されたX軸のY成分を記述します。
> float x_axis_z | 正規化されたX軸のZ成分を記述します。
> float y_axis_x | 正規化されたY軸のx成分を記述します。
> float y_axis_y | 正規化されたY軸のY成分を記述します。
> float y_axis_z | 正規化されたY軸のZ成分を記述します。
> float differential_x_axis_x | X軸のX成分についてHermite補間のための接ベクトルを記述します。
> float differential_x_axis_y | X軸のY成分についてHermite補間のための接ベクトルを記述します。
> float differential_x_axis_z | X軸のZ成分についてHermite補間のための接ベクトルを記述します。
> float differential_y_axis_x | Y軸のX成分についてHermite補間のための接ベクトルを記述します。
> float differential_y_axis_y | Y軸のY成分についてHermite補間のための接ベクトルを記述します。
> float differential_y_axis_z | Y軸のZ成分についてHermite補間のための接ベクトルを記述します。

> Appendix ... about Hermite

> Go to the data chunk

> Go back to the index

### (7) Translation

> u32 interpolation_type | このキーから次のキーまでの補間タイプを記述します。下記のフラグが定義されています。
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONSTはこのキーから次のキーまでデータを保持します。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_FULLはフルフレームアニメーションを表現します。すべてのキーのデータを記述してください。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_LINEARはこのキーから次のキーまで線形補間をおこないます。この場合、すべての加速度データは無視されます。

> NIFF2_INTERPOLATION_TYPE_HERMITEはこのキーから次のキーまで三次補間をHermite関数を用いておこないます。

> u32 key | Key値を記述します。
> float translate_x | 平行移動のX成分を記述します。
> float translate_y | 平行移動のY成分を記述します。
> float translate_z | 平行移動のZ成分を記述します。
> float differential_translate_x | 平行移動のX成分についてHermite補間のための接ベクトルを記述します。
> float differential_translate_y | 平行移動のY成分についてHermite補間のための接ベクトルを記述します。
> float differential_translate_z | 平行移動のZ成分についてHermite補間のための接ベクトルを記述します。

> Appendix ... about Hermite

> Go to the data chunk

> Go back to the index

### (8) UniqueScale

> u32 interpolation_type | このキーから次のキーまでの補間タイプを記述します。下記のフラグが定義されています。
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONSTはこのキーから次のキーまでデータを保持します。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_FULLはフルフレームアニメーションを表現します。すべてのキーのデータを記述してください。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_LINEARはこのキーから次のキーまで線形補間をおこないます。この場合、すべての加速度データは無視されます。

> NIFF2_INTERPOLATION_TYPE_HERMITEはこのキーから次のキーまで三次補間をHermite関数を用いておこないます。

> u32 key | Key値を記述します。
> float scale_x | X軸方向についてのスケール値を記述します。
> float scale_y | Y軸方向についてのスケール値を記述します。
> float scale_z | Z軸方向についてのスケール値を記述します。
> float differential_scale_x | X軸方向のスケール値についてHermite補間のための接ベクトルを記述します。
> float differential_scale_y | Y軸方向のスケール値についてHermite補間のための接ベクトルを記述します。
> float differential_scale_z | Z軸方向のスケール値についてHermite補間のための接ベクトルを記述します。

> Appendix ... about Unique Scale

> Appendix ... about Hermite

> Go to the data chunk

> Go back to the index

### (9) ClassicalScale

> u32 interpolation_type | このキーから次のキーまでの補間タイプを記述します。下記のフラグが定義されています。
>     NIFF2_INTERPOLATION_TYPE_CONST		0x00000000
>     NIFF2_INTERPOLATION_TYPE_FULL		0x00000001
>     NIFF2_INTERPOLATION_TYPE_LINEAR		0x00000002
>     NIFF2_INTERPOLATION_TYPE_HERMITE	0x00000003
> NIFF2_INTERPOLATION_TYPE_CONSTはこのキーから次のキーまでデータを保持します。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_FULLはフルフレームアニメーションを表現します。すべてのキーのデータを記述してください。この場合、すべての加速度データは無視されます。 NIFF2_INTERPOLATION_TYPE_LINEARはこのキーから次のキーまで線形補間をおこないます。この場合、すべての加速度データは無視されます。

> NIFF2_INTERPOLATION_TYPE_HERMITEはこのキーから次のキーまで三次補間をHermite関数を用いておこないます。

> u32 key | Key値を記述します。
> float scale_x | X軸方向についてのスケール値を記述します。
> float scale_y | Y軸方向についてのスケール値を記述します。
> float scale_z | Z軸方向についてのスケール値を記述します。
> float differential_scale_x | X軸方向のスケール値についてHermite補間のための接ベクトルを記述します。
> float differential_scale_y | Y軸方向のスケール値についてHermite補間のための接ベクトルを記述します。
> float differential_scale_z | Z軸方向のスケール値についてHermite補間のための接ベクトルを記述します。

> Appendix ... about Hermite

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