現在 Blender にはフリーのアドオンである Rigify が同梱されていて,これにより自身のモデルに二足歩行キャラクターのリグ を作成してメカニム と連動させることができます。新しいゲームおよびカジュアルゲームの開発者にとって非常に便利です。
このガイドでは 3D モデルを Rigify を用いてリギングして Unity 4 のメカニムにインポートする方法を示します。 Rigify は自身のモデルに対して完全なリグを提供し,Armature をテンプレートとして使用することで,ヒューマノイド キャラクター向けの素晴らしくシンプルなリグを作り出すことが出来ます。始めるには Blender 上で Rigify 機能を使用できるように有効化します。次に 3D モデルをインポートして モデルおよび Armature をセットアップして後続で発生しうる問題をあらかじめ回避します。一回全てをセットアップした後はボーンを配置してメイン リグを生成できます。もっとも複雑なのはメッシュを使用したボーンに対してスキングしたうえで,正しく親子関係が設定されていることを確認し,最後に(いくつかのテストと微調整の後)Unity にインポート出来ます。
最初に Rigify アドオンがインストールされ Blender で有効化されていることを確認する必要があります:
アドオンをアクティベートし,必要なボタンや機能にアクセスできます。デフォルトに設定すると,すべてのあなたの先のプロジェクトで含まれます。
テンプレートとして Rigify で使用する基本的なヒューマノイド リグを入手します。このリグはとても基本的ですが Rigify が相対的なボーンの位置を囲うようにして構築できるようになります。
Add > Armature (Human)に移動します。
Armature およびモデルが両方とも(0,0,0)を中心としていることを確認します。
もしモデルをスケールまたは移動した場合,Armature およびモデルのスケール および/または Transform の値を確実にリセットしておきます。
Edit モードに入ります (Tab キーを押下)
ボーンをモデル上のしかるべき位置に配置します。
“X-Ray” を使用して,モデルを透過してボーンが表示されるようにします。
完了した後, Object モードに戻します
Armature を左右のどこか作業の邪魔にならない位置へとよけるために移動させます。 (もし Make Human を使用している場合,多くの異なるメッシュをひとつの完全なメッシュに Join したい場合があります。これをするためには全てのメッシュを選択して Ctrl + J を押下します)
Armature が選択されている時に,右端にある Object data タブをクリックします。
Rigify Buttons セクションを見つけ,下にある Generate をクリックします。
Pose モードに切り替えて次の手順を実施します:
(A) キーを押下して,リグを選択し,(H) キーを押下して不必要なレイヤーを隠します。
下にある Armature レイヤーを Shift を押しながらクリックします。
これにより Deformation ボーンが表示されます。これらの Deformation ボーンはメッシュをスキニグしてウェイトペイントするのに必要です。
右上のシーンの階層上にたくさんの WGT と名前のついたボーンが出来ることに気が付くはずです。
これらのボーンはメッシュにスキングされずまったく使用されないものであるため,これらを削除することで Unity プロジェクトの中に割り当てされないメッシュが出来ることを回避する必要があります。ボーンを右クリックして “Delete” を選択します。これをシーン中の各ボーンに対して行います。
モデルを Deformation ボーンに対してスキニングする
始める前に,Object モードに入っていることを確認してメッシュを選択し,それから Shit を押しながらリグを選択し,Ctrl + P を押下して表示されるメニューで Armature deform > With Automatic weights を選択します
これによりボーンに対してメッシュが割り当てられ Vertex Group が作成されます。これがスキニング プロセスで使用するものです。
(もし Blender でスキニングする知識がないか,ほとんど初めての場合は ここ でチュートリアルを参照して下さい。)
Deformation ボーンは各々上部と下部の手足に二つのボーンを使用することに気が付くはずです。二つめのボーンはスキングせず, 正しくメカニムが正しくリンクできるように親子関係を確かめます。
肩を “DEF-shoulder.R” と “DEF-shoulder.L” にスキニングして,親が “ORG-ribs” であることを確認します。
腕の上部を “DEF-upper_arm.R.01” と “DEF-upper_arm.L.01” にスキニングして,親が各々 “DEF-shoulder.R” と “DEF-shoulder.L” であることを確認します。
腕の下部を “DEF-forearm.R.01” と “DEF-forearm.L.01” にスキニングして,親が各々 “DEF-upper_arm.R.01” と “DEF-upper_arm.L.01” であることを確認します。
脚の上部を DEF-thigh.R.01 と DEF-thigh.L.01 にスキニングして,親が “ORG-hips” であることを確認します。
脚の下部を DEF-shin.R.01 と DEF-shin.L.01 にスキニングして,親が各々 “DEF-thigh.R.01” と “DEF-thigh.L.01” であることを確認します。
これにより X が表示されていないボーンにスキニングされたリグが得られます。余分なボーンは完全にスキングしないようにします。
手に対して同じことを行いますが,メカニムは手のボーンと,各々の指と親指でそれぞれ 3 つのボーンしか使用しないことに留意して下さい。つまり下の図におけるモデルの手を X が表示されていないボーンに対してスキニングします。
同様にして,手は正しいボーンを親とする必要があります。手を “DEF-hand.R” と “DEF-hand.L” にスキニングして親が各々 “DEF-forearm.R.01” と “DEF-forearm.L.01” であることを確認します。
各々の指と親指について,次のボーンを使用します(例は左手):
* 親指: "DEF-thumb.01.L.02", "DEF-thumb.02.L", "DEF-thumb.03.L"
* 人差指: "DEF-finger_index.01.L.02", "DEF-finger_index.02.L", "DEF-finger_index.03.L"
* 中指: "DEF-finger_middle.01.L.02", "DEF-finger_middle.02.L", "DEF-finger_middle.03.L"
* 薬指: "DEF-finger_ring.01.L.02", "DEF-finger_ring.02.L", "DEF-finger_ring.03.L"
* 小指: "DEF-finger_pinky.01.L.02", "DEF-finger_pinky.02.L", "DEF-finger_pinky.03.L"
各々の指のボーンは常に一つ手前のボーンを親にして,最初の指のボーンは手のボーンを親にすることに留意することでメカニムがスムーズに正しくリンクできるようになります。
モデルを .fbx としてエクスポートしてプロジェクトとは別のフォルダに配置します。メニュー上では file > Export > AutoDesk FBX (.fbx) > Export です。完了した後, Unity にインポートしてメカニムとリンクされるように出来ます。
Unity 4 を開き,“Rigify Test” という新規のプロジェクトを作成します。開いた後にモデルを Project ウィンドウにドラッグ&ドロップします。
モデルのプレハブを Project ウィンドウで選択してインスペクタ上で Rig をクリックします。 Animation Type を Humanoid に変更したうえで Configure をクリックします。
これで全てのボーンは正しくメカニムでリンクされるはずです。