Unityで行うFBXエクスポートの手順と活用方法
はじめに
Unityで作成した3Dモデルやアニメーションを外部のツールと連携させたいと思う場面は多いでしょう。 とくにFBX形式はゲーム開発やCG制作など幅広い分野で使われるため、Unityからエクスポートできると便利です。 FBXファイルにすることで、Mayaや3ds Max、Blenderといったモデリングソフトと連携しやすくなります。 この記事では、UnityからFBXをエクスポートする基本的な流れと実務での活用ポイントを解説します。 初心者の方にも理解しやすいように、具体的な手順やサンプルコードを交えながら進めていきます。
UnityでFBXを扱うメリット
Unityはゲームエンジンの中でも多彩なアセットを取り扱えることが特徴です。 もともとFBXファイルの読み込みには標準で対応していますが、必要に応じてアセットを逆にFBX形式で出力できると、開発ワークフローがさらに柔軟になります。 たとえば、Unity上で配置したキャラクターやアニメーションをFBX形式で書き出すことで、外部ツールで修正・再利用がしやすくなるのです。 また、FBXはマテリアルやアニメーション情報などを持てるため、単に形状データだけでなく動きも一括で扱えます。 実務では、モデラーやアニメーターが別々のツールを使うケースも多いので、FBXエクスポートができると多職種間のコラボレーションがスムーズになるでしょう。
FBXエクスポートの前提知識
FBX形式は、Autodesk社が開発・管理している3Dデータのファイル形式です。 元々はFilmBoxというソフトウェアの独自フォーマットでしたが、現在は3Dソフトウェア間のデータ交換に広く使われています。 この形式の大きな特徴として、ポリゴンメッシュ、マテリアル、テクスチャ、スケルトン情報、アニメーションなどをまとめて保存できる点が挙げられます。 Unityからエクスポートしたい場合は、頂点数やアニメーションの種類、UVの有無などをあらかじめ確認しておくと、スムーズに出力できます。 また、モデルデータのスケールが想定外に変化しないようにするため、プロジェクト設定やインポート時のスケール設定にも注意すると良いでしょう。
Unity公式のFBX Exporterの導入
UnityにはFBX Exporterという公式パッケージが存在します。 これは、UnityのPackage Managerから追加するだけで、エディター上での操作やスクリプトを通してFBX出力が行いやすくなる便利なパッケージです。 標準の機能でFBXを直接エクスポートすることはできないので、まずはこのパッケージを導入するのが一般的でしょう。 FBX Exporterを使うと、プロジェクト内のオブジェクトをまとめて書き出したり、アニメーション情報を含めた状態でエクスポートしたりできます。 導入や設定に慣れておけば、外部ツールとの連携がスムーズになるはずです。
Package Managerでの導入手順
Unityを起動したら、上部メニューから Window > Package Manager を選択します。 表示されたPackage Managerのリストで、検索窓に「FBX Exporter」と入力しましょう。 該当パッケージが表示されたら選択し、インストールまたはAddボタンを押します。 インストールが完了すると、Unityのメニューに「Fbx Exporter」などのオプションが追加されることがあります。 バージョンはUnityのリリースと連動して変わる場合があるので、使用しているUnityのバージョンとの整合性を確認すると安心です。
Exporterの基本的な使い方
FBX Exporterを導入したら、実際にエクスポートを試してみましょう。 シーン上に配置したオブジェクトやPrefabを、FBX形式で出力するにはいくつかのパターンがあります。 多くのケースでは、プロジェクトビューやシーンビューからアセットを選択し、右クリックメニューで Convert To FBX または Export To FBX を実行します。 ファイル保存ダイアログが出るので、保存先やファイル名を指定して書き出しを行いましょう。 アニメーションを含む場合には、AnimatorやAnimation Controllerの設定も合わせて確認すると、意図どおりにFBXファイルにアニメーションが埋め込まれます。
スクリプトを使ったエクスポート例
エディター上での右クリック操作は手軽ですが、複数のアセットをまとめて出力したり、一定の条件に沿って自動化したりしたいケースではスクリプトを利用すると便利です。 FBX Exporterパッケージには、C#スクリプトからFBXエクスポートを呼び出すためのAPIが用意されています。 これを活用することで、決まったルールに基づいてFBXファイルを書き出すワークフローを構築できます。 たとえば、バッチ的に大量のモデルを一気にFBXに変換する処理を組むことも可能です。 ここでは簡単なサンプルを紹介しますので、実際のプロジェクトに合わせてカスタマイズしてみてください。
C#スクリプトでの自動エクスポートフロー
Unityエディター拡張の仕組みを利用して、メニューコマンドからスクリプトを呼び出すことができます。 以下の例では、選択中のGameObjectをFBXファイルとして書き出す処理をイメージしています。 スクリプトをEditorフォルダ内に置くと、メニュー操作が可能になります。 必要に応じてエクスポート先のパスやファイル名、FBXの設定などを変更してみましょう。
簡単なサンプルコード
using UnityEditor; using UnityEngine; using Unity.FBXExporter; // FBX Exporterの名前空間 public static class FBXExportScript { [MenuItem("Tools/Export Selected to FBX")] public static void ExportSelectedToFBX() { // シーン上で選択しているオブジェクトを取得 GameObject[] selectedObjects = Selection.gameObjects; if (selectedObjects.Length == 0) { Debug.LogWarning("何も選択されていません。"); return; } // 保存ダイアログを開いて保存先を指定 string path = EditorUtility.SaveFilePanel("FBX Export", "", "ExportedModel.fbx", "fbx"); if (string.IsNullOrEmpty(path)) { Debug.Log("エクスポートがキャンセルされました。"); return; } // 選択したオブジェクトをFBXとしてエクスポート ModelExporter.ExportObjects(path, selectedObjects); Debug.Log("FBXファイルをエクスポートしました: " + path); } }
上記のように、UnityEditorやUnity.FBXExporterのAPIを使うと、シンプルなエクスポート処理が書けます。 ユーザーに保存先を指定させてからModelExporter.ExportObjectsを呼び出すだけで、FBX形式のファイルが生成される流れです。 これを応用すれば、シーン上の全オブジェクトを一度に書き出したり、設定した条件を満たすオブジェクトだけをエクスポートしたりできます。
実務での活用シーン
実務でFBXエクスポートを利用する場面を考えると、以下のようなケースが想定されるでしょう。
- Unityで一通りアニメーションを作成し、後からMayaやBlenderで細かい調整を加えたいとき
- チーム内でモデリング担当がBlender、ゲーム実装担当がUnityを使っているため、やり取りを効率化したいとき
- 他のプロジェクトや外部クライアントに3Dモデルを納品するとき
Unityに読み込んだモデルの最終的な形状やアニメーションを、FBXファイルに落とし込んで再利用できるのは大きなメリットです。 たとえば、BlenderのシーンにUnityでエクスポートしたFBXをインポートすれば、Unity特有の座標系やライト設定を取り込みながら修正を加えることができます。 また、アニメーションを含むキャラクターをFBXで受け渡すと、複雑な動きの調整やリターゲットも容易になります。
エラー対策とトラブルシューティング
FBXエクスポートでよくあるトラブルとしては、マテリアルが正しく反映されない、またはアニメーションが崩れるなどが挙げられます。 これは、Unity上のシェーダー情報とFBX形式のマテリアル定義の間に差異があるために生じることが多いです。 もしエクスポート後のモデルの見た目や動きが想定と異なる場合は、以下の点をチェックしてください。
- スケール設定:Unityと外部ツールでスケール値が違うと、サイズ感が合わなくなることがあります
- マテリアル設定:シェーダーの種類やテクスチャの割り当てがFBX形式でサポートされているかを確認
- アニメーションのフレーム数:外部ツールでのタイムライン設定とUnity側のフレーム数が一致しているかチェック
- リギング:HumanoidリグとGenericリグで扱い方が異なるため、リグ設定の違いから崩れが起きる場合があります
こうした要因を把握しておくだけでも、問題が発生した際に原因を特定しやすくなるでしょう。 また、エクスポート時のログメッセージを確認すると、FBX Exporterが何を処理し、どこで不一致があったか分かる場合があります。
FBX ExporterのバージョンはUnity本体と密接に関連するため、Unityをアップグレードする際には、FBX Exporterの互換性を確認しましょう。
まとめ
UnityからFBXファイルをエクスポートする方法を解説しました。 公式のFBX Exporterパッケージを導入すれば、エディター上の操作だけでなく、スクリプトを使った自動化も可能です。 これによって、外部ツールと3Dモデルやアニメーションをやり取りできるようになり、開発の幅が広がります。 エラー対策やトラブルシューティングのポイントを押さえて、実務でも活用してみると良いでしょう。 FBXエクスポートを身につけておくと、チームの連携や外部ソフトウェアとの協調がぐっとやりやすくなるはずです。