Acs3bにおける拘束を伴うモーション

 このページでは、Acs3bで剣や銃といった両腕が協調して動くモーションのTipsです。

 

 

 日本刀やサブマシンガンを持った両腕が協調して動くモーションは、簡単そうに見えて実は難易度が高いです。これは現実のロボット等でも同じで、両腕が協調操作を出来るものが出始めたのは、10年ほど前からでしかありません。

 難易度を上げているのが、どちらの腕が先に動くかと言う問題です。人間の場合は、どちらが主でどちらが従ということはありません。主従を臨機応変に修正できるからです。しかし、モーション付けするには、主従を決めてしまった方が楽になります。今回は右手を主に、左手を従としてモーション付けをしていきます。

 では、剣と銃の場合に分けて説明していきます。

 

剣の場合

パターンその1 拘束しない

 右腕と左腕が協調して動かすのが困難であるならば、あえて「火中の栗を拾う」必要はありません。つまり、拘束条件を設定しないで、目でそれっぽい位置に持っていけば良いのです。

 ほとんど毎フレームキーを打つことになりますので非常に手間が掛かります。反面、片手でモーションを付けるので、非常にダイナミックなモーション付けが行なえます。また、つかんだり、にぎったりする動作が付けやすいので欠点ばかりでは有りません。

 左図は左手の位置と回転を目で見てキーを打つことにより作成したモーションの例です。

 

 

 

 

パターンその2 Folloerによる拘束

 短いモーションならば目でキーと打っていくことも可能ですが、長いシーンでは困難です。そこでFollerを使って左手を拘束するシステムを作って見ましょう。左図のオレンジ色の部分が剣のItemと関連するNULLになります。

 このシステムでは、剣を右手(R_Hand)の子供に、剣のWorldPostionをFolloerで左手コントローラ(L_ArmGoal)に渡しています。このため、右手はFKで、左手はIKで制御することになります。ただし、左手首の回転だけは目で見てキーを打っています。なぜ回転だけ目でキーを打ったのかについては下記の銃の項目を参考にしてください。

 また、左手は直接剣と関連付けるのではなくて、NULLを二つかませてあります。これはAcs3bの手コントローラの位置が手首にある為です。剣に対して手首で固定してしまうと、肘の位置に大きな制約を受けます。これを緩和する意味で、二つのNULLを使って、刀の軸を中心にして手首の位置が円を描けるようにしました。この機構によって肘がつっぱたり、手首のつぶれを最小限にとどめることが可能になります。

 

 

 

 

 左図は左手の位置をFolloerで回転を目で見てキーを打つことにより作成したモーションの例です。

 

 

 

 

 

 

 

銃の場合

パターンその1 デザインで逃げる

  あまり振り回すモーションが少ないので、剣より簡単に見える銃ですが以外な落とし穴があります。 それは、こういったタイプの持ち方だとジンバルロックが発生しやすのです。

 ACS3bの場合、手のひらを下向きにモデリングします。ところが銃を持つときは 手のひらが上向きになります。この為、初期状態ですでに180°ひっくり帰った状態でモーション付けを行なわなくてはなりません。LightWave7.5では、親軸、ローカル軸 、ワールド軸で操作は可能ですが、内部処理は親軸のままなのでジンバルロック によるモーションの不都合が起こりやすいのです。

 また、180°ひっくり返っているので手首が大きく「ねじれ」ています。これにより、手首のつぶれが発生しクオリティにも問題が起きます。

 

 

 これを避ける一番手っ取り早い対処方は、銃のデザインを変えるという方法です。左図の様にねじれが起きにくいタイプにすればモーション付けが非常にスムーズになります。

 こだわりのシーン でなかったり物語上問題がなければ考慮すべき方法だと思います。

 

 

 

 

 

パターンその2 手の拘束

 とはいえ、1人で作っている場合ならともかく、チームで作ってる場合はデザインの変更は認められない場合も多い(というよりほとんど無理)です。

 このようなモーション付けを行なうためには左手の位置と回転を拘束し、左手をIKで動かす必要があります。しかし、単純にfollerを使ってもうまく行きません。これは手首のシステムがIKを 使っているためです。 このシーンは

 右手FK
  ↓
  銃
  ↓  
 folloer
  ↓  
  左手Controler
  ↓  
 左手IK

の順序で計算されます。この順序だと、follerで設定したRotaion値はIKによって上書きされてしまいます。この為、回転が追随しないのです。複数のfollerやExpressionを追加する対応は出来ますが、システムが複雑になってしまいます。 そこで、今回は発想を転換し、左手IKを直接銃で動かす様にプチ改造することで対応します。

 (左図はクリックすると拡大できます。戻る場合はブラウザのボタンで戻ってください。)

 Acs3bでは、手(R/L_ArmGoal)の回転をR/L_HandGoalとR/L_HandDirGoalを使って固定します。 R/L_HandGoalは手の先端部を、R/L_HandDirGoalは手のひらの方向を向くようになっています。 これによってR/L_ArmGoalのX軸とZ軸を決定します。

  今回のプチ改造では銃の子供に上記のシステムと同じNULL階層を作り、IKのゴールオブジェクトを 銃の子供になるように修正しました。(図参照) これで、左IKは銃に対して一定の角度を取る様にすることが出来ました。

 

 

 

 

もうひとつ注意すべきなのが手首の向きです。上記の通り、左手首は非常につぶれやすくなっています。このため手や指の形を工夫して初期状態のねじれを抑えておくことが重要になります。

 人間が銃を持つ場合も、上記の例のように掴んでいる訳ではなく、左図のように把握しています。こうすることによって、ねじれやひねりが最小限になるようにしているのです。

 

 

 

 

 

 

これらのことを考慮して作られた銃のモーションを以下に示します。

 

 

 

 

 

 

 

まとめ

 今回は剣や銃といった両手が協調して動くモーションに対して考察しました。骨を修正とfollerによって、右手のモーション付けで左手をコントロールする方法を挙げています。

 しかし、上記の様な方法をとってもねじれやモーションの破綻が起きない訳ではありません。このようなシーンを作成する場合は事前に入念なテストを行なう必要があります。その結果。必要があればモデルの変更や、骨の修正も考慮すべきです。

 「銃や剣のモーション付けは結構大変」であることを覚えておいた方が良いでしょう。

 

Tips IKを利用して効率よく剣や銃のモーションを作る。

 銃や剣を使ったモーションでは右手をFKで、左手をIKで動かす場合が多いです。右手は最終的な モーション時にFKで動けば良いので、ポーズ付けの時は積極的にIKを使って行きましょう。右手のポーズが 完璧になったらAcs3bIKtoFKを実行します。これによって右手FKのLocalRotaionと右手IKの値が一致します。 これで左手の方も正確な位置に移動します。

 右手をIKでPose付け->IKtoFKを実行->右手にFKが焼きこまれる->左手のIKが正確な位置に修正される。

 ということになります。 モーションの確認時に右手をFK制御にしておくのをお忘れなく (^ -^)b

 

戻る