找回密码
 立即注册
查看: 518|回复: 3

Unity的OBI CLOTH插件基础使用方法?

[复制链接]
发表于 2020-12-30 10:15 | 显示全部楼层 |阅读模式
Unity的OBI CLOTH插件基础使用方法?
发表于 2020-12-30 10:24 | 显示全部楼层
这一段时间也在需要用到这个插件,所以也和博主一样遇到了很多问题,因为很多人百度都是搜索到这个,所以顺便带上自己找的还行的教程
===============================================================
OBI ROPE
楼主又问了个关于Obi Rope的问题 ,顺便带上一些自己觉得有用的东西把~初步教程,这个是我从日本一个网站扒下来的: http://blog.csdn.net/aila852/article/details/74894096 但是这个教程只是刚刚好入门,后面的东西要通过你自己阅读API去解决:附上OBI的API:http://obi.virtualmethodstudio.com/docs/class_obi_1_1_obi_rope.htmlOBI常见问题解决:http://obi.virtualmethodstudio.com/tutorials/scriptingparticles.html还有一个YOUTUOBE教程:https://www.youtube.com/watch?v=fTqSZgNwGgI  (需要翻墙).希望对你有帮助啊.
===================================================================
转至:Obi Cloth 教學
Obi Cloth 布料的基本設置
1. 新增一個製作布料的物件(例如 Plane 物件),注意不要縮放此物件以避免產生拓樸運算錯誤,重新命名為「Cloth」。
2. 確認此物件 需要有 Mesh Renderer 或 Skinned Mesh Renderer 元件,預設 Unity 的 3D 物件都會有 Mesh Renderer 元件。
注意!Mesh Renderer 或 Skinned Mesh Renderer 元件不能同時在同一物件上。
3. 選取 Cloth 物件,執行 [ Component > Physics > Obi > Obi Cloth ] 加入基本的布料元件。
註:如果布料需要破碎效果,需要加入不同的布料元件,請參閱後面教學。
4. 專案中需要對應網格的 Obi Mesh Topology 網格拓樸,請在 Assets 資料夾按滑鼠右鍵執行 [ Create > Obi > Obi Mesh Topology ] 新增網格拓樸。
註:相同形狀且相同大小的網格可共同一個 ObiMeshTopology,但是場景中有多個不同形狀的布料,必須再新增 ObiMeshTopology,為了辨識建議適當命名,例如「Plane Obi.ObiMeshTopology」。
5. 選取新增的 Obi Mesh Topology 網格拓樸,並在 Inspector 屬性編輯器的 Input Mesh 點擊右側圓鈕,選擇製作布料的物件,也就是目前場景的 Cloth 物件。然後再按下 Generate 按鈕,即可生成布料拓樸物件,透過下方的預覽視窗可以看到生成的結果。
6. 選取 Cloth 物件,在 Inspector 屬性編輯器找到 Obi Cloth (Script) 元件,從 Project 專案視窗找到剛剛新增的 Obi Mesh Topology,然後拖曳到 Shared Topology 欄位,再按下 Initialize 初始化按鈕。
7. 執行 [ GameObject > 3D Object > Obi > Obi Solver ] 新增 Obi Solver 物件,此物件是布料模擬的解算器。
註:或是建立一個空物件,執行 [ Component > Physics > Obi > Obi Solver ] 新增 Obi Solver (Script) 元件,命名為「Obi Solver」以利辨識。
8. 選取 Cloth 物件,然後將 Obi Solver 物件拖曳到 Obi Cloth (Script) 元件的 Solver 欄位。
9. 按下 Edit particles 編輯粒子按鈕,即可編輯布料網格上的每個頂點,紅色點為固定狀態,藍色點為解開狀態。
註:使用 Selection brush 可以繪製方式快速選取多個頂點,調整 Radius 半徑可以改變筆刷範圍。
布料背面不進行著色的問題,可以從 Asset Store 資源商店下載免費的 Double Sided Shaders 雙面著色器,指定給布料使用。


