亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MEL語言在MAYA中筆刷的應(yīng)用

        2019-04-27 01:39:02張亮
        科技資訊 2019年2期

        張亮

        摘 要:在maya中筆刷paint是常用的工具方式之一,用戶會遇到需定義一個符合自己要求的筆刷之類的問題,同時可以對大部分面積模型進(jìn)行操作,這將會影響今后工作的生產(chǎn)效率。該文借助MEL這一具有強(qiáng)大擴(kuò)展性的腳本語言闡述該實現(xiàn)功能的基本原理,分析隨機(jī)控制,關(guān)鍵幀設(shè)置的Mel語言實現(xiàn)流程。通過這一研究,為MEL在maya中具體使用提供一定借鑒意義。

        關(guān)鍵詞:Maya 筆刷 建模 MEL

        中圖分類號:TP39 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2019)01(b)-00-02

        在maya中制作植物生長,使用者往往遇到想要自定義的植物或者形態(tài),同時對這個形態(tài)進(jìn)行更高塑造。然后對整個部分隨機(jī)變化,對細(xì)節(jié)進(jìn)行調(diào)整。利用Maya系統(tǒng)中可視化的工具或命令進(jìn)行修改,是件繁瑣的事情。怎樣在過程中創(chuàng)作符合要求的工具,和合理的代碼是實現(xiàn)解決這些問題的關(guān)鍵。制作類似植物生長的方法,包括隨機(jī)、設(shè)置關(guān)鍵幀、調(diào)整形態(tài),有些地方不僅局限在maya中可視化工具,對于熱衷使用技巧的人來說,script是實現(xiàn)該方法的捷徑。該文主要闡述畫筆工具基于mel腳本語言快速實現(xiàn)相關(guān)功能,方便操作;整體控制、隨機(jī)變化,關(guān)鍵幀操作在maya中引用。

        1 定義畫筆和畫筆工具的修改

        在畫筆工具里,定義筆刷的相關(guān)屬性。

        brushPresetSetup();bPset "time" 1;

        bPsetName "imageName" "";

        brushPresetApply();

        presetSetPressure 1 0 0 1;

        presetSetPressure 2 0 0 1;

        presetSetPressure 3 0 0 1;

        rename (getDefaultBrush()) Tubes;

        定義好筆刷后,我們需要把筆刷attach到tube上

        $sel = `ls -sl`;

        string $sel3[];

        int $i =0;

        clear $sel3;

        for ($each in $sel)

        {

        select $each;

        stringArrayInsertAtIndex ($i, $sel3, $obj[0]);

        $i++;

        };

        select $sel3;

        select -cl;

        changeToolIcon;

        SelectTool;

        AttachBrushToCurves;

        $obj = `ls -sl`;

        2 隨機(jī)控制選取對象

        為了使插件更具有隨機(jī)性,能夠更加真實地模仿自然生長的花草,添加了隨機(jī)功能。

        在隨機(jī)控制我們采取用數(shù)組儲存列表,然后對每個元素進(jìn)行操作。即每次在這個列表中隨機(jī)抽取一個元素,然后把最后一個元素填補(bǔ)在這個元素上,同時刪除最后一個元素,執(zhí)行次數(shù)為你想要的隨機(jī)概率。具體的實例小樣如下。

        global proc random()

        {

        float $list[];

        int $len = 1000;

        int $i, $j;

        for($i = 0;$i <$len; $i++)

        {

        $list[$i] = $i *0.001;

        }

        int $last = $len - 1;

        for($j = 1;$j <=500; $j++)

        {

        int $a = rand($last + 1);

        $qs = $list[$a];

        $list[$a] = $list[$last];

        $last--;

        print($qs);

        print("\n");

        }

        }

        random();

        在這里第一個for循環(huán)是建立1000長度的數(shù)組元素,值域0.001~0.999之間。第二個for循環(huán)是在1000選取500個,print可以當(dāng)作以后對這個元素進(jìn)行操作的元素。接下來要實現(xiàn)我們在畫筆一些屬性的隨機(jī)。

        global proc setRandom()

        {

        float $sk[];

        string $obj[] = `ls -sl`;

        string $temp_obj[] =$obj;

        int $obj_len = size($obj);

        int $i, $j;

        int $w = $obj_len - 1;

        for($j = 1;$j <= $obj_len*0.8; $j++)

        {

        int $a = rand($w + 1);

        string $qs = $obj[$a];

        $obj[$a] = $obj[$w];

        $w--;

        setRandom_EvSingleSection({$qs});

        }

        select $temp_obj;

        };

        global proc setRandom_EvSingleSection(string $qs[])

        {

        float $getValue_flowSpeed = rand(1,5);

        float $getValue_globalScale = rand(0.5,3);

        float $getValue_brushWidth = rand(0.5,3);

        $objSelected = $qs;

        string $currentObject;

        for($currentObject in $objSelected)

        {

        $selection = `ls -dag $currentObject `;

        $node = `listConnections -d off -s on ($selection[1] + ".brush")`;

        setAttr ($node[0] + ".flowSpeed") $getValue_flowSpeed;

        }

        };

        在這里只是改變這個節(jié)點(diǎn)3個屬性,如果需要更多的變化,也可以這里多添加更多的屬性。要想獲得操作這個節(jié)點(diǎn),需要了解maya的dag網(wǎng)絡(luò)結(jié)構(gòu)。還有注意的是最后還要從新選擇temp_obj這樣用戶對隨機(jī)操作的效果不滿意,可以重新隨機(jī),而不用重新選擇。以上的隨機(jī)獲取并隨機(jī)的方式不只是可以在畫筆中,在其他模塊一樣有用。

        3 實現(xiàn)用戶關(guān)鍵幀

        由于為了使畫面的更加動態(tài),所以會使每個畫筆的開始時間不同,可以設(shè)置關(guān)鍵幀。在此主要分為兩個模塊:第一模塊是用戶輸入想要開始生長的幀數(shù);第二模塊是通過滑塊組在當(dāng)前界面幀開始生長。在第一模塊中,由于maya中額starttime(開始時間)的修改是秒為單位,下面的時間滑塊組是以幀為單位的。為此,在mel中將輸入端的數(shù)據(jù)乘上1/25(maya中默認(rèn)1s為25幀),從而解決時間單位不統(tǒng)一的問題。第二模塊的實現(xiàn)則也需要考慮到時間單位的問題,直接通過獲取當(dāng)前界面的時間幀此時獲取的數(shù)據(jù)只是純的數(shù)字,若直接賦予則會產(chǎn)生錯誤,因為要賦予的是以幀為單位的數(shù)據(jù),則同樣為界面獲取的時間數(shù)據(jù)乘上1/25,并將此數(shù)據(jù)對應(yīng)的maya屬性修改,從而實現(xiàn)了在界面當(dāng)前時間幀開始生長的功能。

        參考文獻(xiàn)

        [1] AdamMechtley,RyanTrowbridge.Maya Python游戲與影視編程指南[M].北京:人民郵電出版社,2016.

        [2] 張寶榮,呂新歡.Maya總動員[M].北京:清華大學(xué)出版社,2011.

        [3] 王澄宇.MAYA腳本應(yīng)用手冊[M].北京:人民郵電出版社,2013.

        少妇被粗大的猛进69视频| 久久精品中文字幕女同免费| 亚洲av无码无限在线观看| 亚洲一区二区三区成人网站| 久久精品视频91| 日韩av一区二区在线观看| 国产午夜视频在线观看免费| 免费拍拍拍网站| 亚洲欧美中文在线观看4| 亚洲国产精品色婷婷久久| 久久久精品国产性黑人| 性无码免费一区二区三区在线| 秋霞午夜无码鲁丝片午夜精品 | 熟女无套内射线观56| 激情丁香婷婷| 亚洲精品一区二区三区蜜臀| 亚洲人成在久久综合网站| 国产精品综合一区二区三区| 亚洲AV无码国产永久播放蜜芽| 人妻少妇激情久久综合| 国产精品久久久久久妇女| 国产成人午夜精华液| 亚洲网站免费看| 特级国产一区二区三区| 国产成人av综合色| 又爽又黄无遮挡高潮视频网站| 国产大陆av一区二区三区| 国内自拍偷国视频系列 | 成人一区二区人妻少妇| 免费a级作爱片免费观看美国| 中文字幕不卡在线播放| 人妻少妇激情久久综合| 国产无遮挡aaa片爽爽| 国产精品成人免费视频网站京东| 丰满熟妇人妻无码区| 少妇精品揄拍高潮少妇桃花岛| 人妻丰满熟妇岳av无码区hd| a毛片全部免费播放| 一本色道久久88综合亚洲精品| 欧美巨鞭大战丰满少妇| 久久精品中文字幕一区|