開発者ガイド
開発者は、C# スクリプティングから FBX Exporter にアクセスできます。単一のゲームオブジェクトかゲームオブジェクトのリストを指定することで、基本的な API を使用できます。ゲームオブジェクトを FBX ファイルにエクスポートする際は、デフォルトのエクスポート設定が使用される点にご注意ください。
FBX Exporter は、 UnityEditor.Formats.Fbx.Exporter 名前空間にあるメソッドを使用して、C# から呼び出すことができます。例は次のとおりです。
using System.IO;
using UnityEngine;
using UnityEditor;
using UnityEditor.Formats.Fbx.Exporter;
public static void ExportGameObjects(Object[] objects)
{
string filePath = Path.Combine(Application.dataPath, "MyGame.fbx");
ModelExporter.ExportObjects(filePath, objects);
// ModelExporter.ExportObject を、
// ModelExporter.ExportObjects の代わりに使用して単一のゲームオブジェクトをエクスポートできます
}
ランタイム
ゲームプレイ中に FBX SDK バインディングを実行し、ランタイムでインポートとエクスポートを行うことができます。現在、そのためにはカスタムのインポーター/エクスポーターを記述する必要があります。これは、FBX Exporter がエディター専用であるためです。
ノート: FBX SDK バインディングは、デフォルトではエディター専用であり、ビルドには含まれません。パッケージをビルドに含めるためには、FBXSDK_RUNTIME の定義を Edit > Project Settings...> Player > Other Settings > Scripting Define Symbols に追加します。
基本のエクスポーター:
using Autodesk.Fbx;
using UnityEngine;
using UnityEditor;
protected void ExportScene (string fileName)
{
using(FbxManager fbxManager = FbxManager.Create ()){
// IO 設定を構成します。
fbxManager.SetIOSettings (FbxIOSettings.Create (fbxManager, Globals.IOSROOT));
// シーンをエクスポートします
using (FbxExporter exporter = FbxExporter.Create (fbxManager, "myExporter")) {
// エクスポーターを初期化します。
bool status = exporter.Initialize (fileName, -1, fbxManager.GetIOSettings ());
// エクスポートする新しいシーンを作成します
FbxScene scene = FbxScene.Create (fbxManager, "myScene");
// シーンをファイルにエクスポートします。
exporter.Export (scene);
}
}
}
基本のインポーター:
using Autodesk.Fbx;
using UnityEngine;
using UnityEditor;
protected void ImportScene (string fileName)
{
using(FbxManager fbxManager = FbxManager.Create ()){
// IO 設定を構成します。
fbxManager.SetIOSettings (FbxIOSettings.Create (fbxManager, Globals.IOSROOT));
// ファイルが有効であることを確認するためにシーンをインポートします。
using (FbxImporter importer = FbxImporter.Create (fbxManager, "myImporter")) {
// インポーターを初期化します。
bool status = importer.Initialize (fileName, -1, fbxManager.GetIOSettings ());
// 新しいシーンを作成し、インポートしたファイルによってデータを入力できるようにします。
FbxScene scene = FbxScene.Create (fbxManager, "myScene");
// ファイルのコンテンツをシーンにインポートします。
importer.Import (scene);
}
}
}
制限事項
- 64 ビットの Windows、MacOS、Ubuntu スタンドアロンプレイヤーのビルドのみサポートされます