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.