Maya Script Python – 選択オブジェクトのエクスポート

開いているシーンで選択しているオブジェクトを手早くエクスポートしたい。
そんな時のスクリプトです。
メッシュノードを選択し、実行します。
開いているシーンが存在するフォルダに出力されます。
シーンを開いていないとダメです。

import maya.OpenMaya as om
import pymel.core as pm
import pymel.util.path as pmp

def fbx_dae_export(eType = "fbx"):
	pluginName = "fbxmaya"
	fileTypes = {"fbx":"FBX export","dae":"DAE_FBX export"}
	pm.loadPlugin("{0:}.mll".format(pluginName),qt=1)
	if pluginName not in pm.pluginInfo(q=1,ls=1):
		pm.system.displayWarning("{0:} plugin is not loaded".format(pluginName))
		return
	sName = pmp(pm.sceneName())
	if not sName or not sName.exists():
		return
	meshs = pm.ls(sl=1,o=1)
	if meshs:
		exMeshs = [x for x in meshs if type(x)==pm.nt.Mesh or type(x)==pm.nt.Transform]
		if exMeshs:
			exPath = sName.parent
			name = exMeshs[0].name()
			io = om.MFileIO()
			io.exportSelected(exPath.joinpath(name).replace("\\","/") + "." + eType,fileTypes[eType])

fbx_dae_export()

最後の実行部分「fbx_dae_export()」のところに「fbx_dae_export(“dae”)」とするとcolladaで出力できます。

 

因みに、出力の設定はしません。
なので、予め設定が必要です。
MODOとMayaでやりとりする場合、fbxであれば単位系はデフォルトの「自動」で大丈夫です。colladaの場合は「メートル」に変更すれば、大丈夫です。
MODO側では「ゲーム単位系」の「1.0」にすれば大きさを揃えることができます。

 

しかしAPI2.0にはファイル関係のクラスが見当たらない。
やはり2.0はサブ的なものなのだろうか。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です