布料與物件之間的碰撞設定
新增一個物件(例如 Sphere 球體)並套用 Rigidbody 剛體元件,讓此物件能向下掉落碰到布料,將會發現目前的布料不會產生碰撞效果,這是因為前面使用 Obi Solver 並沒有對物件碰撞進行計算。
1. 刪除原本的 Obi Solver 物件,執行 [ GameObject > 3D Object > Obi > Obi Solver (with Collider Group) ] 新增帶有 Obi Collider Group 的 Obi Solver 物件。注意!因為原本的 Obi Solver 物件刪除的關係,布料的 Solver 必須也需要重新指定。
補充:實際上也可以在原本的 Obi Solver 物件上新增 Obi Collider Group 元件,執行 [ Component > Scripts > Obi > Obi Collider Group ] 新增 Obi Collider Group (Script) 元件。選取 Obi Solver 物件,從 Inspector 屬性編輯器找到 Obi Solver 元件下方的 Collider Group 欄位,再將 Obi Solver 物件拖曳到此欄位。這個方式的操作步驟比較多,所以建議刪除 Obi Solver 後再新增 Obi Solver (with Collider Group)。
3. 布料物件和碰撞物件必須放在不同的圖層,先在 Inspector 屬性編輯器內的 Layer 新增一個 Cloth 圖層,將 Cloth 物件改改到 Cloth 圖層。
4. 選取帶有 Obi Collider Group 元件的物件(即 Obi Solver),在 Inspector 屬性編輯器內找到Obi Collider Group 裡的 Colliders > Size (物件數量) 輸入場景內要碰撞的物件總數量,輸入後將會出現 Element 0、Element 1 、 Element 2 … 等欄位,即可將場景內要碰撞物件逐一拖曳到這些欄位。
5. 將 Coth 物件原有的 Mesh Collider 關閉,然後按下 Play 測試,即可與產生碰撞的效果。


布料與風力的互動
全域風力場
建立一個新的空物件,重新命名為「Wind」。
執行 [ Component > Scripts > Obi > Obi Ambient Force Zone ] 套用全域風力場元件。
箭頭代表風向,旋轉到適當的方向。
Intensity 強度(預設值 = 0 ,請增加)
Turbulence 亂流
Turbulence Frequency 亂流頻率
Turbulence Seed 亂流種子,用於產生不同的隨機效果。
Affected Solvers 有效的解算器
Size 輸入 1 然後將場景中的 Obi Solver 拖曳到此欄位。
球狀風力場
建立一個新的空物件,重新命名為「Wind」。
執行 [ Component > Scripts > Obi > Obi Spherical Force Zone ] 套用球狀風力場元件。
即可產生布料受到風力吹動的效果。


製作柔體效果
1. 新增一個製作柔體的物件(例如 Sphere 球體),注意不要縮放此物件以避免產生拓樸運算錯誤,重新命名為「Softbody」。
2. 選取 Softbody 物件(後稱柔體物件),執行 [ Component > Physics > Obi > Obi Cloth ] 加入布料元件。
3. 在專案新增一個 Obi Mesh Topology 網格拓樸,步驟是在 Assets 資料夾右鍵新增 [ Create > Obi > Obi Mesh Topology ] 。建議適當命名,例如「Sphere Obi.ObiMeshTopology」。
4. 選取新增的 Obi Mesh Topology 物件,並在 Inspector 屬性編輯器的 Input Mesh 按下右側圓鈕,選擇對話框中的 Sphere 球體★,然後再按下 Generate 按鈕即可生成布料拓樸,可以從下方的預覽視窗檢視形狀。
6. 選取 Softbody 柔體物件,在 Inspector 屬性編輯器找到 Obi Cloth (Script) 元件,從 Project 專案視窗找到剛才新增的 Obi Mesh Topology 網格拓樸並拖曳到 Shared Topology 欄位,然後按下 Initialize 初始化按鈕。停用或移除柔體物件的 Collider 碰撞器。
7. 執行 [ GameObject > 3D Object > Obi > Obi Solver (with Collider Group) ] 新增帶有 Obi Collider Group 的 Obi Solver 解算器。
8. 選取 Softbody 物件,然後將剛才建立的 Obi Solver 解算器拖曳到 Obi Cloth (Script) 元件的 Solver 欄位。
9. 按下 Edit particles 按鈕可以編輯網格上的粒子(頂點),柔體物件與一般布料不同的是…通常不需要特別對粒子固定。
10. 從 Project 專案視窗找到碰撞材質 ( ObiCollisionMaterial ),開啟 [ Assets > Obi > Sample Scenes > SampleResources ] 資料夾,先將 MediumFriction 拖曳到柔體物件的 Obi Cloth (Script) 元件下的 Material 欄位,這個碰撞材質可以調整摩擦力與黏性等參數。如果沒有加入碰撞材質,柔體物件將會因為沒有摩擦力而像史萊姆一樣不停滾動。
從對話框可以選擇以下的碰撞材質★
VerySticky 很HighFriction 高摩擦MediumFriction 中摩擦LowFriction 低摩擦Ice 冰
此外,選取碰撞材質後,可透過 Inspector 屬性編輯器調整。
11. 在場景內新增一個 Plane 物件放在柔體物件的下方,新增一個 Cube 物件置在柔體物件上方,選取帶有 Obi Collider Group 元件的物件(即 Obi Solver),在 Inspector 屬性編輯器內找到 Obi Collider Group 裡的 Colliders > Size (物件數量) 輸入2 (場景內要碰撞的物件總數量),輸入後將會出現 Element 0、Element 1 … 等欄位,將 Plane 與 Cube 物件拖曳到欄位內。
12.柔體物件與碰撞物件必須放在不同的圖層,可以將柔體物件放入前面新增的 Cloth 圖層。
13. 選擇柔體物件,從 Inspector 屬性編輯器找到 Obi Volume Constraints (Script) 元件,此腳本可以控制布料的膨脹與收縮。
14. 按下 Play 即可測試柔體效果。將柔體物件上方的方塊向下移動,測試柔體被壓扁的效果。
15. 調整 Obi Volume Constraints (Script) 體積約束,可製作汽球膨脹的效果。


