MayaからFBXの自動出力をPythonで書いてみる。

UE4やUnityではFBXを使ってモデルデータを読み込みますよね?
ただ、FBXの出力そのものが結構面倒くさくないですか?

Mayaの場合、基本的に出力する内容って毎回一緒なのにいちいちダイアログが出て面倒くさい…。
Pythonであればダイアログも出さずにサクッと出力することができます。

今回はMayaからFBXをPythonで、お好みのFBX設定にして出力する方法を紹介しました。

管理人がYouTubeで解説!

知りたいコマンドがあればFBX Plug-inガイドを参考に!

Autodesk Maya FBX Plug-in ガイド
こちらFBX2012のものですね。
といってもこれしかありませんし、これが一番参考になります。

YouTubeで使ったコマンド

UE4向けにノード名をリネームする

from maya import cmds
nodes = cmds.ls(sl=True)
for node in nodes:
    ue4_name = "SM_" + node[0].upper() + node[1:]
    cmds.rename(node, ue4_name)

選択したノードを個別にFBXで出力する

import os
from maya import cmds
from maya import OpenMaya as om

nodes = cmds.ls(sl=True)
for node in nodes:
    cmds.select(node)
    new_path = os.path.join(current_dir, "{}.fbx".format(node))
    new_path = new_path.replace("\\", "/")
    cmds.FBXPushSettings()
    try:
        cmds.FBXResetExport()
        cmds.FBXProperty("Export|IncludeGrp|Geometry|Triangulate", "-v", 1)
        cmds.FBXProperty("Export|IncludeGrp|Animation", "-v", 0)
        cmds.FBXExportInputConnections("-v", 0)
        cmds.FBXExportCameras("-v", 0)
        cmds.FBXExportConstraints("-v", 0)
        cmds.FBXExportLights("-v", 0)
        om.MGlobal.executeCommand('FBXExport("-f", "{}", "-s")'.format(new_path))
    finally:
        cmds.FBXPopSettings()

関連記事

  1. Bifrostでレイキャストしてみよう!

    2020-12-18

  2. お手軽!アニメーションリターゲット!

    2020-12-14

  3. Substance SourceとMayaをリンクする方法

    2021-01-06

  4. Mayaリガー向け!UE4.26 ControlRigの基本を解説します!

    2020-10-31

コメントをお待ちしています。

コメント

ABOUT

テクニカルアーティストの為のまとめサイトです。

本サイトでは、『YouTube ✕ Blog』を中心に
情報発信をしていきます。

また、テクニカルアーティストとしての様々な
ライフハック記事も投稿予定です。

限定情報会員

PATREONでは、限定情報やサンプルファイルの配布も行っています。登録頂けると更新頑張れます。支援の方よろしくお願いします。


免責事項

本ウェブサイト内で公開している全ての情報の有用性や安全性については当方は一切の保証を与えるものではありません。
利用したことによって引き起こる直接および間接的な損害に対して当方は一切責任を負うものではありません。
全て自己責任でご使用ください。

3DCGBOOK出版

BOOTHで技術書を販売利しております。







スポンサー

ページ上部へ戻る