Unity Cloth 布料模擬教學

Unity 遊戲引擎提供的 Interactive Cloth class 可用於製作遊戲的布料效果,例如旗幟、窗簾、帆布,或是球類遊戲的球網,真實模擬布料的行為。

建立布料

布料物件套用 Skinned Mesh Renderer 與 Cloth 元件。

InteractiveCloth

InteractiveCloth 互動式布料

Bending Stiffness 彎曲剛性 - 設定布料的彎曲剛性。

Stretching Stiffness 伸展剛性 - 設定布料的伸展剛性。

Damping 設定布料運動時的阻尼

Thickness 厚度 - 設定布料曲面的厚度。

Use Gravity 重力 - 設定重力是否影響布料的模擬。

Self Collision 自身碰撞 - 偵測布料與自身的碰撞。

External Acceleration 外部加速 - 在布料加上固定的外部加速度,主要用於模擬風的效果,可設定 XYZ 方向。

Random Acceleration 隨機加速 - 在布料加上隨機的外部加速度,讓布料產生不規則的擺動。

Mesh 網格 - 設定使用於布料的網格物件。

Friction 摩擦 - 設定布料的摩擦係數。

Density 密度 - 設定布料的密度。

Pressure 壓力 - 設定布料內部的壓力。

Collision Response

Attachment Tear Factor 附著撕裂係數

Attachment Response 附加反應 - 設定有多少力場將套用到附加的剛體。

Tear Factor 撕裂係數

Attached Colliders 附加碰撞器,也就是設定布料綁定在那些物件上,沒有綁定物件的布料將會從空中掉落。

Cloth Render

Case Shadows 開啟時設定布料物件產生陰影

Receive Shadows 開啟時此布料會顯示其他物件的陰影

Materials 材質

Use Light Probes

Light Probe Anchor

Pause When Not Visible 設定布料物件在看不見時,暫停布料模擬以減少資源的消耗,此項目預設為開啟。

 

布料約束設定

選取布料物件後,按下 Edit Cloth Constraints 按鈕設定布料的約束。

 

布料碰撞設定

按下 Edit Cloth Self/Inter-Collision 按鈕,設定布料的碰撞。

 

將物件轉換成布料

前段教學是快速建立布料,而使用 3D 軟體製作場景時也會對布料建模,匯入到 Unity 後也可以轉換成布料的。只需要加上 Skinned Mesh Renderer 與 Cloth 元件,並且將原本的 Mesh Render 與 Mesh Collider 元件關閉或移除。換句話說,您必須將一般物件的網格著色器與碰撞器,更換成互動式布料與布料著色器,即可正確呈現布料的效果。

現在的布料物件並沒有正常顯示出來,必須將 Cloth 元件的 Mesh 網格,以及 ClothRenderer 元件的 Material 材質,並參考物件原本的設定,重新再設定回去。

按下 Play 播放鍵,此時布料將會受到重力影響而掉落,若是需要固定布料,必須綁定在物件上。

布料並不是利用 WindZone 風區產生飄動的效果,而是 External Acceleration 外部加速的參數設定。