天天看點

Unity 布料,頭發模拟插件Magica Cloth

依賴包

Magica Cloth 使用 Job System 和 Burst compiler 加快布料模拟,是以需要先安裝這兩個依賴包

Unity 布料,頭發模拟插件Magica Cloth

Burst 可以直接下載下傳

Unity 布料,頭發模拟插件Magica Cloth

在這裡插入圖檔描述

Job System 得通過 URL 添加,輸入com.unity.jobs,設定中也要開啟Enable Pre-release Packages

另外為了看到模型的骨骼節點,還要下載下傳Animation Rigging

元件

名稱 圖示 介紹
MagicaPhysicsManager
Unity 布料,頭發模拟插件Magica Cloth
管理器,使用時會自動建立
MagicaBoneCloth
Unity 布料,頭發模拟插件Magica Cloth
控制骨骼(Transform)進行布料模拟,帶骨骼的衣服和頭發都可以用
MagicaBoneSpring
Unity 布料,頭發模拟插件Magica Cloth
控制骨骼(Transform)進行彈簧模拟,适合胸部抖動
MagicaRenderDeformer
Unity 布料,頭發模拟插件Magica Cloth
渲染變形器,用于對模型的網格進行變形,當使用 MeshCloth / MeshSpring 時需要,性能消耗大
MagicaVirtualDeformer
Unity 布料,頭發模拟插件Magica Cloth
虛拟變形器,通過結合多個渲染變形器進行頂點縮減,并重構為一個虛拟網格。使用MeshCloth / MeshSpring時需要,性能消耗大
MagicaMeshCloth
Unity 布料,頭發模拟插件Magica Cloth
對網格頂點進行布料模拟,适用于無骨骼的模型,可以實作比Bone Cloth更加精細的控制,是控制裙裝的理想選擇,與虛拟變形器一起工作,性能消耗大
MagicaMeshSpring
Unity 布料,頭發模拟插件Magica Cloth
對網格頂點進行彈簧模拟
MagicaSphereCollider / MagicaCapsuleCollider / MagicaPlaneCollider
Unity 布料,頭發模拟插件Magica Cloth
球形,膠囊形,平面形碰撞器,防止穿模,球形和膠囊形主要用于人體,膠囊形消耗更大,平面形主要用于地面
MagicaDirectionalWind / MagicaAreaWind
Unity 布料,頭發模拟插件Magica Cloth
全局的風,區域的風

Magica Cloth的實體引擎完全獨立于Unity的實體學引擎,是以,它完全不幹擾Unity的實體系統。

MagicaPhysicsManager

Unity 布料,頭發模拟插件Magica Cloth

MagicaPhysicsManager這個prefab是插件中自帶的,運作時使用插件相關的元件後就會自動建立

Unity 布料,頭發模拟插件Magica Cloth
Update Per Second 實體引擎每秒更新次數
Update Mode Unscaled Time - 重新整理率不受 Unity 的 time scale 影響
Update Mode Once Per Frame - 每幀更新一次,當使用這種模式時,Update Per Second 需要根據遊戲的幀率來調整。
Update Mode Delay Unscaled Time - 延遲執行,與 Unscaled Time 一樣,但在渲染時也能進行布料模拟,能大幅提高性能,但結果會晚一幀,這個延遲是通過未來預測來插值的
Update Location 在 Late Update 之前或之後更新
Faster Write 使用 Unity 的新 Mesh API 更新網格頂點,提高網格更新速度,版本要大于 2021.2
OnPreUpdate / OnPostUpdate 在布料模拟之前或之後注冊事件

MagicaBoneCloth 模拟頭發,衣服飄動

MagicaBoneCloth 和 MagicaBoneSpring 都是通過改變骨骼節點Transform的位置和旋轉來實作飄動效果

Unity 布料,頭發模拟插件Magica Cloth

把模型拖入場景,點選模型,選擇Bone Render Setup顯示模型的骨骼,友善選擇對應骨骼

Unity 布料,頭發模拟插件Magica Cloth

這個模型後面有長發和兩邊的側發,長發和側發的參數設定不同,這裡以長發示範

