找回密碼
 注冊帳號

掃一掃,訪問微社區

蒙皮布(skinnedcloth)

2015-1-7 00:36| 發布者: 楊炎| 查看: 1610| 評論: 0|原作者: 蠻牛|來自: unity3d腳本manual

摘要: 蒙皮布 (skinned cloth)場景視圖和監視器 (inspector) 中的蒙皮布 (skinned cloth)。蒙皮布 (skinnedcloth)組件 (component) 與蒙皮網格渲染器 (skinnedmeshrenderer)結合作用以對角色模擬衣物。如果具有使用蒙皮網 ...

蒙皮布 (skinned cloth)

場景視圖和監視器 (inspector) 中的蒙皮布 (skinned cloth)。

蒙皮布 (skinnedcloth)組件 (component) 與蒙皮網格渲染器 (skinnedmeshrenderer)結合作用以對角色模擬衣物。如果具有使用蒙皮網格渲染器 (skinnedmeshrenderer) 的動畫角色,則可以將蒙皮布 (skinnedcloth) 組件 (component) 添加到具有蒙皮網格渲染器 (skinnedmeshrenderer) 的游戲對象 (game object),使其表現得更加栩栩如生。只需選擇具有蒙皮網格渲染器 (skinnedmeshrenderer) 的游戲對象 (gameobject),然后使用組件 (component) -> 物理 (physics) -> 蒙皮布 (skinned cloth)添加蒙皮布。

蒙皮布 (skinnedcloth) 組件 (component) 執行的操作是從蒙皮網格渲染器 (skinnedmeshrenderer) 接收頂點輸出并向其應用衣物模擬。蒙皮布 (skinnedcloth) 組件 (component) 具有一組每頂點系數,這些系數定義模擬布相對于蒙皮網格可以移動的自由程度。

選擇具有蒙皮布 (skinnedcloth) 組件 (component) 的游戲對象 (game object) 時,這些系數可以使用場景視圖和監視器 (inspector) 以視覺方式進行編輯。有兩種編輯模式,即選擇和頂點繪制。在選擇模式中,可在場景視圖中單擊頂點以選擇它們,然后在監視器 (inspector) 中編輯其系數。在頂點繪制模式中,可在監視器 (inspector) 中設置所需系數值,啟用要更改的系數旁的“繪制”按鈕,然后單擊頂點以將值應用于它們。

請注意:蒙皮布 (skinned cloth) 模擬僅由蒙皮網格渲染器 (skinnedmeshrenderer) 進行蒙皮的頂點來驅動,不會以其他方式與任何碰撞器 (collider) 交互。這使蒙皮布 (skinned cloth) 模擬比完全物理交互布 (interactive cloth)組件 (component) 快得多,因為它無需按與其余物理模擬相同的幀速率和相同線程上進行模擬。

可以隨時禁用或啟用蒙皮布 (skinned cloth) 組件 (component) 以打開或關閉。關閉可將渲染切換到普通蒙皮網格渲染器 (skinnedmeshrenderer),因此只要需要便可在這些選擇之間切換以針對變化的性能進行動態調整。還可以使用 skinnedcloth.setenabledfading() 方法從腳本在兩個模式之間平滑地交叉淡變,使玩家無法察覺到轉換。

請注意,布模擬會生成法線,但不生成切線。如果源網格具有切線,則這些切線會不進行修改地傳遞給著色器 - 因此如果使用依賴于切線的著色器(如碰撞貼圖著色器),則光照對于從其初始位置移動的布會顯示不正確。

布系數

每個頂點有四個系數,這些系數定義布頂點可以如何相對于蒙皮頂點和法線進行移動。這些系數有:

最大距離 (max distance)

允許頂點相對于蒙皮網格頂點位置行進的距離。蒙皮布 (skinnedcloth) 組件 (component) 確保布頂點相對于蒙皮網格頂點位置保持在最大距離 (maxdistance) 內。如果“最大距離”(maxdistance) 為零,則頂點不會進行模擬,但是會設置為蒙皮網格頂點位置。此行為可用于將布頂點固定到動畫角色的皮膚 - 您需要對不應蒙皮的任何頂點或以某種方式固定到角色身體的部分(如通過皮帶固定的褲腰)執行該操作。但是,如果角色有較大部分不應使用布模擬(如臉或手),那么為了實現最佳性能,請將這些部分設置為沒有蒙皮布 (skinnedcloth) 組件 (component) 的單獨蒙皮網格。

距離偏移 (distance bias)

距離偏移 (distance bias) 基于蒙皮網格法線使通過“最大距離”(maxdistance) 定義的球體變形。值 0.0(默認)表示禁用該功能。在此情況下,不變形最大距離球體。朝 -1.0 減小“最大距離偏差”(maxdistancebias) 會減小允許頂點在切線方向上行進的距離。對于 -1.0,頂點必須保持在通過蒙皮網格頂點位置的法線上,并相對于蒙皮網格頂點位置處于“最大距離”(maxdistance) 內。朝 1.0 增大“最大距離偏差”(maxdistancebias) 會減小允許頂點在法線方向上行進的距離。1.0 時,頂點只能在切線平面內移動并相對于蒙皮網格頂點位置處于“最大距離”(maxdistance) 內。

