【Unity】MagicaVoxel のモデルに Blender でアニメーションをつけて Unity で動かす(後編)
MagicaVoxel で 3Dモデルを作成し、Blender にインポートするところまで前編でやりました。
後編ではBlenderに取り込んだモデルに簡単なアニメーションをつけて、Unityで動かしたいと思います。ただ、その前に Blender 初めての方は基本的な操作方法を頭に入れておいたほうがいいかと思います。
Blenderの視点操作を覚える
Blenderはインターフェースが独特でまだ慣れないのですが・・中でも最初にハマったのが視点操作。Blenderの視点は1とか3とかの数字で切り替えられると色々なサイトに書いてあるのに、実際に数字を押してもレイヤーが切り替わってモデルが消えてしまうだけで何故か視点が切り替わらない・・そして悩んだ結果、初歩的なことに気づきます。数字ってテンキーのことか!
ノートPCではテンキーがないので、テンキーを数字キーに置き換える設定をしなければいけませんでした。
- File > User Preferences を開く
- Input タブを選択する
- 左の Emulate Numpad にチェックをつける
- 左下の Save User Settings を押す
上記の設定で、キーボード上部の数字キーが10キーと同様の挙動になります。
よく使う視点切替テンキー
テンキー1: 正面
テンキー3: 真横
テンキー5: 平行投影(orthographic)と透視投影(perspective)の切り替え
テンキー7: 真上
もう1つわからなかったのが、視点を任意に動かす方法。マウスで適当に操作するも動かず・・マウスの中ボタンを使わないと思うように動かせなかったです。
選択中のオブジェクトを中心に視点を回転させる
MMB(マウス中ボタン)を押したままドラッグする
視点を平行移動(スクロール)させる
Shift + MMB を押したままドラッグする
視点を拡大/縮小する
マウスホイールをコロコロする
ひとまず、これくらい覚えておけば大丈夫かと思います!
基点を調整する
モデルを右クリックで選択し基点を合わせます(画像のように足と足の間に中心が来るようにモデルを移動します)移動後は、Ctrl-a で Location を選択して位置を適用すると、その場所が (0, 0, 0)になります。
アーマチュアを追加する
アーマチュアを追加します(アニメーションの元となるボーンの集合体で、動かせる関節を定義するものです)。ゼロからアーマチュアを作るのは大変なので、Blender が用意している汎用の人型アーマチュアを使います。使用するためには以下の設定が必要です。
- File > User Preferences で Add-ons タブを選択
- 検索欄で rigify と入力すると表示される Rigging: Rigify のチェックをつけて有効にする
詳細は下記の記事が詳しいです。
Shift+a で Armature > Human を選択して、人型アーマチュアを追加します。ちなみに、Human の下にある Pitchipoy Human は、目、鼻、口、耳といった顔面などのボーンが追加されているらしいのですが、そこまで細かく制御するのは大変なので Human を追加しています。
追加すると上記のようにモデルに隠れてボーンが見えなくなってしまうので、モデルを選択して、アーマチュアアイコンを選択して、X-Ray にチェックをつけます。
アーマチュアを調整する
モデルは左右対称なので、片方を調整したらもう片方も同様に動くようにしておきます。アーマチュアを選択して、Edit Mode にして、Options タブにある X-Axis Mirror にチェックをつけます。
あとは頑張って地道に、モデルにアーマチュアを合わせます。右クリックでボーンを選択、ドラッグで移動、sキーでスケール選択、rキーで回転できます。あと、複数のボーンを範囲選択したいときは、bキーです!
メッシュを編集する
モデルを選択して、 Edit Mode にして、Shading/UVs タブを選択して、Faces で Flat を選択。Tools タブを選択して、Remove で Remove Doubles を選択。重複する頂点を削除します。(さらに Subdivided を選択すれば適当に頂点を分割できます)
モデルとアーマチュアを統合する
先にモデルを選択して、Shift 押しながらアーマチュアを選択して、Ctrl-p で With Automatic Weights を選択すると、モデルとアーマチュアが統合されます。
Unity で アニメーションをつける
File > Export > FBX (.fbx) で fbx ファイルをエクスポート。Selected Objects のチェックは外し、Armature と Mesh だけを選択したほうが便利。
エクスポートした fbx ファイルを Unity に配置。Unity の Inspector 上で Rig タブを選択して、Animation Type で Humanoid を選択し、Apply を押す。
あと、アーマチュア入れる前は Scale 100 でちょうど良かったのに、アーマチュア入れてエクスポートすると何故か大きかったので 1 に戻しました。
あとは fbx を Hierarcy に配置して、適当なAnimatorをつけて、Unity chan などのアニメーションを適用すれば動きます。ちなみに、Asset Store などでダウンロードすると、アニメーションファイルがFBXファイルの中に含まれていて編集できないことがありますが、Ctl-d で取り出せますよ。
注意点としてはモデルの時点で手と足は広げた状態にしておき、髪なども他の頂点と隣接しないようにしないと、手足を動かしたら下記のように余計なところまで引っ張られちゃいます。
うーん、失敗。モデルの時点で手と顔をちゃんと分けないと、手を動かすと顔が歪む.. pic.twitter.com/EmecFwbZcz
— NinaLabo (@ninalabogames) 2016年11月4日
やっと、Blender にちょっと慣れてきました〜
参考サイト
- 「【12分で】MagicaVoxelモデルをUnityで動かした」
とても参考になる素晴らしい動画。かなり参考にさせていただきました。
- ノートパソコンでの Blender の視点設定を参考にさせていただきました
- 視点の操作方法を参考にさせていただきました