Blenderで作った3DモデルをFaceRigで動かす

  • 投稿日:
  • by
  • カテゴリ:

なかなかハードルが高いので、はまりポイントをメモします。
下記を参考にすればとりあえずFaceRigで単純に3Dモデル表示するところまではいける。
https://steamcommunity.com/sharedfiles/filedetails/?id=523433759

まずモデルは原点に配置、スケールは1にしないとボーンやカメラがずれる。
頭のサイズは高さ2に収まる程度にする。
(モデルの位置回転スケールを調整した後で、ctrl+Aで原点原寸に変換できる)

マテリアルの命名規則を守る。例:smileyと名付けたアバターのfaceマテリアルなら「smiley_sht_metalcloth_face」。
そのfaceマテリアルのテクスチャ画像の名前は「smiley_face_d.tga」とする。テクスチャ画像はなくても動く。
画像はTARGA形式、縦と横のpixelサイズは2の累乗にする。

モデルのUVマップを必ず作る。
(Unwarpは、Edit ModeでAキーで全メッシュ選択してUキー)
一つのメッシュに複数のUVマップがあるとエラーになる。
(モデル選択してPropertiesウィンドウのDataタブ内にUV Maps一覧があるので使わないものは削除する。
複数のUVを使用したいときは、1メッシュ1UVになるようメッシュを分割する。)


最低限必要なボーンは、BipHead , BipLEye , BipREye の3つだけ。
Armatureを作ってWeightマップを作る。
ボーン名にドット( . )を含むとインポートエラーが起きる。
エラーが出る場合は、ボーンを消していき最低限のボーンだけにしてインポート成功するか確認するとよい。

Cameraという名前のボーンも必要らしいが認識されなかった。代わりにScene内にCameraという名前のカメラがあれば大丈夫。
アバターの正面とカメラは、Y軸(緑色の線)で向き合うようにする。(一般的に前後はZ軸だけど、BlenderではY軸が標準の模様)
カメラの位置はサンプルアバターを参考に合わせる。

アバターの動きは、様々なアニメーションを用意することで実現する。
最低限必要なのは「idle1」のみ。DopeSheetのActionEditorでidle1と名付けたアニメーションを作る。
キーフレームを選択してKeyメニュー→Sample keyframe(キーフレームを抽出)を実行して、
全フレームにキーを打たないとFaceRig側で正しくアニメーションされないケースがある。

下記のモーションを用意すればそれなりに動くと思う。
idle1 待機
Head_LR 首を左右に曲げる 0(左)~15(中央)~30(右)の31フレームで作成。
Head_UD 首を上下に向ける
Head_Twist 首を左右に振る
LeftEyeClosed 左目を閉じる
RightEyeClosed 右目を閉じる

アバターの腕は、Shift+マウスドラッグで動かせる。モーションは下記を用意する。
HandL_closeDown_LR 左腕、下げたまま左から右に振る。0(左)~15(基本ポーズ)~30(右)
HandL_closeMiddle_LR 左腕、胸の位置で左から右に振る。0(左)~30(右)
HandL_closeUp_LR 左腕、頭の位置で左から上に振る。0(左)~30(右)
※HandL_closeUp_LRが反映されない場合はHandL_farUp_LRに割り当ててみる。

口の動きは下記があるとよい。
MouthOpen 口を開ける。0(閉じる)~30(開ける)
MouthOpen_base 口を開けっ放し。0~30まで同じ。
Mouth_pursedLips_LR 唇をすぼめる。0(左ですぼめる)~15(中央で)~30(右で)
MouthClosedLeft_U 左、口角を上げて笑う
MouthClosedRight_U 右、口角を上げて笑う

BlenderからデータをCollada形式で書き出す。
ファイル名に「Geometry.dae」をつける。例:smileyGeometry.dae
アニメーションはそれぞれの名前で書き出す。例:idle1.dae
ファイルパスに、スペースやハイフンがあると読み込めない。
FaceRigのインポーターは下記にあるので起動して、Data Folderを指定してImport実行。
C:\Program Files (x86)\Steam\steamapps\common\FaceRig\Bin\Tools\ImportWizardNew

インポーターから一度書き出したデータは、インポーター上でクリアしても消えないようなので
間違ったアニメが残り続ける場合は、下記にあるアバターデータを消すと良い。
C:\Program Files (x86)\Steam\steamapps\common\FaceRig\Mod\VP\PC_CustomData\Objects

FaceRigのLAUNCHボタンでクラッシュするようになってしまったときは、前述のアバターデータを消して
OPTIONSでReset to Defaultsを押してみると直るかも。
私の環境ではマルチモニター(外部ディスプレイ接続中)でLAUNCHボタン押すとクラッシュする

Qキー押したときに発動するspecial01などの特殊アクションについては
special01だけでなくベースとなるidle1、Avatar_LR、Avatar_FBの全ボーンにキーフレームを打っておかないとアバターが消える

参考:
ばけもの屋 -BAKEMONOYA- faceRig編
アニメテンプレート一覧
https://www.youtube.com/watch?v=ecLd4NsmpUw
サンプルアバター「yexample」のダウンロード