製作布料的破碎效果
1. 新增一個製作布料的物件(例如 Plane 物件),注意不要縮放此物件以避免產生拓樸運算錯誤,重新命名為「Cloth」。
2. 選取 Cloth 物件,執行 [ Component > Physics > Obi > Obi Tearable Cloth] 加入必要的破碎布料元件。
3. 在專案新增一個 Obi Mesh Topology 網格拓樸,可以在 Assets 資料夾按滑鼠右鍵執行 [ Create > Obi > Obi Mesh Topology ] 新增網格拓樸。相同形狀的網格可以共同一個 ObiMeshTopology 網格拓樸,但若場景中有多個不同形狀的布料,必須再新增 ObiMeshTopology 網格拓樸,建議設定適當名稱以避免混淆。
5. 選取新增的 Obi Mesh Topology 物件,並在 Inspector 屬性編輯器的 Input Mesh 按下右側圓鈕,選擇 Plane 物件。★然後再按下 Generate 按鈕即可生成布料拓樸,可以從下方的預覽視窗檢視形狀。
6. 選取 Cloth 物件,在 Inspector 屬性編輯器找到 Obi Tearable Cloth (Script) 元件,從 Project 專案視窗找到剛剛新增的 Obi Mesh Topology,然後拖曳到 Shared Topology 欄位,再按下 Initialize 初始化按鈕。
7. 製作布料破碎也需要有碰撞計算的解算器,執行 [ GameObject > 3D Object > Obi > Obi Solver (with Collider Group) ] 新增帶有 Obi Collider Group 的 Obi Solver 解算器。
8. 選取 Obi Solver 解算器,從 Inspector 屬性編輯器找到 Obi Tearable Cloth (Script) 元件下方的 Collider Group 欄位,再將 Obi Solver 物件拖曳到此欄位。
9. 按下 Edit particles 編輯粒子按鈕,即可編輯布料網格上的每個粒子(頂點)。
8. 布料與碰撞物件必須放在不同的圖層,將 Cloth 物件改到 Cloth 圖層,如果沒有這個圖層請在 Inspector 屬性編輯器新增。
9. 停用或移除 Coth 物件原有的 Mesh Collider 網格碰撞器。
10.新增一個物件(例如球),套用 Rigidbody 剛體元件,讓此物件能向下掉落碰到布料,即可與產生碰撞的效果。
11.選取帶有 Obi Collider Group 元件的物件(即 Obi Solver),在 Inspector 屬性編輯器內找到Obi Collider Group 裡的 Colliders > Size (物件數量) 輸入場景內要碰撞的物件總數量,輸入後將會出現 Element 0、Element 1 、 Element 2 … 等欄位,即可將場景內要碰撞物件逐一拖曳到這些欄位。
12. 將新增物件的 Rigidbody 剛體元件下的 Mass 值調大增加質量。
13. 選取 Cloth 物件,在 Inspector 屬性編輯器找到 Obi Tearable Cloth (Script) 元件,調整 Obi Tearable Cloth (Script)元件下的Tear Capacity、Tear Resistance Multiplier、Tear Debilitation,不同的數值會有不同的結果,然後按下 Play 測試。
Tear capacity 撕裂能力Tear Resistance Multiplier 耐撕裂乘數Tear debilitation 撕裂衰弱
14. 從 Project 專案視窗找到 MediumFriction [ Assets > Obi > Sample Scenes > SampleResources > MediumFriction ],將MediumFriction 拖曳到 Obi Tearable Cloth (Script) 元件下的 Material 欄位,此元件可調整摩擦力與黏性等參數。
发表于 2020-12-30 10:29 | 显示全部楼层
有导入手机试过吗?,为什么我导入手机里没效果了。。。。
发表于 2020-12-30 10:36 | 显示全部楼层
我也在用这个,网上没有好的教程,只有官方的英文简单文档教程,折腾了一两周,模拟是能模拟了,但是效果始终不是很好,尤其是用在蒙皮了的模型上,效果总是很生硬,我甚至写了邮件联系官方,结果是有个别问题是因为有bug,现在更新了3.0版本但是我还没有升级。不知道能否改善,总之目前效果不理想
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 14:20 , Processed in 0.091209 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表