“碰撞球體半徑”(collision sphere radius) 和“碰撞球體距離”(collision sphere distance)

不允許頂點進入的球體的定義。這允許與動畫布碰撞。該對(“碰撞球體半徑”(collisionsphereradius)、“碰撞球體距離”(collisionspheredistance))為每個布頂點定義球體。球體中心位于位置“約束位置”(constrainposition) -“約束法線”(constrainnormal) * (“碰撞球體半徑”(collisionsphereradius) +“碰撞球體距離”(collisionspheredistance)) 上,其半徑為“碰撞球體半徑”(collisionsphereradius),其中“約束位置”(constrainposition) 和“約束法線”(constrainnormal) 是蒙皮網格渲染器 (skinnedmeshrenderer) 生成的頂點位置和法線。蒙皮布 (skinnedcloth) 確保布頂點不進入此球體。這意味著“碰撞球體距離”(collisionspheredistance) 定義布可以穿透蒙皮網格的深度。它通常設置為零。“碰撞球體半徑”(collisionsphereradius) 應設置為大于相鄰頂點之間距離的值,以確保布頂點無法在碰撞球體上滑動。在這類設置中,布會表現為與蒙皮網格碰撞。

有關對于不同“最大距離偏差”(maxdistancebias) 值的蒙皮頂點和法線,這些系數如何發揮作用的可視表示形式,請參閱此圖。紅色區域是“碰撞球體半徑”(collisionsphereradius) 和“碰撞球體距離”(collisionspheredistance) 定義的碰撞球體,這是布頂點無法進入的球體。因而綠色區域(由“最大距離”(maxdistance) 定義并從紅色區域中減去“最大距離偏差”(maxdistancebias))定義布頂點可以在其中移動的空間。

蒙皮布 (skinnedcloth) 檢視器 (inspector)

選擇具有蒙皮布 (skinnedcloth) 組件 (component) 的游戲對象 (gameobject) 時,可以使用蒙皮布 (skinnedcloth) 監視器 (inspector) 編輯布頂點系數以及其他屬性。該監視器 (inspector) 具有三個選項卡:

頂點選擇工具 (vertex selection tool)

在此模式中,可以在場景視圖中選擇頂點,然后在監視器 (inspector) 中設置其系數(有關布系數工作原理的說明,請參閱前一部分)。可以通過按住 shift 鍵或使用鼠標拖動矩形來設置多個系數。選擇多個頂點時,監視器 (inspector) 會顯示頂點系數的平均值。不過更改這些值時,該系數對于所有頂點會設置為相同值。如果將場景視圖切換為線框模式,則還能查看并選擇背向頂點,這在要選擇角色的所有部分時十分有用。

為幫助您了解系數對所有頂點所具有的值,可以單擊系數字段旁的眼睛圖標以便讓編輯器在場景視圖中顯示該系數。這樣可采用綠色顯示具有該系數的最小值的頂點,中間值為黃色,最大值為藍色。顏色比例始終相對于該系數的使用值范圍進行選擇,并且獨立于絕對值。

頂點繪制工具 (vertex painting tool)

類似于頂點選擇,這是可幫助配置頂點系數值的工具。與頂點選擇不同的是,無需在更改值之前單擊頂點 - 在此模式中,只需輸入要設置的值,啟用要更改的系數旁的畫筆開關,然后單擊要對其設置該值的所有頂點。

配置 (configuration)

第三個選項卡可用于配置蒙皮布的各種屬性:

彎曲剛度 (bending stiffness)

布的彎曲剛度

伸展剛度 (stretching stiffness)

布的伸展剛度。

阻尼 (damping)

對布運動進行阻尼處理

厚度 (thickness)

布表面的厚度。 (0.001 - 10000)

使用重力 (use gravity)

如果啟用,則重力會影響布模擬。

自碰撞 (self collision)

如果啟用,則布可以與自己碰撞。

外部加速度 (external acceleration)

應用于布的恒定外部加速度。。

隨機加速度 (random acceleration)

應用于布的隨機外部加速度。

世界坐標速率比例 (world velocity scale)

角色的世界坐標空間移動對布頂點的影響程度。此值越大,布為響應游戲對象 (gameobject) 世界坐標空間移動而進行的移動便越多。這基本上定義蒙皮布 (skinnedcloth) 的空氣摩擦力。

世界坐標加速度比例 (world acceleration scale)

角色的世界坐標空間加速度對布頂點的影響程度。此值越大,布為響應游戲對象 (gameobject) 世界坐標空間加速度而進行的移動便越多。如果布不生動,請嘗試增大此值。如果在角色加速時布不太穩定,請嘗試減小此值。

相關閱讀

文章點評
相關文章
女校游泳队彩金