Unity 布料,頭發模拟插件Magica Cloth
Unity 布料,頭發模拟插件Magica Cloth

右鍵建立一個 Magica Bone Cloth,并改名為長發

Unity 布料,頭發模拟插件Magica Cloth

這裡有錯誤提示是因為還沒有生成資料,将長發的根節點添加到Root List,點選Start Point Selection進入節點編輯模式

Unity 布料,頭發模拟插件Magica Cloth
Unity 布料,頭發模拟插件Magica Cloth

紅色表示固定節點(Fixed Point),它不會移動,但是會旋轉,一般就是根節點,每個可移動的骨骼鍊上,第一個節點必須是固定節點。

綠色表示活動節點(Move Point),受實體系統影響

還有一種灰色節點表示無效節點(Invalid Point),不參與實體運算

Unity 布料,頭發模拟插件Magica Cloth

如果需要修改節點類型,先選擇節點類型,按住左鍵在場景中拖動即可改變節點顔色

調整完後, 點選 End Point Selection 結束編輯

Unity 布料,頭發模拟插件Magica Cloth

下面就是實體模拟相關的參數,這裡提供了一些預設,點選Preset選擇長發類型的預設,會自動修改适合長發的參數

頭發相關的預設:前發(FrontHair),長發(LongHair),臉兩側頭發(SideHair),馬尾(PonyHair),短發(ShortHair)

衣服相關的預設:柔軟的裙子(SoftSkirt),硬裙(HardSkirt),長開衩連衣裙(LongSlitDress)

尾巴或身上飄動的裝飾物:Tail

最後點選Create生成資料

Unity 布料,頭發模拟插件Magica Cloth

上面的錯誤提示消失,顯示了一些參數。現在運作時拖動角色,長發會有抖動的實體效果,但是會有穿模的情況,是以還需要處理下穿模的問題。

Magica Cloth提供了兩種穿模的解決方法,表面穿模(Surface Penetration)和碰撞體穿模(Collider Penetration)。

Unity 布料,頭發模拟插件Magica Cloth

如果衣服(頭發)與身體上的骨骼有關聯的話,衣服會随着身體動作跟着運動,如圖腿動的時候,裙子也會跟着動,這種情況可以選擇表面穿模,表現力更好。

Unity 布料,頭發模拟插件Magica Cloth

如果衣服(頭發)與身體上的骨骼沒有關聯,衣服(頭發)完全由自己的骨骼控制,如圖腿動的時候,裙子不會動,這種情況使用碰撞體穿模。

模型屬于第二種情況,是以選擇碰撞體穿模

Unity 布料,頭發模拟插件Magica Cloth

正常情況下,應該在頭部,軀幹,四肢都加上球形(MagicaSphereCollider)或膠囊形碰撞體(MagicaCapsuleCollider),這裡為了省事兒隻在軀幹上添加膠囊形碰撞體

Unity 布料,頭發模拟插件Magica Cloth

為了長發和碰撞體進行碰撞檢測,還需要把這個碰撞體添加到長發的ColliderList中,再次點選Create生成資料,運作檢視效果

Unity 布料,頭發模拟插件Magica Cloth
Unity 布料,頭發模拟插件Magica Cloth

下面處理下裙子

Unity 布料,頭發模拟插件Magica Cloth

模型前面的裙擺和後面的裙擺被處理成了幾個獨立的片,這裡隻處理下後擺,建立一個MagicaBoneCloth改名為後擺

Unity 布料,頭發模拟插件Magica Cloth

将後擺的幾個根節點添加到Root List,并修改連接配接模式(Connection Mode)為Mesh Sequential No Loop,表示這幾個骨骼鍊形成一個不閉合的網格面,連接配接模式指定Root List中骨骼鍊的連接配接方式。

Connection Mode Line - 表示單條骨骼鍊從父級到子級是線性結構的,兩條骨骼鍊是獨立的
Connection Mode Mesh Automatic - 自動連接配接附近的骨骼節點建立一個網格結構并進行連接配接,它不受Transform的父-子關系的影響,不适合太複雜的結構
Connection Mode Mesh Sequential Loop - 按照在RootList中的順序生成網格,并連接配接第一條和最後一條骨骼鍊
Connection Mode Mesh Sequential No Loop - 按照在RootList中的順序生成網格,但不連接配接第一條和最後一條骨骼鍊
Same Surface Angle 隻在連接配接模式為網格時有,表示生成網格法線的角度(0-90)
Unity 布料,頭發模拟插件Magica Cloth

