Amazonで商品を見るセール会場へ

【Maya】ボタンひとつでFBXをエクスポートするスクリプト

Mayaで選択したオブジェクトを1つのFBXへ書き出し、同じ操作をシェルフから呼び出すMELの例です。

2026年10月26日に公式コマンド資料を照合して確認処理を追加しましたが、Maya上での実行・再読み込みは未検証です。

最初は本番シーンのコピーとテスト用オブジェクトで試してください。

未選択、対象外の選択、出力先フォルダなし、同名ファイルありの場合は、書き出し前に停止する構成です。

目次

スクリプトの実行手順

  • File > Set Projectで出力するプロジェクトを確認し、その中にscenes/fbxというフォルダを事前に作成します。
  • 下記をexportFbxWithName.melという名前で、Mayaのスクリプト検索パスに含まれるユーザーscriptsフォルダへ保存します。
  • Plug-in Managerでfbxmayaを読み込んでから、出力対象のトランスフォームをOutlinerで選択し、Script EditorのMELタブからsource "exportFbxWithName.mel";、続いてexportFbxWithName;を実行します。

以下はexportFbxWithName.melの内容です。ファイルを読み込むだけでは書き出さないよう、関数の外にあった実行行は除いています。Autodesk:MELファイルの保存と呼び出し

global proc exportFbxWithName(){
    string $selected[] = `ls -sl`;
    if (size($selected) == 0) {
        error "Select transform nodes before exporting.";
    }
    for ($node in $selected) {
        if (!`objectType -isAType "transform" $node`) {
            error "Select transform nodes, not shapes or components.";
        }
    }
    string $name = $selected[0];
    if (`match "^[A-Za-z_][A-Za-z0-9_]*$" $name` != $name) {
        error "Use a unique simple name: letters, digits and underscore.";
    }
    if (!`pluginInfo -q -registered "fbxmaya"`) {
        error "Load fbxmaya in Plug-in Manager first.";
    }
    if (!`pluginInfo -q -loaded "fbxmaya"`) {
        error "Load fbxmaya in Plug-in Manager first.";
    }
    string $path = `workspace -q -rootDirectory`;
    $path += "scenes/fbx/";
    if (`filetest -d $path` != 1) {
        error "Create scenes/fbx in the current project first.";
    }
    string $output = $path + "export_" + $name + ".fbx";
    if (`filetest -e $output` != 0) {
        error "Output exists or path check failed. Choose another name.";
    }
    print ("Export path: " + $output + "\n");
    FBXExport -f $output -s;
}

ファイル名には選択一覧の先頭の名前にexport_を付け、FBXExportの-sで選択をまとめて書き出します。子階層や入力接続の出力範囲はFBX設定にも依存します。Autodesk:FBX Export MELコマンド

1個ずつ別ファイルに分割する処理ではありません。手動で動作を確認したら、MELタブでexportFbxWithName;だけを選択し、File > Save Script to Shelfでボタン化できます。同じ名前で再実行すると停止するため、既存FBXを保管してから別名のテスト用オブジェクトで試してください。Autodesk:Script Editorメニュー

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13159771823

3DCGに関するほかの記事は、まとめページからご覧いただけます。

例えばassetAを先頭に選択した場合、現在のプロジェクトのscenes/fbx/export_assetA.fbxが出力先になります。

選択一覧の先頭は最後にクリックしたオブジェクトという意味ではないため、Script Editorに表示されるExport pathも確認してください。

名前にコロンや縦線が含まれる場合は変換せず停止し、名前空間や重複名を持つ本番ノードを自動で改名しません。

先頭名は英字またはアンダースコアで始まる英数字・アンダースコアに限定し、export_を付けることでCONなどのWindows予約名がそのままファイル名になることも避けています。

同名ファイル検査後に別の処理が同じパスへ書き込む競合までは防げないため、出力先を同時書き込みする運用には使わないでください。

出力設定はFBXプラグイン側の状態に依存するため、事前に手動のExport SelectionでInclude Children、Input Connections、アニメーションのベイク範囲や単位を確認します。

書き出したファイルを別シーンへ読み込み、必要な形状・アニメーション・単位が保持されたか確認してから本番データに使います。

元シーンを保存してから別シーンへ読み込み、オブジェクト数、不要な接続先の混入、アニメーションの開始・途中・終了フレームも比較してください。

ファイルが存在するだけでは成功とせず、読み込み時の警告と期待した内容の一致まで確認します。

ファイルを編集した場合は再度sourceで読み込み、修正後の関数を実行してください。

filetestによる検査でエラーを示す値が返った場合も書き出さず、フォルダの存在、パスの長さ、書き込み権限を確認します。

選択の判定にはobjectType、名前の制限にはmatch、読み込み状態にはpluginInfoを使っています。

Mayaの記事は、ほかにもあります。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

3DCGのおすすめ書籍

3DCG用PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次