日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

maya python插件_使用Python开发Maya导出插件的一些辅助

發布時間:2023/12/18 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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导出插件的一些辅助的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。