連接配接模式選擇Line,那麼裙子上的每條骨骼鍊就分别單獨進行碰撞檢測,這樣物體可能從兩條骨骼鍊之間的縫隙穿過産生穿模

Unity 布料,頭發模拟插件Magica Cloth

首尾相連的裙子選擇Mesh Sequential Loop,生成閉合的網格面,這樣碰撞檢測更加精确

Unity 布料,頭發模拟插件Magica Cloth

有的裙子不是閉合的就選擇Mesh Sequential No Loop

Unity 布料,頭發模拟插件Magica Cloth

在腿上建立碰撞體添加到Collider List,預設選擇NormalSkirt,點選Create生成資料,運作檢視效果

Unity 布料,頭發模拟插件Magica Cloth

MagicaBoneSpring 模拟胸部抖動

Unity 布料,頭發模拟插件Magica Cloth

與 MagicaBoneCloth 基本類似,Create Other -> Magica Cloth -> MagicaBoneSpring,右鍵先建立一個 MagicaBoneSpring 并改名為胸部

Unity 布料,頭發模拟插件Magica Cloth

找到模型身上的胸部節點添加到 Root List

Unity 布料,頭發模拟插件Magica Cloth

預設選擇Breast,點選Create生成資料,運作時檢視效果

Unity 布料,頭發模拟插件Magica Cloth

MagicaMeshCloth 模拟裙子飄動

Unity 布料,頭發模拟插件Magica Cloth

參考官方示例,使用Unity Chan模拟

Unity 布料,頭發模拟插件Magica Cloth

首先,必須開啟模型上的Read/Write選項,這是為了讀取并修改模型身上的頂點,MagicaCloth不支援具有4個或更多頂點的多邊形,是以Keep Quads必須關閉

Unity 布料,頭發模拟插件Magica Cloth
Unity 布料,頭發模拟插件Magica Cloth

在裙子,上衣,拉鍊這三個Mesh Renderer上都添加 MagicaRenderDeformer(渲染變形器),它能對網格進行變形,添加後會自動建立資料,如果上一步Read/Write選項沒有開啟,這裡會報錯

Unity 布料,頭發模拟插件Magica Cloth

Create Other -> Magica Cloth -> MagicaVirtualDeformer,然後建立一個MagicaVirtualDeformer(虛拟變形器),把之前三個 MagicaRenderDeformer(渲染變形器)添加到Render Deformer List中,點選Create生成資料,如果這裡報錯,點選渲染變形器上的Create重新生成資料。MagicaVirtualDeformer的作用是将一個或多個MagicaRenderDeformer轉換為一個虛拟網格,減少頂點,将高多邊形網格轉換為低多邊形網格。這個虛拟網格隻用于布料模拟,是以實際模型網格不會被減少。從Cloth Monitor中可以看到虛拟網格的頂點數和三角面數

Reduction Setting 調整下面的參數可以減少頂點數量,簡化網格,修改後重新點選Create

參數 描述
Merge Vertex Distance 在這個距離内合并頂點,忽略網格的連接配接性
Merge Triangle Distance 在這個距離内合并三角面,考慮網格的連接配接性
Same Surface Angle 如果兩個連接配接的多邊形小于此角度,則認為它們是相連的
Use Skinning 勾選會對所有頂點的骨骼權重進行重新指派,取消勾選減少實體計算的負擔
Unity 布料,頭發模拟插件Magica Cloth

點選Open Cloth Monitor可以看到這個虛拟網格

Unity 布料,頭發模拟插件Magica Cloth

Create Other -> Magica Cloth -> MagicaMeshCloth,然後建立一個MagicaMeshCloth并改名為衣服

Unity 布料,頭發模拟插件Magica Cloth

這幾個元件之間的關系

Unity 布料,頭發模拟插件Magica Cloth

