Amezariz Blog

アイドルプロジェクト「アメザリズ」の公式ブログです。

Blender で改変した VRoid アバターに Unity 上でポーズをとらせる

今日も元気におかわり無料、どうもおにぎり(光)です。いやぁ最近はめっきり暑くなってきて、春というか夏というかの気候ですねぇ。冷たい麦茶が美味しく感じる今日この頃です。

 え?「さっさとタイトル通りの情報を寄越せ」????……わかりました。

 なお、僕は初心者なので、もっとうまくやる方法もあるかもしれませんが、とにかく「僕はこのようにしている」という話です。機械音痴なので……

下準備

まあこのタイトルでこの記事にご興味を持ってくださった方は、Blender、Unity、VRoid Studioをお使いのデバイスに入れてらっしゃると思います。今回、さらに必要となるのが UniVRM 0.x インポート/エクスポートです。とりあえずデバイスに入れていただいて、そこから先に進みましょう。

Blender上での操作

アバターのインポート

はい、既にお持ちのアバターをvrm形式のファイルでお持ちですね。それをBlender上にインポートします。やり方は以下の記事を参照!

amezariz.hatenablog.com

ポーズモードで動きをつける

オブジェクトモードでアバターのボーンを選択すると、「ポーズモード」を選択できるようになります。これはボーン間の位置関係や角度を変更することができるモードで、画面下部の「タイムライン」に、任意の時点におけるそうした変更の結果であるポーズを一対一に対応させることができます。フレームとかいうのかな。

 タイムラインの各フレームにアバターポーズを対応させるためには、そのフレームにおいてとってほしいポーズを確定したのち、「Aキー」で全選択をし、「Iキー」で「キャラクター全体(選択中のボーンのみ)」を選択します。全角入力になっているとうまくいかないので注意しましょう。

 ちなみに、Blenderは親切なので、二点のポーズ指定があれば、その二つの間をうまく補ってくれます。ざっくり指定してから、うまく補ってもらえないところについては細部において指定するのがよいでしょう。まずはざっくり、あとからじっくりです。

 はい、ポーズ指定を繰り返して作りたい動きができました。

FBXエクスポート

動きの指定が終わったら、下の時計マークの「タイムライン」のところをクリックして、「ノンリニアアニメーション」を選択します。そうすると、アニメーションのデータができるので、適当な名前をつけておきましょう。

 それが終わったら、画面上部の「ファイル」のところからFBXファイルとしてエクスポートを選択します。ちなみに、これは後程Unityでアニメーターコントローラのところにぶちこんで、動きのデータとして使います。

Unity上の操作

さてさて、動きのデータも作りました。それではUnityで動かしてあげましょう。

UniVRM導入

……とその前に、UnityのプロジェクトのアセットにUniVRMを入れてやる必要があります。ダウンロードしておいたUniVRMを、プロジェクトウィンドウのAssetsフォルダあたりにドラッグしてください。その後表示される「インポート」を選択してUniVRMの準備完了です。これで、vrm形式のアバター本体をUnityに登場させることができるようになりました。FBXファイルだと、色が抜けてしまうので、FBXはアニメーション用として、VRMはアバターのボディ用として使っています。

FBXのRig設定

UniVRMと同様に、FBXをAssetsフォルダにドラッグしてやると、ダンボールのようなマークが表示されるようになります。これを選択してインスペクターウィンドウをみると、「Rig」の設定が「ジェネリック」になっています。それを「ヒューマノイド」に変更して「適用する」をクリックしましょう。これで残すはアバター本体のみです。このアバターの種類が、「ヒューマノイド」Rigを使えるように調整されているんですねぇ。ありがたや。

VRMアバターを降臨させる

動かしたいアバターをvrm形式でお持ちだと思うので、それをまたまたプロジェクトウィンドウのAssetsフォルダ等にドラッグしてどーん。UniVRMのおかげでVRMファイルをそのままUnityに持ってくることができます。

 Assetsに入ったアバターを、ヒエラルキーウィンドウにドラッグすると、アバターの降臨です。

動きの反映

これが終わったら、最後に、アバターに動きのデータを反映します。アバターを選択した状態で、インスペクターウィンドウを開き、アニメーターの項目からアニメーターコントローラを指定。「なし」だと動いてくれません。

ところがどっこい、アニメーターコントローラを作っていないと、「なし」以外選択できないのでアニメーターコントローラを作りましょう。プロジェクトウィンドウのAssetsで右クリック→作成→アニメーターコントローラで、好きな名前のアニメーターコントローラを作ることができます(面倒なのでNew Animator Controllerとしています)。

 次に、アニメーターコントローラを選択した状態で、アニメーターウィンドウを開きます。アニメーターウィンドウに、AssetsにあるFBXをドラッグしてくると、アニメーションデータとして反映してもらえます。

そしてから、VRMアバターのインスペクターウィンドウの「Animator」から、先程作ったアニメーターコントローラを指定します。これで完成です。

動作確認

せっかくだから生き生き動くアバターをみてみたいので、動作確認をしましょう。カメラの位置や角度を調整してから、ゲームウィンドウの再生ボタンを押すと、アバターが動き始めます。

なんやこのウルトラマンの宿敵みたいなやつは。いや、ザリガニなんやけども。ノリ良く付き合ってくれたなな子ちゃんありがとう。

おわりに

機械音痴の僕が何度かの一夜漬けでできるようになったことですし、ネットの海には有識者がたくさん情報を載せてくれています。まあ、このやり方が最高効率かどうかわからないですし、ネットの海にも載っていないこともあるかもしれませんが、自分で試行錯誤してこそ、「今は必要ないけどいつか使えるかもしれないこと」や「まだ誰も言っていないこと」にも出会えると思うので、どうか自分だけの最高を見つけてください。やりたいことがあるなら方法とかノウハウとかは後回しで良いと思います。やらなきゃわからないのが当たり前なので。