• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

             首頁 > 專欄

            python運用maya_Maya中Python腳本的使用(四)

            更新時間:2023-12-09 21:24:50 閱讀: 評論:0

            2023年12月9日發(作者:助人為樂的優美句子)

            -

            python運用maya_Maya中Python腳本的使用(四)

            python運用maya_Maya中Python腳本的使用(四)

            四、編寫Python腳本的提示與技巧

            4.1 內置Python庫

            Python具有許多有用的內置庫和數據結構。大多數情況下,可以使用一個現有的庫來完成常規的編程任務,這樣不必與MEL腳本-樣創建自

            定義工具。

            4.2使用Python類的自定義UI

            其中一個方便的Python函數是l,該函數可用于將附加信息傳遞到回調函數。

            例如,下面的類創建的窗口具有多個在單擊時會輸出數字的按鈕。

            from functools import partial

            import maya. cmds as cmds

            class ButtonWin(object):

            def__ init (lf):

            lf. win = cmds. window()

            = cmds. columnL ayout(parent=lf. win)

            for x in range( 10):

            cmds. button(label= "Click Here %d"%x, parent=,

            command=partial(lf.

            report,x))

            cmds. showWindow()

            def report(lf, buttonIndex, value):

            print "button %d got %s "%(buttonIndex, value)

            f= ButtonWin()

            4.3 在Maya中調試Python腳本

            使用Python腳本的一個優點是可以在開發過程中使用調試器。這在解決腳本問題時可以節省大量時間。

            4.3.1 使用PDB

            Python在PDB模塊中附帶一個內置的調試器。PDB的文本界面適用于快速調試會話。如果在從Script Editor (腳本編輯器)調用的腳本中使

            用PDB,則每當PDB需要輸入時都會出現輸入對話框。使用PDB與導入PDB并按如下方式設定斷點一樣簡單:

            import pdb

            trace()

            執行達到第2行時,將顯示輸入對話框,您可以使用標準命令來繼續、跳過、輸出值等。

            4.3.2 使用外部調試器

            對于復雜調試任務,可能更易于使用外部圖形調試器。存在多個免費的和商業的IDE,例如: ;

            ●Wing IDE

            ●Winpdb●Eclip

            可以先在Maya中導入一個工具模塊來使用外部調試器,導入該模塊會打開到IDE的通信套接字。IDE連接到Maya后,即可打開腳本文件來

            設定斷點、檢查變量值等。每個IDE都將具有其自己所需的工作流。

            4.4將Python函數注冊為MEL程序

            可以使用createMelWrapper函數將Python函數注冊為MEL程序。然后,在調用MEL程序時,會調用Python函數,從而傳遞收到的任何

            參數并返回函數的結果。

            路徑為:

            C:Program FilesAutodeskMaya2014PythonNliblsite-packagesmayamel

            或者,在腳本編輯器中執行以下命令:

            import

            help(MelWrapper)

            使用該函數的優點如下。

            通過將Python函數注冊為MEL程序,您不需要獲取MEL腳本的源代碼(如果程序和腳本共享相同的名稱)。相比之下,如果使用的是

            Python,則必須先顯式導入腳本,然后才能訪問其包含的函數或類。使用該包裹器函數可以使Maya即時獲得源代碼,且不必始終加載每個

            腳本。

            Maya中的某些屬性只接受MEL程序。例如,在"ast" (以前稱為container )節點中,Context Properties (上下文特性)區域下的Rmb

            Command (鼠標右鍵命令)屬性只接受MEL程序。

            示例:

            以下示例說明如何使用createMelWrapper函數將Python函數注冊為MEL程序,以便使用"ast”(以前稱為container )節點中的Rmb

            Command (鼠標右鍵命令)屬性。

            01 將以下腳本另存為,并保存到Maya2014/scripts目錄中。

            import as cmds

            import as mel

            def exCoNotes(node):

            if(pe(node)== container):

            objCont = node

            el:

            objCont = ner(q=True, findContainer=node)

            exec(cmds. gettr(objCont+ '.notes”

            pyfunction = 'main("+node+”"'+objCont+ "

            exec(pyfunction)

            cmds. lect(node, r= True)

            def tThisContainerCurrent(node):

            if( Type(node)== container'):

            objCont = node

            el:objCont = cmds. container(q= True, findContainer=node)

            cmds. container(objCont, e=True, c=True)

            cmds. lect(node, r= True)

            def rmbMyContainerScript():

            return ("Execute Container Notes, "exCoNotes ,

            "Set This Container Current", "tThisContainerCurrent)

            02 在Script Editor (腳本編輯器)中,從Python選項卡執行以下腳本。該操作將創建所需的MEL包裹器腳本。

            from rmbScript import*

            import as cmds

            import / as mel

            MelWrapper(e= string[]')

            mel. createMelWrapper(exCoNotes)

            MelWrapper(tThisContainerCurrent)

            03 創建一個對象。

            04 選擇Asts>Advanced Asts>Create(資源>高級資源>創建),然后將rmbMyContainerScript添加到資源的Rmb Command (鼠標

            右鍵命令)屬性。

            注意:還可以借助變換資源使用該步驟;但是,節點類型將為dagContainer。

            05 將類似如下的腳本添加到ast (資源)節點的Notes (注釋)部分。

            def main(node, container):

            print node

            print container

            06 在Script Editor (腳本編輯器)的MEL選項卡中,輸入以下腳本。

            rehash;

            07 在對象上單擊鼠標右鍵(),并從標記菜單中選擇Custom (自定義)。您現在可以查看自定義鼠標右鍵菜單。

            4.5 為已設置動畫的曲線創建關鍵幀

            可以使用以下Python示例腳本來創建已設置動畫的曲線并設定其關鍵幀。

            import maya. OpenMaya as om

            import maya. OpenMayaAnim as oma

            def addkeys(plugName, times, values, changeCache):

            # Get the plug to be animated.

            / = tionList()

            (plugName)

            plug = ()

            g(0, plug)# Create the animCurve.

            animfn = oma MFnAnimCurve()

            animCurve = (plug, mCurve kAnimCurveTL)

            # Copy the times into an MTimeArray and the values into an MDoubleArray.

            timeArray = rray()

            valueArray = eArray()

            for iin range(len(imesl):

            timeArray. append((timesl[i, ())

            valueArray. append(values[i])

            # Add the keys to the animCurve.

            animfn. addKeys(

            timeArray,

            valueArray,

            ntGlobal,

            ntGlobal,

            Fal,

            changeCache

            )

            以上示例代碼會將關鍵幀動畫添加到通道(即栓)。如果不需要具有撤消更改的能力,則可以按以下方式進行調用。

            addkeys(', [1.0, 3.0, 5.0], [0.6, 1.2, 2.4, None)

            但是,如果需要具有撤消更改的能力,那么請按以下方式進行調用。

            changeCache = urveChange()

            addkeys('; [1.0, 3.0, 5.0], [0.6, 1.2, 2.4], changeCache)

            然后執行以下腳本以撤消更改。

            changeCache,undolt()

            注意:為簡便起見,該函數假定由plugName指定的栓當前未設置動畫。

            -

            python運用maya_Maya中Python腳本的使用(四)

            本文發布于:2023-12-09 21:24:50,感謝您對本站的認可!

            本文鏈接:http://www.newhan.cn/zhishi/a/1702128290241130.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:python運用maya_Maya中Python腳本的使用(四).doc

            本文 PDF 下載地址:python運用maya_Maya中Python腳本的使用(四).pdf

            標簽:腳本   使用   函數   調試器   程序
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 97精品伊人久久久大香线蕉| 日本大香伊一区二区三区| 色综合久久婷婷88| 久久精品国产国产精品四凭 | 国产乱人伦AV在线麻豆A| 亚洲国产精品成人综合色| 四虎成人精品在永久免费| 亚洲国产美女精品久久久| 亚洲欧洲精品国产区| 少妇av一区二区三区无码| 五月丁香六月综合缴清无码| 精品偷拍被偷拍在线观看| 丁香婷婷激情俺也去俺来也| 亚洲av永久无码天堂影院| 韩国18禁啪啪无遮挡免费| 亚洲熟妇熟女久久精品综合 | 亚洲精品国偷自产在线99正片| 亚洲欧美日韩在线不卡| 国产一区日韩二区欧美三区| 三上悠亚精品一区二区久久| 欧美激情二区三区| 人妻中文字幕精品一页| 人妻少妇看a偷人无码| 日韩中文字幕不卡网站| 40岁大乳的熟妇在线观看| 麻豆精品在线| 亚洲精品国产无套在线观| 国产欧美VA天堂在线观看视频 | 国产精品亚洲а∨无码播放| 四虎影视在线永久免费观看 | 九九re线精品视频在线观看视频 | 亚洲sm另类一区二区三区| 中文有无人妻VS无码人妻激烈| 亚洲高清在线天堂精品| 国产精品亚洲二区在线播放| 国产精品乱子伦一区二区三区 | 欧美日韩中文字幕视频不卡一二区| 十九岁的日本电影免费观看| 亚洲国产一区在线观看| 国产精品视频中文字幕| 一本久道综合色婷婷五月|