朱峰社區(qū)首頁(yè) 朱峰社區(qū)

搜索資源 注冊(cè)|登陸

等待

返回 展開(kāi)菜單

使用Maya表達(dá)式控制動(dòng)力學(xué)尾巴動(dòng)畫(huà)

新功能 觀(guān)看預(yù)覽

新功能

包含38節(jié)視頻教程
關(guān)注54.6萬(wàn)

當(dāng)一個(gè)軟件有新版本的時(shí)候你會(huì)想到:朱峰社區(qū)!當(dāng)你不知道新版本的新功能的時(shí)候:朱峰社區(qū)!當(dāng)你遇到問(wèn)題不好解決的時(shí)候:朱峰社區(qū)!沒(méi)錯(cuò)!新功能!朱峰社區(qū)!

關(guān)閉

朱峰社區(qū)在本節(jié)為大家?guī)?lái)maya表達(dá)式控制動(dòng)力學(xué)動(dòng)畫(huà)之尾巴。

       前面我們通過(guò)表達(dá)式可以計(jì)算出物體的速度和加速度,得到了物體的速度和加速度,我們就可以嘗試運(yùn)用表達(dá)式控制很多有關(guān)動(dòng)力學(xué)的動(dòng)畫(huà)。下面是我一個(gè)利用表達(dá)式模擬尾巴運(yùn)動(dòng)的表達(dá)式練習(xí)。希望能對(duì)初學(xué)的朋友們有所幫助! ∥覀兪紫瓤匆幌滦Ч麍D。

  

  1.創(chuàng)建一個(gè)長(zhǎng)方體作為身體,然后創(chuàng)建一條有六七節(jié)的尾巴骨骼,再將尾巴骨骼連接到長(zhǎng)方體上,作為其子物體,如圖。

  

  2.建立身體速度及加速度表達(dá)式。表達(dá)式如下:

  global float $t=0.667,$k=0.5,$m=0.5;

  float $xs,$sx0,$sx1,$sx2,$vx0,$vx1,$ax,$k1=100;

  if(frame==0)

  $sx=$sx1=$sx2=$sx0=$ax=$ay=box.translatex;

  else

  {

  $sx2=box.translatex;

  $vx1=$sx2-$sx1;

  $vx0=$sx1-$sx0;

  $ax=$vx1-$vx0;

  $sx1=box.translatex;

  $sx0=$sx;

  $sx=box.translatex;

  }

  float $sy,$sy0,$sy1,$sy2,$vy0,$vy1,$ay;

  if(frame==0)

  $sy=$sy1=$sy2=$sy0=$ay=box.translatey;

  else

  {

  $sy2=box.translatey;

  $vy1=$sy2-$sy1;

  $vy0=$sy1-$sy0;

  $ay=$vy1-$vy0;

  $sy1=box.translatey;

  $sy0=$sy;

  $sy=box.translatey;

  }

  float $sz,$sz0,$sz1,$sz2,$vz0,$vz1,$az;

  if(frame==0)

  $sz=$sz1=$sz2=$sz0=$az=box.translatez;

  else

  {

  $sz2=box.translatez;

  $vz1=$sz2-$sz1;

  $vz0=$sz1-$sz0;

  $az=$vz1-$vz0;

  $sz1=box.translatez;

  $sz0=$sz;

  $sz=box.translatez;

  }

  box.ax=$k1*$ax;

  box.ay=$k1*$ay;

  box.az=$k1*$az;

  if(frame==0)

  box.ax=box.ay=box.az=0;   其中身體的速度及加速度三個(gè)維度都要計(jì)算,但開(kāi)始測(cè)試時(shí)可以只考慮一個(gè)維度。

  另外要為身體添加三個(gè)加速度的屬性box.ax,box.ay,box.az,尾巴骨骼的動(dòng)力學(xué)效果都是靠這三個(gè)屬性值來(lái)控制的。其中$k1為比例系數(shù),通過(guò)調(diào)整這個(gè)參數(shù),可以控制尾巴對(duì)加速度的敏感程度,為方便調(diào)試和控制,大家可以考慮把這個(gè)參數(shù)也作為身體的一個(gè)屬性。

  

  3.建立尾巴的速度、加速度和尾巴轉(zhuǎn)動(dòng)角度的表達(dá)式:

  尾巴的速度和加速度主要為旋轉(zhuǎn)角速度和角加速度,其計(jì)算思路為:由身體的位移加速度和尾巴第一節(jié)骨骼當(dāng)時(shí)的角位移計(jì)算出其角速度和角加速度及其轉(zhuǎn)動(dòng)角度值,再將轉(zhuǎn)動(dòng)角度值賦予骨骼角度通道。如果不考慮身體的z軸方向的旋轉(zhuǎn),尾巴骨骼的角速度和角加速度僅考慮兩個(gè)維度就可以了。分別編寫(xiě)兩個(gè)維度的表達(dá)式,如下為尾巴第一節(jié)骨骼的y軸向的速度和加速度的表達(dá)式。

  float $a2,$a1,$a,$v,$x,$x1,$e;

  int $i;

  $a1=0.8*(sind($x+0)*box.az+cosd($x+0)*box.ax);

  $x1=0.5*$a2*$t*$t+$v*$t;

  $a2=$a1-$k*$x;

  $a=$m*$x;

  $v=$v+$a2*$t*0.3;

  $x=$x+$x1;

  if(frame==0)

  $a=$x=$x1=$v=$a=0;

  joint1.rotatez=$x;

  joint1.ay=$a;

  $v1=$v;   $m為骨骼的角加速度系數(shù),其值可以控制骨骼的剛性屬性,原理上值越大,骨骼越不易彎曲,但實(shí)際上此值不能太大,否者骨骼的震蕩會(huì)無(wú)法控制,此值在前面全局變量中定義。

  其中joint1.ay為第一節(jié)骨骼的附加屬性,用來(lái)表示其y軸向的角加速度。x軸方向與之同理。

  第二節(jié)及其后續(xù)骨骼表達(dá)式基本一致,與第一節(jié)骨骼不同之處在于其初始角加速度是由前一節(jié)骨骼的骨端位移加速度和自身角度偏移量計(jì)算得出的。如下為第二節(jié)骨骼的y軸向的角速度,角加速度和角度值的表達(dá)式,最后將角度值賦予相應(yīng)角度通道即可。

  其它骨骼與之基本一致,不同的為個(gè)別參數(shù)的修正。其中$a1=1.5*joint1.ay*cosd($x);表達(dá)式中的1.5是我定義的第一節(jié)骨骼的長(zhǎng)度系數(shù),其他各節(jié)根據(jù)實(shí)際的骨骼情況作相應(yīng)變化,例如我定義的骨骼為1.5,1.2,1.0,0.8,0.5。如果骨骼長(zhǎng)度相同,其值應(yīng)相同。

  對(duì)于目前這個(gè)表達(dá)式,我對(duì)后續(xù)骨骼進(jìn)行角速度及角加速度的計(jì)算時(shí)未考慮前一節(jié)骨骼在空間的具體角度值,因此只適合于尾巴整體彎曲不大,精度要求不高的場(chǎng)合,有興趣的朋友自己可以嘗試加入這方面的控制。還有目前的尾巴僅僅是被動(dòng)地跟隨身體的運(yùn)動(dòng)而擺動(dòng),朋友們可以為尾巴骨骼添加主動(dòng)施加力的影響,讓尾巴可以有意識(shí)的擺動(dòng)。

  這個(gè)表達(dá)式僅是練習(xí),其中還有很多具體因素未全面深入考慮,一些參量的計(jì)算不夠精確,有興趣的朋友可以考慮完善,做出更好的控制效果來(lái)。

  

  測(cè)試動(dòng)畫(huà)。

  

  測(cè)試動(dòng)畫(huà)。

  

