maya python插件_使用Python开发Maya导出插件的一些辅助
Maya導出插件的開發一定程度上說比Max的導出要方便,自己可以少做很多事。
這里說的是Python寫的插件,基本可以適用于C++的。
先了解一下maya的環境變量設置
在我的文檔下面的maya\瑪雅版本\Maya.env;例如 C:\Users\SITT\Documents\maya\2011-x64\Maya.env
這個文件可以用記事本打開,增加一行
MAYA_PLUG_IN_PATH = 你自己的插件路徑。
例如:
MAYA_PLUG_IN_PATH = d:\mayaPlugin\
這樣Maya就會將該路徑加入到插件的目錄當中。可以從該目錄載入插件。
然后很爽的一點是Maya的mel有卸載和載入插件的函數,max有第三方插件實現類似功能,不過,終究不如軟件自帶,Max的以后有時間再開貼。
Mel卸載和載入插件的代碼是:
unloadPlugin"ModelTranslator.py";
loadPlugin"ModelTranslator.py";
既然是導出,自然還需要導出一個文件來看看工作是否正常,Mel代碼:
file-op""-typ"ModelTranslator"-pr-ea"C://testmodel.xxx";
此處"ModelTranslator"是自己寫的導出插件類,Maya中導出插件需要繼承MPxFileTranslator。具體怎么寫導出,也要另開貼了。
也可以到 oak3d.com下載MAYA的導出插件做參考,代碼是公開的。:)這個導出也是我寫的。
可以將以上三句一起執行,結果就是卸載,重新載入插件,導出文件。是不是很方便?
還可以更進一步。Maya可以監聽一個端口,將發送過來的字符串當作腳本執行。這里是開啟端口用的mel,python的話參考一下Maya的文檔里的同名函數即可。
if(!`commandPort-q":7457"`) commandPort-rnc-n":7457"
這是查詢本地的7457端口是否已經注冊,如未注冊,則開啟。
這個可以在Maya啟動時自動運行,方法是,寫在 My Documents\maya\\scripts\userSetup.mel里面
例如 C:\Users\SITT\Documents\maya\2011-x64\scripts\userSetup.mel
默認沒有這個文件,新建個文本文件改名即可。
然后可以自己寫一個接受命令行參數的程序去發送字符串。像我這種懶人就用C#了,安逸啊
C# Socket
usingSystem;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Text;namespaceSockCMD
{staticclassProgram
{
[STAThread]staticvoidMain(string[] args)
{if(args.Length<3)return;stringipText=args[0];stringprotText=args[1];stringmessage=args[2];
TcpClient theTcpClient=newTcpClient();try{
IPAddress theIP=IPAddress.Parse(ipText);intprot=Int32.Parse(protText);
theTcpClient.Connect(theIP, prot);
NetworkStream theNetStream=theTcpClient.GetStream();if(theNetStream.CanWrite)
{byte[] theMessageBuffer=Encoding.ASCII.GetBytes(message);
theNetStream.Write(theMessageBuffer,0, theMessageBuffer.Length);
}
}catch{ }
theTcpClient.Close();
}
}
}
如果是美術或技術美術,也可以下載我寫的這個 http://files.cnblogs.com/sitt/SockCMD.zip ,需要安裝.net frameWork,當然一般都已經安裝了。
這個的用法是 “SockCMD ip地址 端口 字符”。
例如 : SockCMD 127.0.0.1 7457 polyCube
如果前面注冊了 7457 端口,這個參數執行SockCMD的結果是在Maya中建立一個立方體
怎么樣?是不是知道該怎么做了?
只要在自己用的編輯器里設定一個和按鍵綁定的命令行去發送重新載入插件并導出文件的mel腳本即可。
可以自己配置一個很方便的開發環境。
總結
以上是生活随笔為你收集整理的maya python插件_使用Python开发Maya导出插件的一些辅助的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玛雅日历转化(Maya calendar
- 下一篇: 为啥yum源repolist为0?自己经