docs.unity3d.com
    目次を表示する/隠す

    開発者ガイド

    開発者は、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 スタンドアロンプレイヤーのビルドのみサポートされます
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)