<th id="bwd7y"><progress id="bwd7y"></progress></th>
    <dfn id="bwd7y"></dfn>
        • <b id="bwd7y"></b>

              <noframes id="bwd7y"><menu id="bwd7y"><td id="bwd7y"></td></menu>
              1. 暴雪國際動漫教育
                • 暴雪國際2024招生簡章
                • 暴雪國際2024招生簡章
                • 暴雪國際2024招生簡章
                • 暴雪國際2024招生簡章
                在線咨詢 預(yù)約課程 網(wǎng)上報名
                Maya特效教程

                Maya特效教程:Maya用Expression實現(xiàn)讓雞蛋自己翻滾的效果

                編輯:Penny來源:發(fā)布時間:2010-06-28
                本文的目的是探討一下用Expression等方法來實現(xiàn)不規(guī)則圓的物體(如雞蛋,變形的輪胎)在平面上無滑動的滾動效果,由于不用關(guān)鍵楨key,而且速率可調(diào),這樣重用率高,從而效率也提高了。
                   源代碼
                  我希望提供這樣的思路,能起到拋磚引玉的作用,讓更多的人來關(guān)注,研究Maya,MEL,Expression,來實現(xiàn)更好的效果,進(jìn)而促進(jìn)這一領(lǐng)域的范圍更廣,層次更深的應(yīng)用,交流和合作。唯愿如此
                //************** eggVer2.txt ***********************
                // Egg rolling motion ---- Version 2.0
                // Author: Luonaldo
                // First create date: about March, 2003
                // Last updated: 2003/09/10 ---->add looptimes.
                // Last updated: 2003/09/17 ---->delete unused content.debug passed.
                //to keep two curves vertical.
                verCurve.rotateY = tanCurve.rotateY + 90;
                float $times = eggBasePoint.loopTimes;
                //NECESSARY CONDITION 1: rotateZ *************
                EggBody.rotateZ = sign($times) * verCurve.rotateY;
                //NECESSARY CONDITION 2: translateY *************
                EggBody.translateY = distPivPointShape.distance + eggBasePoint.translateY;
                float $distance;
                $distance=distPivTouchShape.distance;
                motionPath1.uValue = abs(($times /% 1));
                float $arclen;
                $arclen=curveInfo1.arcLength * motionPath1.uValue;
                // Now compare whether the pivotPoint is in front of or
                // behind the touchPoint.
                float $verRy;
                float $refRy;
                float $sign1;
                float $alpha;
                $verRy = (verCurve.ry > 0) ? verCurve.ry : (360 + verCurve.ry);
                $refRy = (refCurve.ry > 0) ? refCurve.ry : (360 + refCurve.ry);
                //to make 0< alpha <180
                $alpha = (($verRy - $refRy) + 360) /% 180;
                //-1:behand, 1:front, begin:uvalue=0
                $sign1= ($alpha > 90)? (-1) : 1;
                //NECESSARY CONDITION 3: translateX *************
                EggBody.translateX = -($arclen + $sign1*$distance)
                           * sign($times)
                //times sign decide direction
                           - (curveInfo1.arcLength) * trunc($times)
                //full times Length
                           + eggBasePoint.translateX;
                //egg base offset
                //egg's tz is based on eggBasePoint.tz
                EggBody.translateZ = eggBasePoint.translateZ;
                //The end.
                  
                  這是一個二維的模型,O是curve的pivot,D是垂足,T是雞蛋和平面的接觸點,C是曲線模型的起始點,直線dt代表地面,線段od代表物體中心離地面的距離,弧線ct的長度可以由curveInfo.arcLength給出。物體滾動的距離其實就是(架設(shè)從c點接觸地面開始):弧ct + 線段dt。(或者減,看垂足d是在滾動方向的前方還是后方)。圖中線段od和dt是用MAYA自帶的measureTools/distanceTool直接測量的。我想這樣比自己計算兩點間距或者勾股定理套公式要省事一些,也好理解一點吧。
                  由于有的物體邊緣內(nèi)凹,所以在滾動的時候內(nèi)凹的部分接觸不到地面,在物體翻滾之前,需要做一個二維的輪廓模型,在凹陷的地方取直線,微微有一點點外凸最好,用這個模型取得位移和旋轉(zhuǎn)的坐標(biāo),而用真實的物體做動畫。在motionPath的uValue中調(diào)節(jié)曲線,這里還是要key幾個關(guān)鍵幀的。但是比起全手動要簡單,還能隨時更改快慢。
                  用一個靜態(tài)的模型,實現(xiàn)對動態(tài)運動的控制。圖中的雞蛋受一個locator控制它的基準(zhǔn)坐標(biāo),這樣即使做過動畫,也能很方便的移動到另一個位置。graph Editor中是loopTimes的曲線,/% 1 后給uValue, 用來控制快慢和方向。
                  

                上一篇:Maya特效教程:Maya表達(dá)式控制動力學(xué)動畫之大腳車

                下一篇:Maya特效教程:Gnomon.Maya煙火技術(shù)教程

                草草久久久无码国产专区,国产精品一码二码三码在线,无码综合一区二区三区,在线播放午夜无码毛片
                <th id="bwd7y"><progress id="bwd7y"></progress></th>
                  <dfn id="bwd7y"></dfn>
                      • <b id="bwd7y"></b>

                            <noframes id="bwd7y"><menu id="bwd7y"><td id="bwd7y"></td></menu>