接下來的操作和MagicaBoneCloth差不多。添加虛拟變形器的引用,點選Start Point Selection修改頂點類型

Unity 布料,頭發模拟插件Magica Cloth

這一步比較麻煩,它沒有自動幫我們設定類型,需要手動設定,把裙子部分設定活動節點(Move Point),活動節點需要連接配接固定節點(Fixed Point)

Unity 布料,頭發模拟插件Magica Cloth

在腿部添加兩個膠囊形碰撞器并添加到Collider List中

Unity 布料,頭發模拟插件Magica Cloth

預設選擇Skirt,點選Create生成資料,運作時檢視效果

Unity 布料,頭發模拟插件Magica Cloth

MagicaMeshSpring 模拟胸部抖動

Unity 布料,頭發模拟插件Magica Cloth

前面和MagicaMeshCloth差不多,先給胸部附近的Mesh Renderer添加MagicaRenderDeformer(渲染變形器)

Unity 布料,頭發模拟插件Magica Cloth

Create Other -> Magica Cloth -> MagicaVirtualDeformer,建立一個MagicaVirtualDeformer,添加胸部附近的MagicaRenderDeformer,點選Create生成資料,可以調整參數适當簡化網格

Unity 布料,頭發模拟插件Magica Cloth

Create Other -> Magica Cloth -> MagicaMeshSpring,建立一個 MagicaMeshSpring 并改名為左胸

Unity 布料,頭發模拟插件Magica Cloth

添加MagicaVirtualDeformer的引用,Center Transform 就是 MeshSpring 擺動的中心,選擇左胸節點,如何沒有合适的節點可以建立一個Transform節點,調整位置到中心,黃色箭頭是擺動的前方向,差不多是z軸正向,是以Direction Axis選擇Z

Unity 布料,頭發模拟插件Magica Cloth

預設選擇Breast,點選Create生成資料,右胸的處理一樣

Unity 布料,頭發模拟插件Magica Cloth

運作時發現擺幅比較大,還需要調整下Spring參數,參考下面參數說明

MagicaDirectionalWind / MagicaAreaWind

Unity 布料,頭發模拟插件Magica Cloth

MagicaDirectionalWind 是控制全局的風

參數 描述
Main 風量
Turbulence 風的湍流率,在0.0時,風總是從某一方向流動,在1.0時,風向會随機變化
Frequency 風向變化的速度,你可以改變湍流變化的速度
Direction Angle X/Y 繞X/Y軸旋轉的角度
Unity 布料,頭發模拟插件Magica Cloth

需要配合Unity的WindZone元件使用,修改MagicaDirectionalWind風量Main會同步修改Wind Zone的風量Main,可以将兩者做成一個預制體在場景中使用

Unity 布料,頭發模拟插件Magica Cloth

衣服,頭發受到的風力通過External Force參數設定,參考下面的參數說明

Unity 布料,頭發模拟插件Magica Cloth

MagicaAreaWind控制局部區域的風,可以設定方形或球形區域,用它可以實作爆炸時猛烈的氣流效果

參數 描述
Main 風量
Turbulence 風的湍流率,在0.0時,風總是從某一方向流動,在1.0時,風向會随機變化
Frequency 風向變化的速度,你可以改變湍流變化的速度
Shape Type 方形或球形
Direction Type 球形時有效,One Direction - 風吹向某一個方向,Radial - 風從中心徑向吹來
Attenuation 球形徑向風時有效,風從中心到四周的衰減率
Is Addition 當處于多個風場疊加的區域時,勾選表示疊加這幾個風的影響,不勾選會選擇區域最小的風場
Unity 布料,頭發模拟插件Magica Cloth

這是官方示例中示範的爆炸氣流效果,在紅球上添加了MagicaAreaWind,設定為球形徑向風,調整風量到最大并勾選Is Addition,這樣紅球出現時就會伴随強烈的氣流,這時再配合爆炸的特效就有不錯的表現效果

參數說明

下面補充下其他其他參數的說明

Update Mode

指定模拟的更新時間

選項 描述
Normal 根據幀率更新
Unity Physics 基于 Unity 的實體更新,如果角色在 FixedUpdate 内移動,可以通過選擇此項來抑制抖動

