ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【Blender】取り込んだモデルをアニメーションさせる

rikoubou.hatenablog.com

 前回の記事でSculptrisで作成したモデルをBlenderに取り込むところまでをやりました。
 今回はこのモデルを動かすところまでやっていこうと思います。


1:取り込んだモデルのポリゴン数を削減する
f:id:rikoubou:20180213182410p:plain

 前回の記事で上記画面のモデルとテクスチャを取り込んだ状態にまでなっていると思います。
 しかしこのままではポリゴン数が多く、アニメーションを設定する際にPCの性能によっては処理が重くなってしまいます。

 そこでポリゴン数を削減してモデル自体のデータ量を抑える必要が出て来ます。

 右上にあるモデルを選択し、「Modifiersのアイコン(レンチのようなアイコン)」をクリックします。
 「Add Modifier」をクリックし「Decimate」を選択します。
f:id:rikoubou:20180213183300p:plain

 追加された中にある「Ratio」を左ドラッグや直接数値を打ち込むとポリゴン数が増減します。
 「Apply」ボタンを押すと変更したポリゴン数が反映されます。
f:id:rikoubou:20180213183913p:plain

 自分の場合はかなり減らして9000ポリゴンぐらいまで落として「Apply」しました。
f:id:rikoubou:20180213184455p:plain


2:モデルの位置を移動させ、モデルを見やすくする
 3D View画面上にマウスカーソルがある状態でテンキーの「1キー」を押すと正面、「3キー」を押すと真横の表示になります。
f:id:rikoubou:20180331114224p:plain
f:id:rikoubou:20180331114324p:plain

 これらカメラの位置切り替えを使いながらモデルの位置合わせを行います。

 右上にあるモデルを選択し、「Objectのアイコン(ボックスのようなアイコン)」をクリックします。
「Transform」の「Location」や「Rotation」の値を左ドラッグしたり、数値を打ち込んだりしてモデル中心の真下に原点が来るように調節します。
f:id:rikoubou:20180331114945p:plain
f:id:rikoubou:20180331115011p:plain

 位置の調節が済んだら現在の座標や回転、大きさをデフォルトの値として登録します。

 左下にある「Object」から「Apply」の中にある「Location」を左クリックで選択して座標を登録します。
f:id:rikoubou:20180331115658p:plain

 次に「Object」から「Apply」の中にある「Rotation & Scale」を左クリックで選択して回転と大きさを登録します。
f:id:rikoubou:20180331115749p:plain

 これでTransformの値が変更され、デフォルトの値になりました。
f:id:rikoubou:20180331115907p:plain


3:アニメーションさせるためのボーンを追加する
 モデルを動かすための骨となるボーンの追加を行います。
 始めに3D View上の十字のマークが原点にあることを確認してください。
f:id:rikoubou:20180331120751p:plain

 ↑の画像のように原点にない場合は3D View画面の右上にある「+」のボタンをクリックします。
f:id:rikoubou:20180331120850p:plain

 スクロールしていくと「3D Cursor」という項目が出て来るので座標全てに0を入力します。
f:id:rikoubou:20180331120905p:plain

 十字のマークが入力された座標である原点に移動します。
f:id:rikoubou:20180331120952p:plain

 そこまでできたら3D View上にマウスカーソルがある状態で「Shift + Aキー」を押して「Armature」、「Single Bone」を選択します。
f:id:rikoubou:20180331121105p:plain

 モデルに被ってわかりにくいですが、十字マークがあるところにボーンが作成されます。
f:id:rikoubou:20180331121321p:plain

 右側にある「Armature」を選択し、「Armatureのアイコン(人型のアイコン)」をクリックします。「Display」の「X-Ray」にチェックを入れるとモデルを貫通してボーンが表示されるようになります。
f:id:rikoubou:20180331121750p:plain

 ボーンの先がTip、ボーンの根元がRootと呼び、このボーンを複数繋げてモデルの骨格を作り上げていきます。
