當前位置:首頁 >教程首頁 > Maya >如何在Maya裏麵基於骨骼綁定製作具有自動碰撞的裙子

如何在Maya裏麵基於骨骼綁定製作具有自動碰撞的裙子

發布時間:2020-05-22 09:48:49

跟大家分享一篇如何在Maya裏麵基於骨骼綁定製作具有自動碰撞的裙子,一起來看下吧!

0.gif

<以裙子為例,裙子會隨著物體的碰撞並改變>

作者簡介: 劉俐伶 (Liling Liu)現任於Amazon Game Studios擔任Technical Artist,正製作一款 AAA-Crucible遊戲,畢業於舊金山藝術大學遊戲發展所,曾經在Universal creative, Kinosys Films,Chaosmonger Studios等其他公司擔任於角色綁定師,本身也是一位 Freelance Rigger參與其他的遊戲和動畫電影的專案。

由於能夠使用兩者物體之間的碰撞來產生互動,讓動畫師能夠快速方便製作動作,並且可以將物體輸出到遊戲引擎。個人的想法是利用這樣的技術來製作一個裙子的綁定,在互相的碰撞讓裙子能夠自然產生變化。首先要有兩個物體,在這教學使用一個長條和簡單裙子模型(如圖)。

1.webp.jpg

一、概念原理

當物體一快碰撞到物體二之前,讓物體二開始受到變動。首先要在兩者物體之間製作一個圓圈,利用圓圈簡單表示為裙子的構造,讓物體一移動的過程在這圓圈上找到物體一和這圓圈的距離和角度,並利用這角度使的物體二產生碰撞。物體二也要計算和圓圈的距離是多少才能開始受到碰撞。

二、具體操作

(1):計算物體一與圓圈之間的距離

首先在每一個物體上新增骨頭,並製作一個圓圈(如圖),

2.png

由於要得知物體一在移動時與圓圈的距離是多少,創立一個Locator (loc_hand_sp)  ,將放置在長條物體的骨頭底下,利用這個 Locato r 與圓圈上的點做計算。在計算之前,必須先知道圓圈上的點目前是處於多少 。

創立一個Locator(loc_cuv)加選上圓圈線,到 Constrain > Motion Paths > Attach to Motion Path。在Motion Path Attribute可以看到U Value被鎖起來,這時候可以解除鎖定,在移動U Value可以看到Locator在圓圈裏麵移動。

接著計算loc_hand_sp和圓圈線(Cuv_skirt)的點:

1.在 Maya裏麵到 Windows> Node Editor,在編輯區新增 NearestPointOnCurve 節點;

2.loc_hand_spShape的worldPosition連結至該節點的position Cuv_skirtShape的 worldspace連結至該節點的curve;

3.再將此結點的參數輸出至U Value的值。

3.png

如果你對Maya的節點不太熟悉,可以到 Autodesk 官網上得知資訊

https://knowledge.autodesk.com/support/maya/learnexplore/caas/CloudHelp/cloudhelp/2019/ENU/Maya-LightingShading/files/GUID-DA9707D2-8A0D-4911-A010-8274C57D3FD3-htm.html

(2):計算物體二( 裙子) 與圓圈之間的距離

在Maya裏麵到:Create > Measure Tools > Distance Tool。將裙子的骨頭與圓圈線上的locator(loc_cuv)測量距離。

4.png

(3) :判斷物體二 ( 裙子)和圓圈之間距離產生變化

• 在Node Editor新增2個multiplyDivide計算距離多少內開始進行變動,此兩節點的計算改為Divide,距離線(DD_L_skirt_02_DistShape)連結至multiplyDivide1上的input2,此節點上的input1設為 1,再將此節點連結上multiplyDivide2的input1,將複製input1的值到input2。

• 得出此數值之後,要判定此數值是否介於距離之內,如果數字是在距離內,可產生變動,如果不是,那就保持原地。創立一個remapValue,這個節點可以放置以判斷出的數值和自己設定的最大和最小的數值,如果數字介於之間就開始產生計算出結果,如果數值不是介於之間就輸出想要的最大和最小的值,在這邊最小值以 0,最大值以1輸出。將multiplyDivide2輸出至remapValue的值,並更改最低數值。

5.png

(4) :計算物體的角度並產生碰撞

創立一個新的multiplyDivide,將剛剛remapValue的值輸出此節點(multiplyDivide3)的input1再將此節點輸出至裙子骨頭上,等等要使用multiplyDivide3的input2作為物體的角度判定。如果角度超過一個數值,那就可以開始轉動裙子的骨頭。對每一個裙子的骨頭重複上述步驟。

6.png

角度判定:

• 創建兩組骨頭,並將各自的底端骨頭放置在 locator上(如圖),

7.webp.jpg

在將其中一組的骨頭(直的) 放置在另一組底下,由於骨頭旋轉值會自動轉到骨頭方向,將此數字複製到骨頭的旋轉上,這樣就可以得知此兩組骨頭的角度為多少。

• 在骨頭(斜的)加上IK Handle並將它放置在圓圈線上的locator。

• 利用之前所創立的loc_hand_sp加選上骨頭(直的)做aim constraint,將 world up type改為Object rotation up並將另一組骨頭名稱放上。根據此locator的軸向,更改 up vector and world up vector 數值。隻要兩個相碰再一起此角度就歸0,繼續在超過角度,就進行裙子骨頭轉動。

• 創立clamp節點,將剛剛骨頭(直的)連上clamp的inputR,並在MaxR調整數值,此角度如果介於此就輸出為0,否則為1。將clamp值輸出multiplyDivide3的input2。

• 由於為了讓自己方便能夠調整角度可以旋轉為多少,再新增一個multiplyDivide,將 multiplyDivide3輸出是此點,然後就可以在相關控製器連接上input2。

關於在Maya裏麵基於骨骼綁定製作具有自動碰撞的裙子的分享就到這裏了。

來源:Thepoly公眾號

作者:劉俐伶

軟件使用: Maya

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答

微信掃碼入群領福利

掃碼領福利最新AI資訊

點擊谘詢
添加老師微信,馬上領取免費課程資源

1. 打開微信掃一掃,掃描左側二維碼

2. 添加老師微信,馬上領取免費課程資源

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定