肩〜肘〜前腕のリグ考察
カテゴリー:Blender
前回ジャンプモーションの作成中に肩〜前腕にかけて挙動がおかしな所を発見したのでリグを再考。自分用のメモに。
普段の生活でいちいち関節の稼動域など気にしないので良く観察しないと気付きませんが、肩の関節と前腕は意外と複雑な構造をしています。腕をぐるぐる回したりできるので肩関節は円を描くように1周回りそうな気がしますが、実はそこまで回りません。同様に手首を捻る動作もけっこう回転するので、肘から手首にかけて1本のボーンだけだと再現できない事に気付きます(ただしこちらで解説されているように、ボーンのセグメントを分割すれば1本のボーンでも再現できるようです)。という事で、ここではIK用のボーンとは別に細かく分割したデフォーム用のボーンを仕込み、IKボーンに追従させる事でできる限り実際の動きに近い構造を考えてみる事にしました。
全体のボーンの組み方
まず、IKで使う上腕のボーンと前腕用のボーンを用意し、IK用のボーンレイヤーに移動させておきます。上腕を「upper_arm.R」前腕を「lower_arm.R」とします。ボーンの親子関係は「upper_arm.R」>「lower_arm.R」です。
ボーンの「接続」にチェックを入れます。
次に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」です。
「lower_arm1_def.R」のみ「接続」のチェックを外します。
手のボーンを複製し、IKのコントロールボーンを作成し「hand.R」とします。肘はポールターゲット用のボーンを用意し、「pole_arm.R」とします。これらはコントロール用のボーンレイヤーに移動させます。
以上で必要なボーンは全て揃いました。
IKの設定
次にIKレイヤーの前腕を選択し、ボーンコンストレイントからIK(インバースキネマティクス)を追加し、ターゲットを「hand.R」ポールターゲットを「pole_arm.R」にします。チェーンの長さは「2」で、ポールの角度は肘の向きが正しい方向を向くように適宜角度を入力します。
これでIKの設定が完了しました。
デフォーム用ボーンの設定
まず「uppre_arm1_def.R」と「uppre_arm2_def.R」に「減衰トラック」を追加。ターゲットボーンは「lower_arm.R」とし、「先」はY軸にします。さらに「uppre_arm2_def.R」には「回転コピー」を追加。ターゲットボーンは「lower_arm.R」とし、Y軸限定、使用空間はワールド⇄ワールドにし、「影響」を0.1にします。コンストレイントの順番は上から「回転コピー」「減衰トラック」の順番です。
前腕は、「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」とし、ターゲットボーンの動きに追従するようにします。
「回転制限」は上記の設定にするとだいたい実際の関節と同程度の稼動域に拘束できました。
これで腕を捻ったり複雑なポーズをさせてもある程度それっぽい変形をしてくれるかと思います。ただ、回転制限を付けた事によってコントロールボーンを制限範囲以上に曲げた時の挙動が不自然になる事があるので、アニメーションさせた時など不具合があるかもしれません。関節の稼動域を理解している方であれば回転制限を付けない方が良いかと思います。
アニメーションさせた時に上手く動く腕リグの組み方は調べてもあまり出てきませんので、いろんなチュートリアルを参考に試行錯誤して組んでみましたが、まだまだ細かい所が気になります。もっと良い方法をご存知の方がいらっしゃれば、是非ご教示頂きたいです。
RELATED
-
3Dカーソルの使い方
Blenderの機能のひとつに「3Dカーソル」というものがあります。画像中赤で囲んだ赤と白の浮き輪みたいなのが…続きを読む
-
水のマテリアルノード
物理演算でパイプから水が流れ出てくる動画を制作してみたのですが、水のマテリアルがなかなかイメージ通りにいかなか…続きを読む
-
Blenderで360度動画
スマホの向きと連動して動画の視点も動く360度動画をBlenderで制作してみました。 作り方はとても簡単。B…続きを読む
-
Blender「形状破綻の原因」
今回の勉強会の中で一番多く出た問題点が「形状が破綻している所が出る」事でした。確かに私も3DCGを始めたばかり…続きを読む