概要
MayaのPythonスクリプティングの練習用にMayaで標準機能として備わっている「Unityに送信」するを
ワンポチで行えるツールを作成してみました。
環境
- Maya Indies2022.3
- Python3.7.7
UnityにFBXとして送信
「Unityに送信>すべて」をpythonで行ってみます。
GUI
SendToUnityでUnityにFBXとして出力します。
Python
import maya.cmds as cmds
import pymel.core as pm
import os
saveKey = "KeyTextBox"
def SendToUnity(*args):
input = pm.textField('textBox',q=1,tx=1 )
file_name = os.path.basename(cmds.file(query=True,sceneName=True)).replace(".mb","")
path = os.path.join(input,file_name)
fbx_path = os.path.join(path,file_name + '.fbx');
material_path = os.path.join(path,'Materials');
texture_path = os.path.join(path,'Textures');
make_dir(path);
make_dir(material_path);
make_dir(texture_path);
cmds.file(fbx_path,force=True,options="v=0;p=17;f=0",type="FBX export",preserveReferences=True,exportAll=True);
def make_dir(path):
if not os.path.exists(path):
os.makedirs(path)
return path
def TextChangeCommand(*args):
print(args[0])
cmds.optionVar(stringValue=(saveKey,args[0]))
def MySendToUnity():
with pm.window(title="MySendToUnity"):
with pm.rowColumnLayout(numberOfColumns=3):
pm.text( label='Name' )
if cmds.optionVar(exists=saveKey) == False:
cmds.optionVar(stringValue=(saveKey,"D:/"))
text = cmds.optionVar(q=saveKey)
tb = pm.textField('textBox', tx=text,width=400 , changeCommand=TextChangeCommand)
pm.button(label="SendToUnity",command=SendToUnity)
MySendToUnity();
ついでにマテリアルとテクスチャのフォルダも自動生成します。
まとめ
あってもなくてもなツールかもしれませんが今回練習用に作成してみました。
あると少しだけ便利かもしれません。