motion model [G6_Lite]

このエントリーをはてなブックマークに追加
はてなブックマーク - motion model [G6_Lite]
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
motion model [G6_Lite]Project [ EF-12 ]

このページではEF-12標準サンプルとして配布しているモーション作成用データ「G6_Lite」の使い方を説明します。

G6overview
G6Liteは上図の通りSoftimage用のモーション作成モデルです。このデータをSoftimageで開き、モーションを作成後dotXSI形式にエクスポートしてモーションを出力するというのがおおまかな流れになります。したがってG6-Liteを使用してモーションを作成するにはSoftimageが必要ですが、持っていない場合でもAutoDesk社から非商用で利用可能なSoftImage ModToolという無料ツールが提供されているので [ LINKS ] からModtoolのリンクをクリックしてMod toolを手に入れましょう。

以下のリンクからG6Liteのデータをダウンロードし、Softimageに読み込んでください
[ G6_lite モーションモデル ]
バージョンはModtool,6.02~2012まで対応しています(恐らく2013も問題ありません)

◆◆◆ 以下からはある程度ツールの使用方法を知っている前提での説明になります。 ◆◆◆
◆◆◆ ツールの使い方についてはフォローしませんので専門サイト等をお調べ下さい。◆◆◆

G6Schematic
モデルの階層構造は上図のようになっています。Liteの名前の通り、できるだけ簡易に扱えるようにシンプルな構造になっています。左上の孤立した構造はモデルの見た目部分なので気にしないで構いません(でも削除しないほうがいいですよ)。緑色のパーツが移動のコントローラで、黄色いパーツが回転のコントローラーです。スケールも入れることができますが、某ヨガファイターのような特殊なモーションを作りでもしない限り使うことはありません。

G6SchematicP01
この部分が一番おおまかな動きをコントロールする部分です。
Reference…全体をまとめて動かせます。
Core_P…腹(腰)を動かします。
Chest_A…胸を動かします。
Head_A/Eye_A….頭及び目線です。目線はまだ対応してないのでとりあえず気にしないでOK
ArmR_A / ArmL_A…右手と左手を動かします。
LegR_A / LegL_A…右足と左足を動かします。

[one point TIPS]
コントローラーはスケマティックでもカメラビューでも同じように選択可能です

G6SchematicP02
ルートから左の階層にあるコントローラは主に回転を扱います。
Core…上半身/下半身を含めた全体の回転を扱います
BodyU / Breast…上半身を回転させます
BodyL / Waist….下半身を回転させます

ここにはいくつか注意すべき点があります。一番気をつけなければならないのはCoreの扱い方です。Coreは見た目の向きと同時にプログラム的な向きも判別する箇所になります。たとえば立ち構えで少し斜めを向かせる時にCoreに回転を入れてしまうと『立っている間ずっと斜めを向いている』と判定されてしまいます。
こういう不具合を起こさないために『構え方などのローカルな角度はBody/Breast/Waistに入れ、振り向くなどのグローバルな角度の変更はCoreに入れる』ようにしてください。

また上半身については基本的に移動コントローラーのChest_Aが優先されます。Chest_AではY軸回転ができないため、Y軸回転の補助のためにBodyU/Breastが存在しています。この関係性も頭に入れておいて下さい。

G6SchematicP03
BodyL / Waistから下には膝と足首、つま先のコントローラーがあります。
LegL_U / LegR_U…膝の向きを制御するコントローラーです
FootL_A / FootR_A…足首の上げ下げを制御します
FootL_U / FootR_U…足首のひねりを制御します。
ToeL_R / ToeR_R…つま先の上げ下げを制御します。

G6SchematicP04
Breastから下は鎖骨、肘、手首そして首のコントローラーがあります。
ShoulderL_A / ShoulderR_A…鎖骨を制御します。
ArmL_U / ArmR_U…肘の向きを制御します。
WristL / WristR…手首を回転します
HandL_R / HandR_R…手を回転します。

WristとHandは機能がかなり似ており、モーションモデルを触っただけでは違いがわからないでしょう。手首は回転範囲が広いため1階層で回転させるとソーセージのようにちぎれた状態になりやすい箇所です。それを緩和するためWristに半分、Handに半分のx回転を入れることでその状態を緩和することができます。
G6LiteにおけるWristの役目はこれだけです。したがってx回転以外を入れるとモデルが不自然な動きをします。この場合は入れてはいけない回転をしているのでy/z回転を削除してください。

[ one point TIPS ]
Wristにはx回転以外入れないのが基本ルールですが、入っているからといってモーションが再生されないわけではありません。ライブラリは作成されたモーションを可能な限り再現しようと計算を行います。

G6SchematicP05
足首は基本的にはローカル座標系で扱います。これは多くのゲームタイトルにおいては一般的ではありません。なぜローカル座標系で扱うかというと、格闘ゲームでは静止している時間よりも飛んだり跳ねたりしている時間のほうが圧倒的に長いためです。そういった複雑な回転の動きを作成しようとすると単純に難しいだけでなく全体的な作業効率も落ちてしまいます。
とはいえ構えモーションのようにほぼ静止していて、足が地面にきっちり接地しているほうが良い場合もあります。そこでG6Liteでは一時的に足首をグローバル制御に切り替える構造を別途用意してあります。
図と同じように足首のコントローラを位置コンストレインすると、拘束された足首ロケータの制御は拘束した構造のほうに移ります。ここでFootLD / FootRD / FootLD2 / FootRD2の4つのコントローラの回転によって擬似的に足首が制御できるようになります。

[ one point TIPS] コントローラーが2階層になっているのはジンバルロック防止の為です。なので2つをどのように回転させても構いません。

なおこの足首のコントローラーの使い方をしてモーションを作成した場合、FootLD / FootRD / FootLD2 / FootRD2に入れたモーションはまだ実機で反映される状態ではありません。実機に反映させるにはモーションの完成後にFootL_A / FootR_A / FootL_U / FootR_Uに値をプロットしてやる必要があります。これは忘れがちな点なので注意して下さい。

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

以上がG6Liteの使用方法の説明になります。ここで解説されなかった部分でモーションが付けられる箇所や特殊な機能に使用する箇所がいくつか残っていますが、それは現在未対応です。対応した機能については都度サイトを更新していきます。