Magica Cloth 教學

Magica Cloth 是一套支援 Unity 遊戲引擎的物理模擬外掛程式。

將 Magica Cloth 下載並匯入專案,如果出現錯誤訊息是因為缺少必要資源,執行以下操作解決錯誤。

執行[ Window > Package Manager ] 搜尋 Burst 資源包並匯入安裝,需要稍微久的時間請等待出現匯入資源的視窗

在Package Manager上方點擊Advanced並選擇Show preview packades展開資源包選項。

搜尋 Jobs 資源包並安裝匯入專案,若使用 Unity2018 版本需另安裝 Collections 與 Mathematics] 資源包,而使用 Unity2019 以上版本則會自動安裝。

若遇到下圖的錯誤,請將[Jobs] [Burst] [Collections] [Mathematics] 移除後重新安裝匯入。

開啟 [ MagicaCloth > Example (Can be deleted) > Scene ] 資料夾,開啟 UnityChanClothSample 範例場景。

按下 Play 測試 Unity-Chan 的頭髮與裙子擺動效果, 確認 Magica Cloth 完成基本設定。

 

Magica Cloth 基本設置

MagicaCloth 必須要有 MagicaPhysicsManager 才能正常運作。

建立一個新場景,開啟 [ Assets >MagicaCloth>Core>Prefab ] 資料夾,將 MagicaPhysicsManager 拖曳到場景。

 

Magica Physics Manager 相關設定

選取Magica Physics Manager並看到Inspector屬性編輯器,找到Magica Physics Manager (Script) 腳本元件。

Update Per Second:每秒物理引擎更新的頻率。

更新次數越多,物理引擎越強大,但是會影響遊戲執行性能。

Update Mode:更新模式

Unscaled Time:無論Unity幀速率如何都將執行更新。

Once Per Frame:每幀更新一次。

Delay Unscaled Time:延遲執行。

Update Bone Scale:更新骨骼比例

特定於Unity 2018的設置,若要在Unity2018版本更改運行時規模,則需要啟用此檢查。

設定完成後,可儲存場景以便稍後直接修改使用。

 

三、BoneCloth設置

Bone Cloth是使用 Transform 來模擬,適合使用在有骨架的物件,例如:頭髮、尾巴、繩子。

1.骨架套用

開啟 [ MagicaCloth > Example (Can be deleted) > UnityChan > Model ] 資料夾,將 unitychanMC 拖曳到場景。

展開 unitychanMC 架並找到 J_L_HairTail_00 與 J_R_HairTail_00 頭髮骨架,這兩個骨架稍後需要進行設定。

選取 unitychanMC 按滑右鍵執行 Create Other >Magica Cloth >Magica Bone Cloth 新增 Bone Cloth 到 unitychanMC 底下。



選取 Bone Cloth 後在 Inspector 屬性編輯器將出現 No Date 無資料,表示未指定骨架目標因此出現錯誤。

將 Root List 的 Size 增加到 2 個欄位,並將 J_L_HairTail_00 與 J_R_HairTail_00 頭髮骨架拖曳到 Root List 欄位。

按下 Start Point Selection 進入節點編輯模式,Unity-Chan 的頭髮上將會顯示控制點,如需要編輯再接著手動調整。


節點編輯相關功能
Point Size:節點大小(檢視用)
切換以下指定類型並以左鍵點選節點變更修改。
Move Point:移動節點
所有受物理運算影響的節點都必須使用此移動類型。
Fixed Point:固定節點
固定的節點不會受到物理運算移動,但與它連結在一起的移動節點起著重要的作用。因此通常需要固定節點作為移動節點的起點或邊緣。
Invalid Point:完全排除運算的節點
確保將完全不需要進行計算的節點設置為無效,這可減少運算負荷。

完成編輯後按下End Ponit Selection結束節點編輯。

設定參數來控制運算,因為需要一點經驗才能夠調整出較好的效果。

按下 Load 可開啟 Load Preset 視窗選擇預設參數,從 [ MagicaCloth > Preset ] 資料夾選擇載入以下檔案。

根據使用的模型結構,通常需要對參數再進行調整,展開 Parameters 下的 Radius 與 Mass 並調整參數如下:

調整完成後按下下方的Create來建立數據。

建立後在上方即可看到狀態變為白色並顯示資訊。

在測試前可將角色動畫套用到模型上以便於檢視效果,點選unitychanMC角色模型並開啟資料夾 [MagicaCloth>Example (Can be deleted)>UnityChan>Animators] 將UnityChanAction拖曳到Animator下的Controller欄位內即可。

按下 Play 測試 Unity-Chan 頭髮是否正常擺動。

2.碰撞器設置
為了防止 Bone Cloth 穿透模型,必須設置碰撞器解決穿模問題。注意!此功能無法使用 Unity 的碰撞器,必須使用 Magica Cloth 專用碰撞器。

 

碰撞器分為以下三種類型:
MagicaSphereCollider:球形碰撞器
用於球體、頭
MagicaCapsuleCollider:膠囊碰撞器
用於長形物件、角色的四肢
MagicaPlaneCollider:平面碰撞器
通常用於地面或牆壁

2-1.右鍵點選Character1_Hips並選擇新增Create Other >MagicaSphere Collider。
新增出來的控制器將會在後方"( )"內自動命名為對應物件(骨架)名稱便於辨識。
如下圖:

為了便於調整碰撞器,可將 Scene 視窗的 Shading Mode 改為 Wireframe 線框顯示。
選取 Magica Sphere Collider (Character1_Hips) 並透過 Inspector 屬性編輯器的 MagicaSphereCollider 碰撞器的元件,調整Radius 半徑至稍微大於網格的範圍,調整後如下圖:

在 Character1_Spine1 與Character1_Spine2 下建立 Sphere Collider 碰撞器並調整至適當大小。

在Character1_LeftArm、Character1_RightArm、Character1_LeftUpLeg、Character1_RightUpLeg下建立Capsule Collider類型的碰撞器並且調整適當的大小。注意必須個別建立,複選時無法執行建立碰撞器。

碰撞器的位置、縮放、長度在腳本元件內調整,在Transform輔助調整旋轉角度。

設置並調整完成的身體與手腳碰撞器,將碰撞器調整約比模型稍微大一點即可。


選取 Magica Bone Cloth (unitychanMC) 將 Collider List 增加 Size 欄位,然後將剛才建立的碰撞器拖曳到欄位。

此操作是將碰撞器加入布料模擬的運算,因此拖曳碰撞器時無需考慮先後順序,如下圖所示:

將Parameters下的Collider Collisione勾選起來,如果已勾選擇不需動作。如果未勾選,將不會執行碰撞運算。

按下Open Cloth Monitor開啟Cloth Monitor視窗。

在Cloth Monitor視窗開啟的狀態下時看到Scene視窗可檢視BoneCloth節點(黃色與白色)的碰撞大小。如下圖所示:

看到Parameters並展開Radius微調以下數值,調整BoneCloth節點碰撞大小。(大小可自行調整)

按下 Create 更新數據,然後按下 Play 測試。左下圖未加碰撞器,右下圖則是加入碰撞器的效果。

頭髮不會穿過身體即可完成。