【Maya 履帶製作】 Motion Path 版本

【Maya 履帶製作】 Motion Path 版本

 







上一篇有提到大神的履帶教學,其實大神還有用另一個方法來做,這個方法更進階,因為它可以讓履帶模型完全平均分配到nurbs上,而且每個模型都會被他的下一個模型給constraint,就效果來說這個方法會比較接近現實世界的履帶。 


有興趣可以去看看。






而這個方法使用的節點會是motion path節點,並且借助它的特性讓模型透過它,再由nurbs surface生成的curve上位移。

最後成果是這樣。







Step 1 從 nurbs surface上取出curve


首先,我們需要從surface上取出curve,讓之後的motion path使用,所以,這邊需要用到curveFromSurfaceIso、nurbsCuurve這兩個節點。


可以看到一旦我們將surface資訊串上curve時,一條全新的curve線就出現了。

我們也可以通過Isoparm Direction這個數值來改變curve的走向。





Step 2 創建locator,搭配motion path節點


在這個進階作法之中,讓locator能夠在nurbs平面上運轉起來依靠的是motion path這個節點。

那麼首先,我們把剛剛生成的curve線資訊輸出到motion path這個節點上,然後,將motion path的All Coordinates輸出到locator的translate上,這樣一來,這個locator的位移資訊就會被curve線給綁定,而curve線又會跟隨nurbs曲面,這麼一來就完成初始的跟隨效果。

PS.motion path的 Parametric Length要取消勾選。







從下面的影片可以看到,現在我們可以透過motion path的u value來位移locator,而剛剛取消勾選的Parametric Length則會對 u value的數值大小產生影響,如果勾選,那麼u value數值就能夠超過1 或是低於0,如果取消勾選那麼數值就只會介於0-1。

但是不管怎樣,我們可以發現locator的位移始終只能在0與1之間遊走,那是因為對maya來說,curve的U值就只會介於0-1,也就是一條curve線的起點跟終點,但是如果我們想要讓它繞著整個curve線位移,那麼就需要額外的節點來計算。










具體來說,需要做到的是讓motion path 的u value在碰到1的瞬間,立刻跳回0;或是在碰到0的時候瞬間跳回1,這樣一來locator就能夠永遠在curve線上繞圈圈,達成履帶移動的效果。



Step 3 新增custom attributes



首先,我們要先新增兩個attr到locator上,要注意的是int run 這個數值是需要以整數來遞增數值,具體的做法就是在新增attr時,data type選擇integer這個選項。











Step 4 將attr連結到第一個plusminus 節點 



將剛剛新增的attr的 default value連結到一個plus minus節點,使用Sum模式。

另外output1D回傳給locator的int run數值上。





Step5 將int run輸出到 新的plus minus節點



接下來,將locator的 int run輸出到另一個新的plus minus節點,命名為intget Add的input1D[0]上,另外input1D[1]設定為-1。









Step6 加入condition節點



最後將剛剛已經串好的資訊節點輸出到condition上。











Step7 輸出到motion path節點


將剛剛蒐集到的資訊回傳到motion path上。







Step8 最後把資訊再傳回到locator上













現在locator的位移已經不只被侷限在0-1之間了!
















那麼,目前整個履帶製作的核心內容就差不多完成三分之二了,剩下的部分就只是將locator能夠被它的下一個locator給aimconstraint,這樣一來我們就能夠確定每個模型都會指向下一個模型,也就完成了"模型跟隨nurbs表面旋轉"的效果。



基本上,就是把下一個locator的 translate資訊跟當前locator的translate輸出到plusminus節點裡面,然後使用subtract模式,最後再輸出到aimconstraint節點上。

另外再結合nurbs的U V數值資訊,這兩個東西合起來之後就能夠產生『服貼在nurbs平面的同時,永遠指向下一個locator。』







如下,現在locator永遠會指向下一個locator!











那麼以上差不多就是這個教學的筆記,我知道有點混亂,因為我自己也還在試圖理解當中XD
總之真的推薦各位去看看大神的B站專頁,上面有很多很棒的教學!!




如果覺得這篇文章有幫助你在動畫之路走得更長遠,可以使用 Google 或 Facebook 帳號快速登入,按Like五下,就可以幫助我從Likecoin得到回饋,完全不用任何費用! 一點點的鼓勵都會成為我寫作的動力,感激不盡!


 








張貼留言

0 留言