■ [作業履歴][Unity]MMDモデルの読み込みとNavMesh
MMD for Unityを使って、MMDのモデルとモーションをUnityに取り込む実験。
Defaultシェーダーでインポートするとポリゴンの表裏がおかしくなったような見た目になったので、MMDシェーダーでインポートしてからマテリアルを設定しなおすとうまくいった。
リニアライティングにすると黒い部分の反射率が低すぎたのでGimpのトーンカーブで暗部だけ適当に持ち上げた。足はまだ修正してないので真っ黒。
以前にpmdをfbxに変換して取り込んだ時にはサイズが小さすぎるので補正する必要があったんだけど、MMD for Unityだとデフォルトでこのくらいのサイズになってた。
スカートやネクタイの物理計算がおかしくなってたので少し修正したけど、調整が適当なので動くとめり込んでしまいやすい。
モーションを変換するときは、「Create Asset」のチェックを入れて別のアセットとして出力するとうまく再生できなかったので、チェックを外してPrefavの中に入れるようにすると正常に再生できるようになった。原因は不明。
数体置くと60fpsが維持できなくなってしまった。プロファイラで見るとスクリプトのCPU負荷が高くなっていて、どうやらIKの処理が重くなっているらしい。
CCDIKSolver.csでiterationsのループ回数を1/4くらいに抑えて対処。今回みたいな用途であれば、イテレーション回数を多少減らしても大きな問題にはならないみたい。
ついでにNavMeshをつかってプレイヤーを追いかけてくるようにしてみた。
道路の部分のモデルだけにNavigation staticを設定してbakeするだけで問題なく道路のみを歩いて追いかけてくるようになった。わりと簡単な設定で使えるみたいなのでとても便利。