前ページの検討の結果、RIGはAutoCharacterSetup3b(以後ACS3b)を使用することで決定しました。
このACS3bの手は骨が入っています。手にはギミックが入っていないので ROTを動かしてポーズを作っていくことになります。初期状態からポーズ を作るのはたいした手間ではないのですが、モージョン付けをした後だと 位置が変化して結構面倒くさい作業になります。
MotionMixerを利用した手のコントロール
Pose Mixer:
http://www.3dluvr.com/blackbourn/web/tuts/pmtut/pmtut.html
等の方法もあることは知っていましたが、MotionMixer自体の使い方 がいまいち判らないのと、MotionMixerキャラクタ本体のコントロールで使用する予定なので手の制御で使用したくない事情がありました。
そこで考えたのがLoaclRotationの保存です。手の動きは関節の動きが 限られていてモーションからモーションに切り替わる場合でも破綻が 置きにくい構造になっています。この為、現在の形をLoaclRotationと
いう形で保存し、組み合わせることで簡単に手のアニメーションが作れ ます。 で、これに該当する「指定階層以下のLocalRotaionのSave/Load」pluginまたは
lscriptを探したのですが見つかりませんでした。しょうがないので自分で作成 していしまいました。
SaveLocalRot/LoadLocalRotはAsc3b Tools内に入っています。
注1)プラグイン「keyframer」には上記スクリプトに似たものがあります。しかし、情報量が少なすぎてよくわかりませんでした。
では、LocalRotを使って手のモーションをつける方法を示します。まず初期状態で手にポーズをつけます。現在のLScriptでは右手/左手の同一化等の機能は入っていないので、面倒ですが両手分ポーズをつけて下さい。
グウ
ここで「L_Hand」を選択状態にし「LScript」-「LScript」を選択し、SaveLocalRot,lsを実行します。
ダイアログが表示されてセーブするボーン名の一覧が表示されます。これで「L_Hand」以下のLocalRotaion値が保存されました。同様に「チョキ」「パー」等も作成します。
では、今度はセーブしたポーズを読み込んでモーションをつけて見ましょう。
まず、「L_Hand」を選択状態にします。その後、「LScript」-「LScript」を選択し、LaodLocalRot,lsを実行します。ダイアログが表示されてロードするボーン名の一覧が表示されます。良ければ「OK」を押してください。これで現在の時間に保存しておいたLocalRotation値がロードされます。
後は適当なフレームで繰り返し上記の作業を行うと
こんな感じのアニメーションを簡単に作ることが出来ます。
特に体にモーション付けを行い、適当に手を動かしたい場合なんかに非常に便利です。
裏技として、一部だけにモーションを適応することも出来ます。LoadLocalRotは選択されているItem以下の名前を検索し一致するものだけにキーを打ちます。このため選択部分を調整することでポーズの一部だけを切り出すことが出来ます。
Ex.グーの小指部分だけをパーの小指に適応する。
LocalRotaionを活用すると歩行モーションも簡単に作成できます。次はもうひとつのプラグインとLocalRotを使って歩行モーションを簡単に作成します。