clarisse搭建3D天空之城拉普達(dá)全過(guò)程 clarisse搭建3D天空之城拉普達(dá)全過(guò)程

朱峰社區(qū)網(wǎng)頁(yè)版
朱峰社區(qū)網(wǎng)頁(yè)版(手機(jī)掃描-分享-添加到屏幕)


朱峰社區(qū)公眾號(hào)
朱峰社區(qū)微信公眾號(hào)(微信掃一掃-關(guān)注)

資源說(shuō)明圖文教程無(wú)法下載,只能觀(guān)看圖片和文字。
版權(quán)規(guī)則本站圖文皆來(lái)自互聯(lián)網(wǎng)共享資源,如涉及到版權(quán)請(qǐng)查看版權(quán)規(guī)則。本平臺(tái)提供圖文僅可用于個(gè)人學(xué)習(xí),如用于商業(yè)請(qǐng)購(gòu)買(mǎi)正版。您必須遵守的版權(quán)規(guī)則

未知用戶(hù)

未知用戶(hù)

hentinteg@163.com

hentinteg@163.com

普通會(huì)員

在哪下載?

贊0

踩0

16年1月13日

未知用戶(hù)

未知用戶(hù)

下載在哪呢

贊0

踩0

16年1月13日

未知用戶(hù)

未知用戶(hù)

學(xué)習(xí)學(xué)習(xí)

贊0

踩0

16年1月13日

未知用戶(hù)

未知用戶(hù)


贊0

踩0

15年12月4日

2005-2025 朱峰社區(qū) 版權(quán)所有 遼ICP備2021001865號(hào)-1
2005-2025 ZhuFeng Community All Rights Reserved

VIP

朱峰社區(qū)微信公眾號(hào)

回頂部

1.復(fù)制文本發(fā)給您的QQ好友或群、微信等;好友點(diǎn)擊鏈接以后,轉(zhuǎn)發(fā)就成功了。 2.如朋友點(diǎn)擊您的鏈接,您需要需刷新一下才行;同一個(gè)好友僅能點(diǎn)擊一次。
購(gòu)買(mǎi)VIP,觀(guān)看所有收費(fèi)教程。