Very PoorなレッサーモクリをPoorにまで軽くする方法をつらつらと記述します。
やることは、
の2点です。Dynamic Boneを導入していなければメッシュの結合だけで済みます。
仕様ツールはBlender2.8とUnityです。これらの導入はできるものとして、Blender2.8とUnity上での操作を説明します。
事前準備としてUnity上にレッサーモクリが導入されているものとします。
6/23 リップシンクの適用と尻尾の曲がりについての追記
Blenderを起動します。画面を適当に押せば中央の表示は消えます。
それではCubeを倒しましょう。倒し方はいくつかありますが画面右上の囲った部分に注目してください。
これらを右クリックすると削除が表示されます。これで「Camera」「Cube」「Light」を削除しましょう。
次にレッサーモクリをインポートします。左上から「ファイル」→「インポート」→「FBX」を選択。
レッサーモクリのデータを選ぶ前に画面左下よりアーマチュアのタブから「ボーン方向の自動整列」にチェックを入れましょう。
「レッサーモクリ.FBX」を探します。ファイルの置き場所はUnity起動時のプロジェクト以下に書いてある「Path:」の先「Path:/プロジェクト名/Assets/Models/」の先にあります。
左側のシステム以下から探し出して「FBXをインポート」を実行します。
無事にレッサーモクリをインポートしました。それではメッシュを結合していきましょう。右上のArmatureの左にある△を押して内部を表示します。
今回は髪、耳、装備を一つのメッシュにまとめます。画面左上で「オブジェクトモード」であることを確認します。Shiftキーを押しながら「Apron」「Armguard」「Cylinder」「Ear」「Hair_Back」「Hair_Ear」「Hair_Front」「Hair_Side_In」「Hair_Side_Out」「Helmet」を選択します。その後、Ctrl+Jキーを押すことでメッシュを結合することができます。もし、「Body」も結合する場合は、Bodyを最後に選択して結合後の名前がBodyになるようにしてください。
メッシュが結合できました。結合したメッシュは名前が最後に選択したものになっています。必要ならF2キーを押して名前を変更しましょう。
できあがったデータをエクスポートします。「ファイル」→「エクスポート」→「FBX」を選択します。
エクスポートをする前に画面左下のジオメトリタブから「モディファイアーを適用」のチェックを外してください。これにより、シェイプキーが残ったままエクスポートできます。
先ほどと同じ「レッサーモクリ.FBX」があった場所に適当な名前をつけてFBXをエクスポートします。
Blenderを閉じてUnityを起動します。「Assets」→「Models」→「レッサーモクリ」内に先程エクスポートしたデータがあります。これを選択後、「Rig」内のAnimation Typeを「Generic」から「Humanoid」に変更します。そうしたらヒエラルキーにメッシュ結合版をドラッグ・アンド・ドロップで追加します。
「Body」を「MeshRoot」の「skin」以下に移動させます。このとき、メッセージがでますがContinueを押してください。これにより、シェイプキーが動作し元々の表情が使えるようになります。
左側でメッシュ結合版を選択し、「Add Component」から「VRC_Avatar Descriptor」を追加します。
手動で値を設定しても良いですが元のレッサーモクリのデータがある場合、そちらを開き「VRC_Avatar Descriptor」で右クリックし「Copy Component」をしたあとメッシュ結合版の「VRC_Avatar Descriptor」を右クリックして「Paste Component Values」をします。
これにて、メッシュの結合及びアバターの再設定が完了しました。
~追記~
このままだとリップシンクが死んでいるため、「VRC_Avatar Descriptor」の「Face Mesh」に「MeshRoot」ー「Skin」以下の「Body」をドラッグ・アンド・ドロップしてください。
またprefabから持ってきた場合、尻尾がまっすぐになっているため、「Armature」ー「Hips」以下の「Tail00」~「Tail05」のRotationZに値を入れてそれっぽく曲げてください。
元の形と同じ形にするには元の方と絶対値を反転させると同じようになります。
ヒエラルキーのトップを右クリックし、「Create Empty」でGame Objectを作成します。これをDynamic Boneと適当に名前をつけておきます。
今作成したヒエラルキーの「Dynamic Bone」を選択し、「Add Component」から「Dynamic Bone」を2つ追加します。
「Dynamic Bone」の「Root」に「Head_Top」と「Tail00」をそれぞれドラッグ・アンド・ドロップします。
それぞれのDynamic Boneに値を設定します。デフォルトの値は以下のとおりです。また、Head_TopにはCollidersのSizeを2にし、それぞれのElementにHeadとSpine2を先ほどと同様にドラッグ・アンド・ドロップで設定します。
これでDynamic Boneの設定は完了です。メッシュ結合をしていた方としていない方では少し作業が変わります。
メッシュを結合していた場合、HeadとSpine2にはDynamic Bone Colliderが入っていないため設定する必要があります。「Head」と「Spine2」にそれぞれAdd Componentから「Dynamic Bone Collider」を追加してください。
HeadとSpine2の値は元の値と同じにするとずれてしまいます。概ね同じ形になるようにした値は以下の通りになりますので参考にしてください。
メッシュの結合をしていない場合はもともと入っているDynamic Boneを消す作業があります。Head_TopとTail00内にある全てにDynamic Boneが入っているため、Dynamic Boneを右クリックし「Remove Component」で地道に全てを削除してください。
以上で、すべての作業が完了です。お疲れ様でした。