Culling

Unity 布料,頭發模拟插件Magica Cloth

Culling是剔除相關的設定,當角色移出螢幕後如何影響實體系統的更新

首先需要将模型上的網格元件(Mesh Renderer或Skinned Mesh Renderer)添加到Cull Renderer List中,點選Auto Select即可自動添加,然後設定剔除模式

Culling Mode 描述
OFF 不剔除,始終進行模拟
Reset 離開螢幕,停止模拟,再次出現時,會重置模拟
Pause 離開螢幕,停止模拟,再次出現時,從停止的狀态繼續模拟

Animator和Animation上也有類似的剔除設定

Unity 布料,頭發模拟插件Magica Cloth
Culling Mode 描述
Always Animate 不剔除,始終運作動畫
Cull Update Transforms 離開螢幕,内部動畫仍在運作,但不會更新Transform元件
Cull Completely 離開螢幕,停止模拟,再次出現時,從停止的狀态繼續模拟
Unity 布料,頭發模拟插件Magica Cloth
Culling Type 描述
Always Animate 不剔除,始終運作動畫
Based On Renderers 與Animator的Cull Update Transforms一樣,離開螢幕,内部動畫仍在運作,但不會更新Transform元件

建議動畫的剔除和 MagicaBoneCloth 的剔除模式相比對,確定實體模拟與動畫更好地同步

下面是推薦的比對模式

Animator Culling Mode MagicaCloth Culling mode 描述
Always Animate OFF 不剔除,始終進行模拟和動畫
Cull Update Transforms Reset 離開螢幕,停止模拟和動畫,再次出現時,會重置模拟和動畫
Cull Completely Pause 離開螢幕,停止模拟和動畫,再次出現時,從停止的狀态繼續運作
Animation Culling Type MagicaCloth Culling mode 描述
Always Animate OFF 不剔除,始終進行模拟和動畫
Based On Renderers Reset 離開螢幕,停止模拟和動畫,再次出現時,會重置模拟和動畫

Algorithm

Unity 布料,頭發模拟插件Magica Cloth

Algorithm中老的算法已經不再維護,新的算法解決了老算法的一些問題,一般就預設Algorithm 2算法

Radius

Unity 布料,頭發模拟插件Magica Cloth

每個由實體引擎控制的點都被稱為粒子(particle),Radius就是控制這些粒子的大小,從骨骼鍊的根節點到末端節點的大小變化

Unity 布料,頭發模拟插件Magica Cloth

點選Open Cloth Monitor,勾選Particle Position和Particle Radius,就可以看到長發上的粒子,根節點是黃色,子節點是白色,粒子的大小會影響碰撞檢測的判斷

Mass

Unity 布料,頭發模拟插件Magica Cloth

Mass 就是控制粒子的重量,較重的粒子更難移動,基本上,如果開始點比較重,結束點比較輕,MagicaBoneCloth 的模拟會更穩定

Gravity

Unity 布料,頭發模拟插件Magica Cloth

Gravity 設定重力加速度的大小和方向,設定重力讓衣服下垂,不容易飄起了會顯得更自然一點

External Force

Unity 布料,頭發模拟插件Magica Cloth

External Force 設定外力(如風)的影響

名稱 描述
Depth Influence 根據粒子在骨骼鍊上的深度指定受到外力的比率。1.0表示100%受外力影響,0.0表示完全不受外力影響
Wind Influence 風的影響率,1.0是100%受影響,0.0完全不受風的影響
Wind Synchronization 風的同步率,增加同步率,每個粒子将以同樣的方式移動。降低同步率會使每個粒子更容易受到幹擾
Wind Random Scale 風的随機率,增加随機性,也會增加運動的不規則性

Drag

Unity 布料,頭發模拟插件Magica Cloth

Drag 設定粒子的空氣阻力,阻力越大,粒子的慣性衰減越快

Unity 布料,頭發模拟插件Magica Cloth

Max Velocity 粒子最大速度(m/s)

World Influence

Unity 布料,頭發模拟插件Magica Cloth

World Influence 設定身體運動時,粒子受影響程度

