kugi's notebook

やったこと、思ったことなどつらつらと書きます

Blender to Unity Part2 ~Unityへのインポートで困った話~

はじめに

こちらの記事は広島大学ITエンジニアアドベントカレンダー2019の21日目です。

Cammelでは現在iOSAndroid向けのゲームを制作していて、 私はシェーダー周りやアニメーション処理を担当しています。

今回はBlenderで作ったモデルのアニメーションをインポートする際に困った話をします。

f:id:kugi_masa:20191220220524p:plain
こいつは一体...

モデルのインポートについては Blender to Unity Part1で簡単に紹介しています。

環境について

作業環境は以下の通りです。

  • Unity : 2018.3.8f1
  • Blender : ver 2.8

BlenderでFBX形式でエクスポート

まずメンバーがBlenderで作ってくれたアニメーションをUnityにインポートします。1つのモデルに対して複数のアニメーションを使うのでアニメーションごとにFBXファイルを分けてもらいました。 エクスポートの設定は以下のように指定します。

f:id:kugi_masa:20191220171814p:plain
fbxのエクスポート設定

Unityへアニメーションをインポート

今回のように1つのモデルに対して複数のアニメーションをインポートする際 ファイル名を以下の形式にすることで自動でモデルのアーマチュアがアタッチされるようです。

[model_name]@[animation_name].fbx

ソースはこちら

モデルがなんかおかしい...!?!?

早速FBXをインポートすると...

f:id:kugi_masa:20191220173452p:plain
なんか変な線が....
f:id:kugi_masa:20191220173634p:plain
Blenderでのモデル

アニメーションは動いてくれましたが、Blenderでのモデルでは明らかにないはずの変な線がついています。ただマテリアルがはげているというわけでもなさそうです。

いろいろ見てみると...

Blenderでは問題なく表示されているはずのメッシュがぺちゃんこになっていました。

f:id:kugi_masa:20191220174208p:plain
なぜかメッシュがぺちゃんこに...!?

Blendファイルに戻り、オブジェクトモードのクリアオプションでコマの位置や拡大縮小をクリアしてみるとぺちゃんこモデルが現れました...!!

f:id:kugi_masa:20191220175004p:plain
どうやらスケーリングなどの変換が適応されていなかった

Apply(適応)オプションで位置、拡大縮小の変換を適応してからFBXを再度Unityにインポートしてみました!

f:id:kugi_masa:20191220220255p:plain
無事Unityにモデルとアニメーションをインポートすることができました!

まとめ

今回の不具合の解決に2日ほど時間を溶かしてしまいました。

Blenderで作成したモデルを扱うときは注意が必要ですね...

やったこと

  • Blenderで作成したモデルとアニメーションをUnityにインポート

わかったこと

  • 何かが変だったらクリアオプションや適応オプションで確認してみる

次やりたいこと

  • アニメーションのUnityでの処理について書きたいです