Humanoidをインポートするときの注意点

提供: socialakiba wiki
ナビゲーションに移動 検索に移動
Humanoid inspector.png

自分が作ったキャラクターのメッシュとモーション (.blendファイル) とテクスチャ(.pngファイル)をassets フォルダに入れると勝手にインポートされるが、 Unity の mecanim という機能で使えるようにするため、若干設定が必要になる。

自前のモーションだけでキャラクターを動かす場合には mecanim も humanoid リグも要らない。 generic でやればよい。 humanoid 互換のモデルどうしでモーションを共有するために mecanim という仕組みがある。

humanoid にすると羽根とか髪の房、スカートなどの(humanoid標準ではない)ボーンに付けたモーションが無視されてしまう。 そういう場合も generic でやるしかない。

※ humanoid ではなくて generic でやるときは以下の rig の設定は要らない。 しかし、model と animations の設定はいずれにしてもやらなくてはならない。

キャラクターモデルの inspector

assets のキャラクターを選択した状態で、inspector を見ると、※ model と rig と animations の3つのタブがある。

model

Inspector model.png

そのうちまず、modelタブ を開く。

scale factor で大きさを調整する(大きさはあとから調節しても良いのだが、ここでそろえておいたほうがよい)。

normals を import から calculate に変更する(blender で作ったメッシュにはそのままだと法線の値がないので滑らかにシェーディングされない。なので、unity の側で、メッシュから法線を計算する)。

最後に apply ボタンを押す。

rig

Inspector rig.png

rigタブ を開く。

animation type を generic から humanoid に変更して、apply ボタンを押す。

そのあと、configureする。

scene を save するかといわれるときは save しておく。


Humanoid configure.png

とくに問題ないときは何もしなくてよい。

done ボタンを押して終了。

※ character is not in T pose という警告が出たときは、このページの下の方に書いてあるように、Enforce T pose というボタンを押せば解決することがある。

animations

Inspector animations.png

animationsタブを開く。

ループするモーション(walk とか run とか)を一つずつ選択して、Loop Time と Loop Pose にチェックを入れる。

Bake into Pose はすべてチェックを入れる(これを忘れるとうまく動かないことがある)。

最後に apply ボタンを押す。

ボーンが左右逆なとき

Sayuugyaku.png

blender でボーンを x-mirror で伸ばすときに、足と手で左右逆の側を伸ばしてしまうと、手や足が交差して判定されてしまう。

その場合はしょうがないのでボーンの対応を一つ一つ直す。

途中赤い字で警告がでるが無視して最後までやる。

Sayuugyaku2.png


Sayuugyaku3.png

ボーンを付け替え終わったら、 pose → enfored t-pose

Sayuugyaku4.png

赤い警告がすべて消えたら done ボタンを押す。

その他はまるポイント

  • blender の auto keying を on にしたまま unity にインポートすると、アニメーションが存在しているのにキャラクターが動かない、というバグがあるらしい。
  • unity にインポートするときは T pose で、アーマチャーを pose モードにしておかないと少しはまる。
  • 背骨と足が共通の親ボーンから分かれてないと humanoid として認識されない。一番親のボーンを必ず一つ、腰の位置に作るように。
  • スカートなどにボーンを入れている場合も humanoid として認識されないことがある。その場合は手作業で対応付けするのだが、スカートのボーンのモーションは humanoid では無視されるので、結局 generic でやることになる。
  • 自前のモーションだけでやる場合には、rig がうまく humanoid にできないときは無理に humanoid にせず generic でやってもよい。

参考

blenderで作成したファイルを unity にインポートして、inspector の Modelタブで大きさ調整、法線の設定