キャラクターデザイン&3DCGアニメーションのポートフォリオサイトです。

肩〜肘〜前腕のリグ考察

img170521

前回ジャンプモーションの作成中に肩〜前腕にかけて挙動がおかしな所を発見したのでリグを再考。自分用のメモに。
普段の生活でいちいち関節の稼動域など気にしないので良く観察しないと気付きませんが、肩の関節と前腕は意外と複雑な構造をしています。腕をぐるぐる回したりできるので肩関節は円を描くように1周回りそうな気がしますが、実はそこまで回りません。同様に手首を捻る動作もけっこう回転するので、肘から手首にかけて1本のボーンだけだと再現できない事に気付きます(ただしこちらで解説されているように、ボーンのセグメントを分割すれば1本のボーンでも再現できるようです)。という事で、ここではIK用のボーンとは別に細かく分割したデフォーム用のボーンを仕込み、IKボーンに追従させる事でできる限り実際の動きに近い構造を考えてみる事にしました。

全体のボーンの組み方

スクリーンショット 2017-05-21 15.03.07

まず、IKで使う上腕のボーンと前腕用のボーンを用意し、IK用のボーンレイヤーに移動させておきます。上腕を「upper_arm.R」前腕を「lower_arm.R」とします。ボーンの親子関係は「upper_arm.R」>「lower_arm.R」です。

スクリーンショット-2017-05-21-15.18.40

ボーンの「接続」にチェックを入れます。

スクリーンショット 2017-05-21 15.03.47

次にIK用のボーンを「Shift+D」で同位置にコピーし、デフォーム用のボーンを作成します。このデフォーム用のボーンは実際にモデルを変形させる為のボーンで、ウエイトペイント等でウエイトを適用させる時にはこのボーンのみを使います。複製したボーンを選択し「W」キーから細分化を選択。上腕前腕それぞれ2つに分けたものをデフォーム用のボーンレイヤーに移動させておきます。上腕を上から「upper_arm1_def.R」「upper_arm2_def.R」、前腕を上から「lower_arm1_def.R」「lower_arm2_def.R」、手を「hand_def.R」とします。ボーンの接続は、「upper_arm1_def.R」>「upper_arm2_def.R」、「lower_arm.R」>「lower_arm1_def.R」>「lower_arm2_def.R」、「lower_arm.R」>「hand_def.R」です。

スクリーンショット-2017-05-21-15.22.43

「lower_arm1_def.R」のみ「接続」のチェックを外します。

スクリーンショット 2017-05-21 15.06.22

手のボーンを複製し、IKのコントロールボーンを作成し「hand.R」とします。肘はポールターゲット用のボーンを用意し、「pole_arm.R」とします。これらはコントロール用のボーンレイヤーに移動させます。
以上で必要なボーンは全て揃いました。

IKの設定

スクリーンショット 2017-05-21 15.28.35

次にIKレイヤーの前腕を選択し、ボーンコンストレイントからIK(インバースキネマティクス)を追加し、ターゲットを「hand.R」ポールターゲットを「pole_arm.R」にします。チェーンの長さは「2」で、ポールの角度は肘の向きが正しい方向を向くように適宜角度を入力します。
これでIKの設定が完了しました。

デフォーム用ボーンの設定

スクリーンショット 2017-05-21 15.50.09

まず「uppre_arm1_def.R」と「uppre_arm2_def.R」に「減衰トラック」を追加。ターゲットボーンは「lower_arm.R」とし、「先」はY軸にします。さらに「uppre_arm2_def.R」には「回転コピー」を追加。ターゲットボーンは「lower_arm.R」とし、Y軸限定、使用空間はワールド⇄ワールドにし、「影響」を0.1にします。コンストレイントの順番は上から「回転コピー」「減衰トラック」の順番です。

スクリーンショット 2017-05-21 15.52.52

前腕は、「lower_arm1_def.R」と「lower_arm2_def.R」に「回転コピー」と「減衰トラック」を追加。ターゲットボーンを「hand_def.R」にします。使用空間はワールド⇄ワールドにし、「影響」は「lower_arm1_def.R」が0.3、「lower_arm2_def.R」を1にします。これで手首を捻った時に前腕が自然に捩じれるようになります。「hand_def.R」は「位置コピー」「回転コピー」「回転制限」の順でコンストレイントを追加。「位置コピー」「回転コピー」はターゲットボーンを「hand.R」とし、ターゲットボーンの動きに追従するようにします。

スクリーンショット-2017-05-21-16.25.03

「回転制限」は上記の設定にするとだいたい実際の関節と同程度の稼動域に拘束できました。

スクリーンショット 2017-05-21 16.30.21

これで腕を捻ったり複雑なポーズをさせてもある程度それっぽい変形をしてくれるかと思います。ただ、回転制限を付けた事によってコントロールボーンを制限範囲以上に曲げた時の挙動が不自然になる事があるので、アニメーションさせた時など不具合があるかもしれません。関節の稼動域を理解している方であれば回転制限を付けない方が良いかと思います。
アニメーションさせた時に上手く動く腕リグの組み方は調べてもあまり出てきませんので、いろんなチュートリアルを参考に試行錯誤して組んでみましたが、まだまだ細かい所が気になります。もっと良い方法をご存知の方がいらっしゃれば、是非ご教示頂きたいです。

RELATED

CONTACT

お名前 (必須)

メールアドレス (必須)

お問い合わせ内容

メッセージ

入力内容に間違いがなければチェックを入れてください。

Top