• <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://m.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 ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 国产乱码日韩精品一区二区 | 狠狠色噜噜狠狠狠狠av不卡| 被灌满精子的少妇视频| 久久久精品94久久精品| 日韩高清无码电影网| 骚虎视频在线观看| 亚洲成片在线观看12345| 91精品国产91久久综合| 太粗太深了太紧太爽了动态图男男 | 欧美成人精品三级网站| 亚洲午夜伦费影视在线观看| 欧美寡妇xxxx黑人猛交| 亚洲综合在线亚洲优优色| 国产高清在线精品一区不卡| 国产激情福利短视频在线| 一区二区不卡国产精品| 免费VA国产高清大片在线| 国产无套乱子伦精彩是白视频| 国产精品久久久久孕妇| 久久这里都是精品二| 日韩一区二区一卡二卡av| 精品国产乱码久久久久久1区2区| 色8久久人人97超碰香蕉987| 久久精品国产亚洲av高| 少妇撒尿一区二区在线视频 | 91久久久久无码精品露脸| 人妻无码av中文系列久| 99热成人精品热久久66| 91麻豆国产视频| 欧美牲交videossexeso欧美| 免费无码av片在线观看播放| 国产乱码精品一区二三区| 国产精品亚洲片夜色在线| 国产亚洲一二三区精品| 免费人成网站免费看视频| 亚洲三区在线观看内射后入| 亚洲成av人片天堂网无码 | 久久久美女| 亚洲日本va午夜中文字幕一区| 欧产日产国产精品精品| 一区二区不卡99精品日韩|