名稱 描述
Influence Target 檢測運動的主體,如果不設定,就會選擇該元件所附加的Transform
Max Move Speed 粒子最大移動速度
Movement Influence 身體運動對粒子的影響程度
Rotation Influence 身體旋轉對粒子的影響程度
Reset After Teleport 在一幀内大幅度移動或旋轉稱為Teleport,該選項設定是否在檢測到Teleport時重置粒子的位置
Teleport Mode Reset - Teleport後重置一次模拟。Keep - Teleport後保持模拟狀态
Teleport Distance 一幀内移動多遠距離算一個Teleport
Teleport Rotation 一幀内旋轉多大角度算一個Teleport
Stabilization Time After Reset 重置時執行穩定化處理的時間(秒)

Distance Disable

Unity 布料,頭發模拟插件Magica Cloth

Distance Disable 根據身體與指定對象(通常是錄影機)之間的距離,禁用/啟用模拟

名稱 描述
Reference Object 指定要測量距離的目标,如果沒有指定,将選擇主錄影機
Distance 指定關閉模拟的距離
Fade Distance 淡化距離,如果Distance是20,FadeDistance是5,則在15到20的距離之間進行淡入淡出效果

Clamp Distance

Unity 布料,頭發模拟插件Magica Cloth

Clamp Distance 設定粒子離根節點的距離範圍,作為參考距離,設定從根節點到粒子的直線距離為1.0,并将距離增加或減少的程度設定為百分比。舉例來說,當Min Distance Ratio為0.7,Max Distance Ratio為1.1時,移動限制範圍如下

Unity 布料,頭發模拟插件Magica Cloth

末端粒子隻能在圖中兩條紅線之間的範圍内移動

Velocity Influence 速度效應,将此設定為低值可以減少粒子因突然運動而移動的問題。然而,粒子的慣性也會丢失。

Clamp Position

Unity 布料,頭發模拟插件Magica Cloth

Clamp Position 限制粒子從原點移動的距離,原點是粒子的原始位置

名稱 描述
Clamp Position Ratio X/Y/Z 可以相對于原點X/Y/Z軸移動的百分比(1.0=100%)
Velocity Influence 同上

Clamp Rotation

Unity 布料,頭發模拟插件Magica Cloth

Clamp Rotation 限制相對于父節點的旋轉角度,上圖直線表示根節點(固定粒子)不能彎曲,尖端可以彎曲25度

Restore Distance

Unity 布料,頭發模拟插件Magica Cloth

Restore Distance 恢複距離,縮放連接配接的粒子之間的距離,使它們保持在原來的距離,其作用是保持原始形狀。

有以下三種粒子連接配接方式:

類型 描述
Struct 根據原始結構連接配接粒子,在Bone Cloth中,是由Transform的父子結構建構的,在Mesh Cloth中,是由Mesh多邊形的連接配接資訊建構的。必選的
Bend 從原始結構中連接配接更多的結構型粒子,可以使形狀不容易坍塌。可選的
Near 忽略原始結構,僅連接配接那些靠近的粒子,這種連接配接可以保持形狀的強度,但也使其不容易變形。可選的
參數名稱 描述
Struct Stiffness Struct 連接配接強度,該值越高,恢複速度越快
Bend Point 是否使用Bend連接配接
Bend Max Connection 一個粒子的最大連接配接數,連接配接數越多,形狀穩定性越強,但負荷也更大
Bend Stiffness Bend 連接配接強度,該值越高,恢複速度越快
Near Point 是否開啟Near連接配接
Near Max Connection 一個粒子的最大連接配接數
Near Max Depth 進行Near連接配接的粒子最大深度,骨骼鍊上起點深度為0,終點深度為1
Near Point Length 要連結的粒子之間的距離
Near Stiffness Near連接配接強度,該值越高,恢複速度越快
Velocity Influence 同上

Restore Rotation

Unity 布料,頭發模拟插件Magica Cloth

Restore Rotation 恢複旋轉,當粒子産生旋轉後恢複到相對于父節點的角度

參數名稱 描述
Restore Power 恢複的強度
Velocity Influence 同上

Triangle Bend