f:id:rikoubou:20180331122245p:plain

 左下にあるモードを「Edit Mode」に切り替えます。
f:id:rikoubou:20180331122336p:plain

 Edit Modeに切り替えたら左側にある「Options」から「X-Axis Mirror」にチェックを入れます。
f:id:rikoubou:20180331122641p:plain

 これでX軸を中心として左右対称のボーンが設定できるようになりました。次に一番最初のボーンを基準となる位置(背骨あたり)に移動させます。

 三角の部分を右クリックでボーン全体を選択し、各軸の矢印を左ドラッグで移動させて背骨あたりに移動させます。TransfomのRotationの値を変更することで回転させることもできます。
f:id:rikoubou:20180331123513p:plain

 またTipやRootのみを選択した状態で動かしたり縮小、拡大させることもできます。
f:id:rikoubou:20180331123906p:plain

 今回はモチーフが亀なので最初のボーンはこのあたりに移動させました。
f:id:rikoubou:20180331124016p:plain


4:ボーンの押し出しを行って骨格を作成する
 基準となるボーンを作成したら、TipまたはRootを選択して「Eキー+左ドラッグ」を行うと選択した場所から新たなボーンが生えて来ます。軸に沿って伸ばしたい場合はX、Y、Zのそれぞれのキーを押すと軸が固定されます。ちょうど良い位置まで伸ばしたら左クリックで確定させます。
f:id:rikoubou:20180331124358g:plain


 左右対称にボーンを伸ばしたい場合は「Shift+Eキー+左ドラッグ」で左右対称にボーンを生やすことができます。
f:id:rikoubou:20180331124812g:plain

 位置確定させた後でもTisやRoot、ボーン全体を選択してからの位置調整もできます。

 上記の方法を繰り返して動かしたい(関節としたい)部分だけボーンを追加して骨格を作成していきます。

 今回のモデルでは以下のようにしました。
f:id:rikoubou:20180331125724p:plain


5:各ボーンの名称をつける
 どれがどのボーンかがわからないのでわかりやすいように命名していきます。

 左側の「Armature」から辿っていくとど追加したボーンが出て来きます。
f:id:rikoubou:20180331125913p:plain

 名称を設定したいボーンのところでダブルクリックして名称変更します。
f:id:rikoubou:20180331130059p:plain


6:モデルと骨格をペアリングする
 アーマチュアの骨格までは作成しましたが、まだモデルと関連付けはされてないのでメッシュとアーマチュアのペアリングを行います。

 はじめに左下にあるところから「Edit Mode」から「Object Mode」に切り替えます。
f:id:rikoubou:20180331130634p:plain

 モデルのメッシュを左クリックで選択した後、Shiftを押しながらArmatureを左クリックして両方選択した状態にします。
f:id:rikoubou:20180331130955p:plain

 この状態で3D View上で「Ctrl+Pキー」を押して「With Automatic Weights」を左クリックします。
f:id:rikoubou:20180331131334p:plain

 するとArmatureのところにメッシュが移動します。これでモデルと骨格のペアリングが完了です。


7:ポーズモードでポーズをとらせる
 メッシュとアーマチュアのペアリングが完了したら、左下のところから「Pose Mode」を選択してポーズモードに切り替えます。
f:id:rikoubou:20180331131629p:plain

 右クリックでボーンを選択して座標を移動させてみると、ボーンの動きに合わせてモデルも変化します。
f:id:rikoubou:20180331131905g:plain

 直前の動きは「Ctrl+Zキー」でやり直しができます。
 ボーンを初期位置に戻したい場合は、3D View上で「Aキー」で全ボーンを選択した状態で「Alt+Gキー」で位置、「Alt+Rキー」で回転、「Alt+Sキー」で拡縮を元に戻すことができます。


8:マスターボーンを追加する
 現状のままではボーンが一体となっていないので、マスターボーンを追加して全てのボーンの親にします。

 左下のところから「Edit Mode」を選択して編集モードにします。
