10cebox -じゅーすぼっくす-

人生は、ジュースのように甘酸っぱい。

blender 勉強日記 5日目 Unityにモデルをインポートする

f:id:umux_24:20201017160033p:plain

 

 

 

お休みの日、相も変わらずお勉強。

 

今回はBlenderで作成したモデルをUnityに取り込んでみる。

 

 

 

 

実は見えていた道

 

とまあ内容を書き出すわけではあるが、実は既になんとなく手順は見えているものがある。

Unityで使用しているモデルはだいたいが .fbx という形式のファイルなので、この形式でエクスポートすればUnityで直接取り込めるのでは、という算段だ。

f:id:umux_24:20201017144405p:plain

ファイル→エクスポート で早速見覚えのあるフォーマットが

f:id:umux_24:20201017144512p:plain

………あれ?

 

出力するにはできたのだが、マテリアルが剥げてしまっている。

何らかの設定の問題化と思っていろいろ調べてみる。

 

qiita.com

結論

できない。
別の方法でやる

早速出鼻をくじかれた。

どうも現行のバージョンではテクスチャを抱えての出力はできないらしい。これについてはMODでテクスチャつきモデルを吐き出せるようにするものがあるらしいが、ここでは上記参考記事に書いてあった外部ツールを利用する方法を行おうと思う。

 

まず、 fbx エクスポートを行う際に以下の設定を行っておく。

  • パスモードを「コピー」に
  • バッチモードを「コレクション」に

f:id:umux_24:20201017145542p:plain

 

f:id:umux_24:20201017145804p:plain

エクスポートされたファイル一式

fbxがメッシュのデータで、 fbm フォルダの中にはテクスチャが入っている。これでワンセット。

fbxとテクスチャファイルとはパスでつながっているらしいので、片っぽだけファイル移動とかさせると壊れてしまうので気を付けること。

 

見えていなかった泥沼

※この下しばらく、誤った手順を踏んでつまづきます。本記事と同様の手順を踏んで作業している場合は、「単色塗りの設定を消す」まで読み飛ばしてください。

 

続いて、外部ツール「FBXConvertUI」をインストールする。

 

f:id:umux_24:20201017145929p:plain

末尾が 3 のほうが新しいやつ、だと思う。あとは環境に応じて 64bit かそうでないかを選んでクリック。

f:id:umux_24:20201017151443p:plain

FBX ConvertUI の画面

 

FBX ConvertUIの使い方は単純で、画面左の枠にBlenderから出力した .fbx ファイルをドラッグアンドドロップで放り込み、 右下枠のEmbed mediaにチェックを入れて「Convert」ボタンを押す。

Embed media にチェックを入れることで、 fbxにテクスチャ等のメディアファイルが取り込まれた状態に変換できる、ということらしい。変換された .fbx ファイルは、元のファイルと同じ階層に作られた「FBX 2013」というフォルダの中に置かれている。

 

これをUnityに取り込めば…

 

f:id:umux_24:20201017153719p:plain

……あれ?

変わっていない。

やり方がよくなかったのか、同様の記事を調べてやり直してみても、結果は変わらず。これは手詰まりかと思って方向性を変えていろいろ調べてみたら、一つの道が。

 

nn-hokuson.hatenablog.com

 

注 FBXファイルとテクスチャを同時にUnityにドラッグ&ドロップすることで、テクスチャを設定したままUnityにインポートできました。

 

FBXファイルをテクスチャを同時にドラッグアンドドロップで……いけるらしい。え、じゃあ外部ツールわざわざインストールしたのは無駄だったってこと……?

 

f:id:umux_24:20201017154749p:plain

はい

 

無駄ということが判明しました。

前章の設定でエクスポートしたフォルダとファイルを、丸ごとUnityに持っていくだけでよかった。テクスチャはそれだけで反映された。

 

 

 

単色塗りの設定を消す

 

ということで結局、エクスポートしたファイル・フォルダ一式をそのままUnityのアセットフォルダに放り込むだけでUnityに取り込めた。

とはいえ気になるものはある。妙に赤いのだ。

 

しかし実はこれについては、何となく原因は見えていた。もしかして画像テクスチャ貼る前のベースカラーが上塗りされている…?

2日目あたりで行っていた単色塗りの設定がまだ生きていて、画像テクスチャをそこに貼り付けているので、これが上書きではなく重ね塗りのようになってしまっているのではと考えた。

f:id:umux_24:20201017154919p:plain

ベースカラーの画像を外すには、リンクの削除をする

いったんベースカラーの画像を外し、単色の状態にすると、確かに元の単色塗りの設定で指定していた色が生きていたため、これを白色にした後、4日目で行っていたテクスチャ貼りを行い、改めてエクスポートする。

 

f:id:umux_24:20201017155605p:plain

赤みがなくなった

これで、Blenderで作成したモデルをテクスチャつきでUnityに取り込むことができた。

実際にはBlenderで見ていた時よりも質感を感じにくいが、そこはシェーダーの設定等を組み込んでいけばよいのだと思う。ここから先はUnityの領分。