Unity 布料,頭發模拟插件Magica Cloth

Triangle Bend 三角形彎曲,當Connection Mode設定為Mesh相關的選項,或者使用Mesh Cloth時會顯示該參數

兩個連接配接三角形受外力變形後,兩個三角形的角度恢複到其原始角度

參數名稱 描述
Bend Power 恢複的強度,基本上設定為1.0就行,但具三角形數量比較少的時候,嘗試降低該值
Twist Correction 會建立特殊的限制資料以防止扭曲問題,它會增加消耗,是以不建議使用它,除非有扭曲的問題
Twist Recovery Power 恢複扭曲的強度,如果值太高,形狀可能會變得很硬

Collider Collision

Unity 布料,頭發模拟插件Magica Cloth

Collider Collision 碰撞檢測

參數名稱 描述
Dynamic Friction 動态摩擦系數,與碰撞機接觸的粒子很難移動,增加該值将增加摩擦力并減慢運動速度
Static Friction 靜态摩擦系數,與碰撞器接觸的粒子靜止的強度,增加該值将導緻粒子在碰撞器上立即停止

Penetration

Unity 布料,頭發模拟插件Magica Cloth

Penetration 穿模

參數名稱 描述
Penetration Mode 碰撞體穿模/表面穿模
Max Connection Depth 最大連接配接深度
Penetration Axis 粒子可以穿透哪個軸
Connection Distance 搜尋粒子所連接配接的碰撞器時,最大搜尋距離
Penetration Distance 粒子可以穿透的距離
Moving Radius 粒子可以移動的最大半徑,粒子隻能在這個半徑的球體内移動
Penetration Ignore Collider List 要忽略的碰撞器清單

Rotation Interpolation

Unity 布料,頭發模拟插件Magica Cloth

Rotation Interpolation 旋轉插值

參數名稱 描述
Fixed Non-Rotation 固定不旋轉,當打開時,固定粒子(根節點)将完全不旋轉
Line Avarage Rotation 根據連接配接線的平均角度調整粒子的旋轉,将此功能打開會産生更平滑的結果

Spring

Unity 布料,頭發模拟插件Magica Cloth

MagicaMeshSpring上調整彈簧的參數,指定彈簧運動的一個球形範圍

參數名稱 描述
Spring Radius 球形區域的半徑
Spring Radius Scale X/Y/Z 三個軸影響的比例
Spring Power 彈簧力
Spring Direction Atten 彈簧力阻尼率取決于與球體前端的角度,左邊是前面的方向,右邊是後面的方向
Spring Distance Atten 彈簧力的衰減率取決于與球中心的距離,左邊是球的中心,右邊是球的外緣
Spring Atten Intensity 阻尼率的整體調整

Adjust Rotation

Unity 布料,頭發模拟插件Magica Cloth

可以根據彈簧移動的距離為根節點添加旋轉

參數名稱 描述
Adjust Mode 指定檢測運動的軸,通常是Direction Axis之外的兩個軸
Adjust Rotation Power 旋轉強度

性能優化建議

Unity 布料,頭發模拟插件Magica Cloth
  1. Update Mode選擇Delay Unscaled Time,實際的實體模拟會比畫面慢一幀,為了解決這個問題,它通過上一幀和目前幀的實體模拟結果進行插值
  2. 盡量選擇BoneCloth和BoneSpring進行模拟,如果裙子使用BoneCloth效果達不到預期就改成MeshCloth,但注意要簡化網格
    Unity 布料,頭發模拟插件Magica Cloth
  3. Virtual Deformer元件上需要關注的是Use Skinning選項,如果勾選了Use Skinning,則需要對所有頂點的骨骼權重進行重新指派,取消Use Skinning可以極大地減少實體計算的負擔。它的限制在于當取消了Use Skinning選項後,網格隻會受到影響程度最大的Virtual Deformer的影響,可能在一定程度上會影響最終的表現,但是如果對于一個網格的Render Deformer隻在一個Virtual Deformer中使用的情況下則可以放心地取消該選項的勾選

參考

up主IGBeginner0116

官方文檔

【博物納新】Magica Cloth

繼續閱讀