アニメーションに関するFAQ
アニメーションと Mecanim 用語

Blender と Rigify の使用

現在 Blender にはフリーのアドオンである Rigify が同梱されていて、これにより自身のモデルに二足歩行キャラクターのリグを作成して Mecanim と連動させることができます。新しいゲームおよびカジュアルゲームの開発者にとって非常に便利です。

このガイドでは 3D モデルを Rigify を用いてリギングして Unity の Mecanim にインポートする方法を示します。Rigify は自身のモデルに対して完全なリグを提供し、Armature をテンプレートとして使用することで、ヒューマノイドキャラクター向けの素晴らしくシンプルなリグを作り出すことが出来ます。始めるには Blender 上で Rigify 機能を使用できるように有効化します。次に 3D モデルをインポートしてモデルおよび Armature をセットアップして後続で発生しうる問題をあらかじめ回避します。一回全てをセットアップした後はボーンを配置してメインリグを生成できます。もっとも複雑なのはメッシュを使用したボーンに対してスキングしたうえで、正しく親子関係が設定されていることを確認し、最後に(いくつかのテストと微調整の後) Unity にインポート出来ます。

必要なソフトウェア:

  • Unity
  • Blender
  • 3D ヒューマノイドモデル (MakeHuman はモデリングでのサポートが必要な場合に便利です)。

Rigify の有効化

最初に Rigify アドオンがインストールされ Blender で有効化されていることを確認する必要があります:

  1. File > User preferences に移動します。
  2. Addons タブを選択し、最下部までスクロールして Rigify の隣にあるチェックボックスをクリックしたうえでデフォルトとして保存します。
  3. “ Save User Settings ”をクリックします

アドオンをアクティベートし、必要なボタンや機能にアクセスできます。デフォルトに設定すると、すべてのあなたの先のプロジェクトで含まれます。

アーマチュアの設定

テンプレートとして Rigify で使用する基本的なヒューマノイドリグを入手します。このリグはとても基本的ですが Rigify が相対的なボーンの位置を囲うようにして構築できるようになります。

  1. Add Human Armeture: Add (SHIFT + A) > Armature (Human) に移動します。

  2. Armature およびモデルが両方とも( 0, 0, 0 )を中心としていることを確認します。

  3. もしモデルをスケールまたは移動した場合、Armature およびモデルのスケールおよび/または Transform の値を確実にリセットしておきます。

  4. Edit モードに入ります (Tab キーを押下)

  5. ボーンをモデル上のしかるべき位置に配置します。

  6. “X-Ray” を使用して、モデルを透過してボーンが表示されるようにします。

  7. 完了した後、Object モードに戻します

  8. Armature を左右のどこか作業の邪魔にならない位置へとよけるために移動させます。 (もし Make Human を使用している場合、多くの異なるメッシュをひとつの完全なメッシュに Join したい場合があります。これをするためには全てのメッシュを選択して Ctrl + J を押下します)

Rig の生成

  1. Armature が選択されている時に、右端にある Object data タブをクリックします。

  2. Rigify Buttons セクションを見つけ、下にある Generate をクリックします。

  3. Pose モードに切り替えて次の手順を実施します:

  4. (A) キーを押下して、リグを選択し、(H) キーを押下して不必要なレイヤーを隠します。

  5. 下にある Armature レイヤーを Shift を押しながらクリックします。

これにより Deformation ボーンが表示されます。これらの Deformation ボーンはメッシュをスキニグしてウェイトペイントするのに必要です。

もし全ての Deformation が表示されない場合、“Auto Run Python Scripts” オプションの File > User Preferences > File の再確認と再生成を行って下さい。

WGT ボーンの削除

右上のシーンの階層上にたくさんの WGT ( WGT はウィジェットの略) と名前のついたボーンが出来ることに気が付くはずです。

これらのボーンはメッシュにスキングされずまったく使用されないものであるため、これらを削除することで Unity プロジェクトの中に割り当てされないメッシュが出来ることを回避する必要があります。ボーンを右クリックして “Delete” を選択します。これをシーン中の各ボーンに対して行います。

リグをモデルに対してスキニングする

  1. モデルを Deformation ボーンに対してスキニングする

    Before you start, make sure you are in object mode and select the mesh, then hold shift and select the rig, press Ctrl + P and select Armature deform > With Automatic weights. これによりボーンに対してメッシュが割り当てられ Vertex Group が作成されます。これがスキニングプロセスで使用するものです。 (Blender でスキニングを行う知識がない場合は ここ にあるチュートリアルを行ってください。) Deformation ボーンは各々上部と下部の手足に二つのボーンを使用することに気が付くはずです。二つめのボーンはスキングせず、正しく Mecanim が正しくリンクできるように親子関係を確かめます。

  2. 肩を “DEF-shoulder.R” と “DEF-shoulder.L” にスキニングして、親が “ORG-ribs” であることを確認します。

  3. 腕の上部を “DEF-upper arm.R.01“ と ”DEF-upper arm.L.01” にスキニングして、親が各々 “DEF-shoulder.R” と “DEF-shoulder.L” であることを確認します。

  4. 腕の下部を “DEF-forearm.R.01” と “DEF-forearm.L.01” にスキニングして、親が各々 “DEF-upper arm.R.01“ と ”DEF-upper arm.L.01” であることを確認します。

  5. 脚の上部を DEF-thigh.R.01 と DEF-thigh.L.01 にスキニングして、親が “ORG-hips” であることを確認します。

  6. 脚の下部を DEF-shin.R.01 と DEF-shin.L.01 にスキニングして、親が各々 “DEF-thigh.R.01” と “DEF-thigh.L.01” であることを確認します。 これにより X が表示されていないボーンにスキニングされたリグが得られます。余分なボーンは完全にスキングしないようにします。

    Do the same thing to the hands, just remember Mecanim will only take the hand bone and three bones for each finger and thumb. This means you skin the model’s hands to the bones without crosses through them as shown in the picture below.

  7. 同様にして、手は正しいボーンを親とする必要があります。手を “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"

各々の指のボーンは常に一つ手前のボーンを親にして、最初の指のボーンは手のボーンを親にすることに注意することで Mecanim がスムーズに正しくリンクできるようになります。

エクスポートおよびインポート

モデルを .fbx としてエクスポートしてプロジェクトとは別のフォルダーに配置します。メニュー上では file > Export > AutoDesk FBX (.fbx) > Export です。完了した後、Unity にインポートして Mecanim とリンクされるように出来ます。

  1. Unity を開き、“Rigify Test” という新規のプロジェクトを作成します。開いた後にモデルをプロジェクトウィンドウにドラッグ&ドロップします。

  2. モデルのプレハブを Project ウィンドウで選択してインスペクター上で Rig をクリックします。Animation Type を Humanoid に変更したうえで Configure をクリックします。

    All the bones should now link up nicely into Mecanim.

  3. 全てのボーンが正しい位置にあることを確認してエラーがないことを確認します。

アニメーションに関するFAQ
アニメーションと Mecanim 用語