Fusion360で作ったCADモデルをUnityでテクスチャ付モデルとして取り扱うワークフロー
はじめに
個人でも利用できるCAD/ハードサーフェスモデリングソフトとして、近年伸びがすごいFusion360というソフトウェアがあります。
純粋にCADとして利用する場合はソフトの中である程度のことが完結※して行うことができます。一方で、CADとしてではなくモデリングソフトとして見たときは本来の用途ではないため、できることに限りがあります。
※用途による
例えば、モデルのUVマッピングを行えない点が挙げられます。一応UVマッピングに近い項目は存在していますが、BlenderやMayaなどの3Dモデル制作ワークフローで行われているようなものを行うことはできません。そのため、モデルのエクスポート(書き出し)機能で.fbxなどの形式で書き出しを行い他ソフトウェアにインポートしても、意図したテクスチャではなかったり、別途テクスチャを作成することが難しいことが多発します。
この記事では、Fusion360を”ハードサーフェスモデリングソフト”として位置づけ、Fusion360で制作した3DモデルのUVマッピング、テクスチャ制作、ゲームエンジンへの取り込みまでの一連のワークフローを紹介します。ここで紹介するフローは限定的な条件下(30日間縛り)ですが、無料で実施することができます。
(慣れ親しんだフローというよりは、ワークフローを模索する中でよさそうなワークフローを見つけたので備忘録を兼ねてまとめています。この手のワークフローはネットに情報が無いので...)
また、こういったワークフローは個々人の利用できる環境や作成したモデルに依存しているため、漠然とお金をかけずにとりあえず初めてみたい。という方や下記にあげるような読者を想定しています。
※本記事に”このフローが最適だ”といった意図はありません。自分なりのフローを見つけてください。
対象読者
- Fusion360をモデリングソフトとして利用している人
- ZbrushやMayaのライセンスを所持していない人
- Fusion360で作成したモデルのUVマッピングを行いたい人
- とりあえず、お金をかけずに試してみたい人
利用するソフトウェア
- Fusion360(記事執筆時点:2021/05/01)※ライセンスの種別は問わない
- Blender 2.9.0
- Substance Painter(記事執筆時点:2021/05/01)※本記事では30日間無償体験版を利用
- Unity2019※任意のver/ライセンスを利用。またはその他レンダーソフトウェア
ワークフロー
おおまかなワークフロー
- Fusion360でハードサーフェスモデリング
- Fusion360から.fbx形式でエクスポート
- エクスポートしたモデルをBlnderにインポート
- BlenderでUVマッピングを行う
- UVマッピングを行ったモデルをBlenderから.fbx形式でエクスポート
- Substance Painterにモデルをインポート
- Substance Painterでテクスチャ作成
- Substance Painterからメッシュ(obj)/テクスチャ(jpeg)書き出し
- Unityにインポート
- Unity上でテクスチャ割り当て
- Unityで任意に利用する
1.Fusion360でハードサーフェスモデリング
好きなようにモデリングしてください。と言いたいところですが、モデリング段階からテクスチャ作成までを行うことを前提にした作業が必要です。
作業手順
➀モデリングする
➁テクスチャを分けたい箇所は可能な限りボディを分ける
この後の工程でテクスチャ作成時のテクスチャを分けたいパーツ単位でボディを分けておくことを推奨します。
どこまで分けるのかどうかは、お好みですが、分けておけばおくほど後で楽になります。
ただ、最終的にunityで取り扱う際に、ここで分けたボディ単位でマテリアルを割り当てていくことになるので、分けすぎには注意です。
➂ボディにマテリアルを割り当てる
一番大事といっても過言ではない工程です。最終的にunityで取り扱う際に影響してきます。
割り当てルール
・substance painerで同じテクスチャを作成したい/unity上で同じテクスチャを割り当てたい、ボディ同士には、共通のマテリアルを割り当てる。
ショートカットキー「A(デフォルト時)」でマテリアルウィンドウを開き、ボディ単位に割り当てることができるマテリアル機能があるので、これで割り当ててください。
ここでは、見た目でわかりやすいような色分けを行っていますが、ここでの配色は最終的に影響してこないので、わかりやすさ重視で良いです。
4色にわけているので、substance paiter/unityで4つのマテリアルを取り扱うことになります。
スケール(単位)が合わない場合がある
ソフトウェアや拡張子によって、モデルのスケール(単位)が合わない場合があります。特に、Fusion360での1単位はデフォルトでは[mm]になっていますが、Blenderでは1[m]が1単位に設定されています。そのため、場合によってはモデルのスケールがインポート時に100倍や1/100になっていることがあります。意図しない場合は気を付けてみてください。
Fusion360の設定単位を[m]に設定しても良いのですが、こういったことが発生した場合はBlender上でスケール調整を行ってください。
※Fusion360をCADソフトウェアとして使用しないのであれば、[m]単位に変更してモデリングしても良いですが、少しでも設計用途で利用する場合は変な癖がついてしまうため推奨しません。
2. Fusion360から.fbx形式でエクスポート
ボディ分割とマテリアル仮割り当て作業が完了したら、.fbx形式で書きだします。
特別難しいところはありませんが、書き出し時のファイル名に日本語を含めない方が良いです。
Fusion360の.fbxエクスポートはクラウド処理が必要なので、5~10分くらい放置します。
小休止してる間に、推しの曲でも聞いて時間を潰してください。
3. エクスポートしたモデルをBlnderにインポート
ダウンロード手順などは省きます。いい感じにネットの記事などを見てインストールしてください。
インポートの前にすること
インポートする前に、Blender向けのUVアドオンを別途いれます。
標準状態でもUV展開機能はついていますが、Fusion360から書き出したfbxファイルをそのまま展開すると恐ろしく汚くなってしまいます。手動で調整するのも一つの手ではありますが、この記事はUV展開したことがない人を対象としているため、手動でのUV展開は行いません。
UV-Packer
Blnder向けの無料アドオンのUV-Packer for Blenderを利用します。
インストール方法はサイトに記載があるので、ここでは触れません。頑張れ。
公式サイト↓
モデルをインポート
アドオンを適用できたら、Fusion360から書き出したモデルをインポートしてください。
Blenderの起動時に最初から配置されているキューブは削除してしまって問題ありません。
4. BlenderでUVマッピングを行う
いよいよ問題のUVマッピングを行っていきます。
ここで触れる内容はあくまでも、下記の想定で進めていますので、細かいことが知りたい人は、BlenderのUVマッピングについて説明している他の記事を探してみてください。
- 手動調整無し
- シャープってなんぞや。そんなの知らない
また、ポリゴン割りの最適化やポリゴン数調整なども本来ならば用途に合わせて行う必要があったりしますが、ここでは触れません。これらが必要になったら個別に調べてみてください。
※考慮することが多すぎて一つの記事で触れるには難しい点と用途によって大きく変わりすぎてしまうため文章化するのが難しいなどがあげられます
作業手順
➀ Blenderを起動
➁ 初期配置モデルを削除する
➂ モデルをインポート
➃ モデルスケール/回転を調整する(任意)
➄メニュー[UV Editing]を選択し、モデルビューとUVエディタの2画面分割状態にする
➅ モデルビュー側で、オブジェクトモードで[A]を押し全選択する
➆ モデルビュー側、[Tab]でオブジェクトモードから編集モードに切り替える
➇ 編集モードに入ったら、[A]を押し全選択する。
ここでわかるように、Fusion360から書き出したfbxファイルのUVは正常でないことがわかります。
➈ UVエディタ側の画面右[<]を押し隠れているウィンドウを開く
➉ ウィンドウ内の[UV-Packer]を押す
⑪[Pack]をクリックする
クリックするとこのような形になります。
このままでもないのですが、ちょっと詰まりすぎているの調整します。
モデルの形や種類によってこのあたりは変わるので、参考くらいにしてください。[Padding]の値を大きくするとパーツ間の隙間を調整できます。
基本的に、アドオンが優秀なので、ハードサーフェスモデルであれば、特に手で修正しなくてもきれいにUVマッピングを行うことができると思います。
モデルによっては、綺麗にマッピングできないことがあります。その場合はFusion360時点でのボディ構造マテリアル構造を整理することで上手くいくようになったりします。
また、手順6ですべてのボディではなく、ボディ単位で個別に設定していくことも可能です。
※ここで引っかかってしまったら、「Blender シャープ UVマッピング」などで調べてみてください。
5. UVマッピングを行ったモデルをBlenderから.fbx形式でエクスポート
UVマッピングができたら、BLenderから.fbx形式でエクスポートしてください。
ここで気を付ける点はFusion360から書き出したものと区別がつくような名前やフォルダ管理を行ってください。
6. Substance Painterにモデルをインポート
ここからはSubstance Painterというソフトウェアを利用します。このソフトウェアは有償ライセンスにて提供されていますが、フル機能が利用できる30日間の無償トライアルも提供されています。
そのため、期間終了後はライセンスを購入する必要がありますが、費用対効果を考慮して購入を検討してみてください。表現できることの幅は大きく広がると思います。また、要申し込みですが、学生なら無償の非商用ライセンスを利用可能です。
アカウント登録やソフトウェアのインストール手順についてはここでは触れません。頑張れ。
さて、ソフトウェアがインストールできたという前提で作業を続けていきます。
7. Substance Painterでテクスチャ作成/8.エクスポート
作業手順
- 起動する
- メニュー画面がポップアップするので、閉じる
- [ファイル]-[新規]を選択する
- [新規プロジェクト]のメニューがポップアップする
- [テンプレート]を利用用途に合わせて変更する。今回はUnityで利用するためUnityテンプレートを選択する。
- [ファイル]の[選択]を選択し、さきほどBlenderから書き出したファイルを選択する※誤ってFusion360から書き出したものを選択しないようにする
- 諸々の設定が終わったら[OK]を選択する
- いい感じにテクスチャを作る
- Substance painterから書き出しを行う
作業手順8については、別途チュートリアル記事などを参照してください。たくさん上がっているので、そちらを見てください。
↓こちらなど
いい感じにテクスチャを作ります。(このモデルは元ネタがあるので、ピンク色を使っています)
9. Unityにインポート/10. Unity上でテクスチャ割り当て
ここからはUnityを利用していきます。ライセンスの取得やインストールについては、ここでは触れません。
個人向けのPersolライセンスであれば無償で利用することができます。
モデル自体は一つ前の手順でインポートできましたが、テクスチャはインポートされていません。そのため、テクスチャを別途個別で割り当ててあげる必要があります
作業手順についてはこちらが非常にわかりやすくまとまっているので、こちらを参考にしてください。
うまく作業していくとこのようになります。(ボディ構造が変わっていますがモデルは若干の整理に違いがあるのみで同じワークフローです)
終わりに
割愛が多いですが、すぐに試せるワークフローにはなっていると思いますので、UVマッピングなんもわからん。になっている人は試してみてください。
また、30日間ではありますが、無料で試せるフローですので、「このライセンスがないからできない!!!」みたいなことにはならないと思います。ぜひモデルの見た目のクオリティアップやGWのスキルアップに役立ててください。
また、ところどころツッコミどころがあるのは筆者自身も理解しているので、そういうツッコミがある人はぜひご自分で記事をまとめて、記事URLを教えてください。勉強させていただきます。
それでは、良いモデリング生活を。
Discussion