メディア表現V 8. アーマチュア・IK・リグ
目次
- メディア表現V 8. アーマチュア・IK・リグ
期末課題について
基本知識
アーマチュア・ボーン・リグ
- キャラクターを動かすのに、骨をつけてそれを動かす方法がある
- ボーンとは骨のこと
- ボーンの始まり(太い方)をヘッド・終わりをテールと呼ぶ
- アーマチュアとは親子関係のあるボーンのグループのこと。Blender独自の呼び方らしく、一般的にはスケルトンと呼ぶ
- リグとはアーマチュアを制御する仕組みのこと。コントローラーと思って良い
親子関係?
- 肩を動かすと、その先の腕・手・指がそれに連動して動く
- このことを親子関係と考えて良い
IK,FKとは
- FK(Forward Kinematics)は親の骨から順に設定していく方法
- IK(Inverse Kinematics)は子の骨の位置を決めたときに、自動的にその親の骨の状態を決定する方法
- 例えば、手首を動かすと、上腕、前腕の二つの骨が自動的に動く。これがIK
キャラクターのオブジェクトとアーマチュアの関係は?
- アーマチュアとオブジェクトも親子関係となっている。
- アーマチュアが動くと、オブジェクトのウェイト(追従のしやすさ)に応じてオブジェクトも動く
やってみようPart1
アーマチュアを設定してみよう
簡単な人型モデルを作ろう
- ちゃちゃっと作ってくれてもいいし、3回目モデリングのPart2のデータをコピーしてもいいよ。
- -Yから見た時に正面からみた状態に回転しておこう
- Mirror,Subdivision SurfaceモディファイアはApplyして、メッシュを細分化しておこう。
中心のアーマチュアを設定しよう
- Shift+AでArmatureを追加
- Viewport DisplayでNames, In Frontにチェックでボーン名と随時オブジェクトに埋もれずにみえるようになる
- Editモードに入りEZで押し出す
- RelationsのConnectedのチェックを外す
- GZ でヘッドを股のあたりに
- SZ でテールをおへそのあたりに
- EZで押し出しながら、「脊髄」「胸」「胸上部」「首」「頭」を作る
- 名前をRoot,Hips,Spine,Chest,UpperChest,Neck,Headと変更
左半身の足を設定しよう
- 先に左半身のみ作成していく
- Hipsのテールから下向きに押し出し(EZ)
- RelationsのConnectedのチェックを外す
- 左足の付け根から膝あたりに移動(G Shift+Y)、スケール(SZ)する(上腿)
- 膝から押し出して(EZ)くるぶしあたりまで(下腿)
- さらに押し出して(E Shift+X)、指の付け根まで
- さらに押し出して(E Y)、指先まで作成する
- 名前をUpperLeg, LowerLeg, Foot, Toesと変更
左半身の腕を設定しよう
- UpperChestのテールから横に押し出し(EX)
- RelationsのConnectedのチェックを外す
- 肩・上腕・前腕・手をEXで作成
- 名前をShoulder, UpperArm, LowerArm, Handと変更
右を対称にして作成しよう
- 中心以外((つまり)左半身のボーンを全て選択
- Armature - Names - Auto Name Left/Right
- これで、各ボーン名に.Lがつく
- Aramature - Symmetrize
- これで対称な.Rというボーンが作成される
オブジェクトとアーマチュアを関連づけよう
- オブジェクトモードに戻す
- オブジェクトを選択してからアーマチュアを選択(順番大事!)
- Ctrl+Pして
- Armature Deform - Automatic Weight
関連付けを見てみよう
- アーマチュア・オブジェクトの順で選択
- ウェイトペイントモードに入ろう
- ボーンをセレクトすると、オブジェクトのどの部分が影響されるかがわかる
- きちんと動かすにはここの調整が必要
ポーズモードで動かしてみよう
微調整(授業ではやらない)
- 曲がるんだけど、微妙という人は調整が必要となる
- 骨の位置も、本当は前後の調整してからAutomatic Weightした方が、きれいになりやすかったり(例えば、膝だったら、皿の近くにポイントを持ってくるとか)
- 手作業でウェイトペイントで修正するとか必要
- 下の参考やウェイトペイントでググってみよう
参考:Blenderでリギング!モデルを動かしてみよう!~人型リグの作成と割り当て編~【Medium】
指も設定したい人用(授業ではやらない)
- 指のあるモデルを作ろう(参考を貼っておく)
- 指は1本あたり骨が3つあるので、1本作ってShift+Dで複製しよう
- HandのテールからEZで押し出し
- RelationsのConnectedのチェックを外す
- 中指あたりに移動
- EZで2回押し出し
- これを複製して5本指にする
- 名前は以下の通りで、付け根から末尾に1から3を追加する(例 Thumb1, Thumb2, Thumb3)
指 | 名前 |
---|---|
親指 | Thumb |
人差し指 | Index |
中指 | Middle |
薬指 | Ring |
小指 | Little |
Low Polyキャラクターモデリング解説 手 - Hand modeling
やってみようPart2
IK,FKをボーンだけで実験してみよう
上腕・前腕に当たる部分を作ろう
- File - New - General
- Y軸側からの表示に
- Shift+A Armatureでアーマチュア追加
- Editモードへ
- 90度回転させて、ヘッドが原点にあうように移動
- EX で押し出し(前腕)
- 今作ったヘッド部分(肘)を少しGZで上にあげる
コントロールするターゲットの実装
- Shift+Aでもう一つ作成
- 前腕の先に横向きに配置
- 3本目の名前をTarget
- Poseモードへ
- 前腕を選択してBorn Constraintsプロパティ
- Invert Kinematicsを追加
- TargetをArmature, BoneをTargetに
肘の向きを決めるポールの実装
- Shift+Aでもう一つ作成
- 肘の上あたりに移動
- 名前をPole
- 前腕のPole TargetにArmature, BoneにPole
- Poleを動かして、肘の向きが追従することを確認しよう
やらないけど…
- 例えば、しっぽとかでたくさん骨がある場合、または、動いて欲しい部分が2本まで、とかの場合、Chain Lengthを増やすと、影響を受ける範囲を設定できる
参考:悪魔のBlender入門 IKでボーンを動かしてみよう!! Blender2.8
やってみようPart3
人型モデルにIKを設定してみよう
- Part1のデータをコピーしてPart3にしておこう
左足のIK設定
- 両膝の位置を少し前に出しておこう
- LowerLegのテールからEYで押し出してLegIK.Lとする
- Parentは空にしておく
- UpperLegのテールからEYで押し出してLegPole.Lとする
- 同じくParentはからにしておく
- LowerLeg.Lを選択して、InverseKinematicsを追加
- TargetにArmature, BoneにLegIK.L
- Pole TargetにArmature, BoneにLegPole.L
- Chane Lengthを2に
やらないけど、必要に応じて、回転軸のロックとか角度制限が可能だよ。
右足や手についても設定してみよう
参考:【Lecture:24 Blender】「IK」ってなに?「コンストレイント」を設定して簡単アニメーションづくり!【Hard】
ポーズライブラリとは?(授業では扱わない)
- 全身だけでなく手だけなどのポーズを保存することも可能
- アーマチュアのポーズをアセットブラウザで管理できる
- サムネイルはカメラ視点で保存される
- ポーズを呼び出しながらアニメーションを作成できる
Mixamo(説明のみ)
Mixamoとは
Adobeが公開しているウェブアプリ上で簡単に3Dキャラクターアニメーションを作成することができるツール。
Adobeアカウント(個人)で無料利用可能。
- Blenderからモデルをエクスポート
- Mixamoで簡単な操作でリギング
- アニメーションを選んでエクスポート
- Blenderでインポートして完成
- 複数の動きをNLAを使って一連の操作にすることも可能.
参考
不自然な動きをなおしてくれるアプリ(説明のみ)
不自然な動きをAI・物理法則を利用しながら自然なアニメーションに変換するツール Windows, Mac(AppleSiliconのみ)
MOCAP(説明のみ)
モーションキャプチャ(Motion Capture)の略語で、動画からモーションデータに変換してくれるサービス
その他(授業では扱わない)
Rigifyについて
- ポージングを取らせるには、今日やったリギングという作業が必要
- 初心者がこれを一から作り上げるのは難しい
- Blender公式アドオンにリギングを楽にするRigifyというものがある
参考:Blenderのリグ生成アドオンRigifyを完全に理解する
お疲れ様でした〜
扱いやすいリギングは大変かもしれないけど、シェープキーアニメーションとリグを使えば、アニメーションできちゃうことがわかってくれると嬉しいです。