f:id:rikoubou:20180331132418p:plain

 適当なわかりやすい位置のTipを右クリックで選択し、そこから目立つ方向へボーンを追加します。追加したボーンの名称は「master」に変更します。マスターボーンの場所はどこでも良いのですが、自分はこのようにしました。
f:id:rikoubou:20180331132956p:plain

 マスターボーンを選択した状態で「Boneアイコン(骨のアイコン)」をクリックして、その項目の中にある「Relations」の「Parent」の「×」マークを左クリックして独立したボーンにします。
f:id:rikoubou:20180331133343p:plain

 これでマスターボーンが独立したボーンになりました。
f:id:rikoubou:20180331133656p:plain

 今度はマスターボーンを親にしていきます。Armatureの直下に表示されているボーン(上記の画像ではbase、tail1、legL、legRの4つ)の一つを選択して「Relations」の「Parent」でmasterを選択します。
f:id:rikoubou:20180331134014p:plain

 これをArmature直下に表示されているボーン全てに行います。全て行うと以下のように全部のボーンがmasterの子になります。
f:id:rikoubou:20180331134205p:plain

 これでアニメーションをさせる準備が完了です。


9:アニメーションを作成する
 一番左下にあるところから「Dope Sheet」を選択します。
f:id:rikoubou:20180331134501p:plain

 Dope Sheetの画面になったら、Modeのところから「Action Editor」を選択します。
f:id:rikoubou:20180331134638p:plain

 Newボタンをクリックしてモーションを作成します。
f:id:rikoubou:20180331134913p:plain

 モーションの名前を設定し、「Fボタン」をクリックします。(「Fボタン」のクリックを忘れないように!
f:id:rikoubou:20180331135002p:plain

 ここまでできたら「Pose Mode」に変更します。
f:id:rikoubou:20180331135051p:plain

 Pose Modeの状態でボーンを様々動かして1フレーム目としてのポーズを作成します。

 最初の状態としてのポーズができたら「Aキー」を押して全ボーンを選択した状態で「iキー」を押して「LocRotScale」を選択します。
f:id:rikoubou:20180331135750p:plain

 すると1フレーム目に各ボーンの位置、角度、大きさが記録されます。 
f:id:rikoubou:20180331135928p:plain

 1フレーム目は左足を前に出している状態ですが、歩くためには左右対称のポーズをとったフレームも必要です。

 任意のフレームをコピーしたい場合は「Dope Sheet Summary」の行のところを右クリックで選択して「Ctrl+C」でフレームごとコピーします。
f:id:rikoubou:20180331140353p:plain

 そしてコピーしたいフレームまで移動させて「Shift+Ctrl+Vキー」でコピーフレームの左右反転させたものを登録することも可能です。
 左右反転のフレームコピーがおかしくなる場合は、素直に手づけでフレームを作成しましょう。

 このようなモーションを作成しました。
f:id:rikoubou:20180331142555g:plain

 モーションができたら左下にあるところから「Timeline」を選択します。
f:id:rikoubou:20180331142725p:plain

 タイムラインの画面になったら「|◀︎◀︎」のマークで1フレーム目まで戻し「▶︎」マークで再生します。
f:id:rikoubou:20180331143051p:plain

 再生しても動かない場合は「Edit Mode」になっているので「Object Mode」か「Pose Mode」にしてから再生してください。
f:id:rikoubou:20180331143449g:plain

 ボーンを見せたくない場合は「Armature」を選択した状態で「Boneアイコン」の「Display」の「Hide」にチェックを入れると見えなくなります。
f:id:rikoubou:20180331144237p:plain



 長々となりましたが、以上で取り込んだモデルをアニメーションさせるところまでいけました。
 慣れて来るとそうでもないのですが、ちゃんと説明しようとすると操作が複雑なので手順が多くなってしまうところが考えものです。しかしBlenderは本当に色々できるので、扱えるようになれば強力なツールであることには間違いないです。

 これからも少しずついじっていこうと思います。


・参考資料