poi’s tech blog

3D多人数同時接続型球体アクション成人向けゲーム開発のためのアイデア、ナレッジ

Blenderで作ったモデルに内蔵されたAnimationをUnityで抜き出す

頑張ってBlenderでアニメーションを作った。

f:id:poipoipoip:20190203113125g:plain
Blenderで作ったアニメーション

以下のURLのやり方でMeshとAnimationを別々に出力できる。

taka8.hateblo.jp

逆にMeshとAnimationがセットになったアセットからUnity側でAnimationだけ抜き出す方法を試してみた。

BlenderのOutlinerの状態

f:id:poipoipoip:20190203113637p:plain
CameraやPointは要らないので無視。NLA Tracks内のWalkモーションに注目

File>Export>FBXでデフォルトのまま出力

Unityにインポート

f:id:poipoipoip:20190203113955p:plain
モデル内にある「root|Walk」が目的のアニメーション

本来、Projectタブで「root|Walk」を選択したあと「Ctrl + D」を押すことでアニメーションだけファイルとして取り出せる(直下にあるwalkファイルはすでに抜き出したやつ)

ただしそのままだと全く抜き出せず、Consoleタブを見るとエラーが確認できる。

ArgumentException: Illegal characters in path.

ググると以下のサイトが出てくる

https://answers.unity.com/questions/877486/argumentexception-illegal-characters-in-path-when.html

ようするにアニメーションの名前に勝手に「アーマチュア名|アニメーション名」ってつくんだけど、このパイプ「|」が入ってるとダメらしいので上の画像の赤〇がついてるところあたりで名前を「walk」に変更したあと「Ctrl + D」で無事抜き出せた。

補足

  • アニメーションファイル単体になることで使いまわししやすくなる(らしい)
  • Unityでもある程度アニメーションが作成できるがボーンを考慮した動きが作れない(らしい)のできちんとやるにはモデリングソフト側でやるのがよい(らしい)