嘛 就是這套東西啦
先說效果 他可以省去你K飄帶的時間 直接在引擎中運算出動畫
你只需架好骨骼 綁定好模型 這個插件相當於max里常見的飄帶插件 但是更強大
第一個腳本SpringBone是掛在骨骼下的
除最末端骨骼外每節骨骼都要掛一次 需要保留原有動畫的骨骼不能掛
第二個腳本SpringColider是掛在碰撞體上的
哪里需要跟飄帶產生碰撞就掛在哪
第三個腳本SpringManager是掛在模型最父級的
第一個腳本參數是這樣的
Child 子級 這里要指定這節骨骼的子級骨骼
Is Use Each Bone 使用各自骨骼 勾了之后才會產生物理運算
Stiffness Force 柔韌度
Drag Force 碰撞大小
Colliders——Size 碰撞數量 這里填幾 下面就會有幾個槽 每個槽對應一個碰撞體 進了槽的碰撞體才會跟這節骨骼產生碰撞
(中間略過的參數目前還沒測試出作用 歡迎大佬指正)
第三個腳本的參數是這樣的
兩條曲線都選擇斜向上這種款式 數值一般是0--1根據需要來調
Size這里 這個模型有幾根骨骼要計算 就填幾 並且要把骨骼一根一根拖過來(也是很煩……)
在Unity開發中,有些角色我們要賦予TA更多的細節讓襯托真實度,比如女孩的長發飄飄,或者絲帶,旗幟,雖然我們可以用動畫clip來呈現,也可以用Spring Joint和Configurable Joint來設置創建絲帶,繩子之類,但是設置起來我覺得挺麻煩的.
找來找去,在一位日本的Unity開發者博客上找到了一組腳本,實現飄逸的長發或飄帶還是挺好用的.
這是Webplayer案例:http://rocketjump.skr.jp/unity-spring-test/
這是測試案例,用了Unity二次元角色:
http://rocketjump.skr.jp/download/SpringTestScene.zip
這是只含必須的腳本包:http://rocketjump.skr.jp/download/SpringScript.zip.
具體用法可參考測試案例中,下面只簡要說明可能會遇到的問題,首先要在飄起來的模型中讓美術構建骨骼及蒙皮,如要動起來的這部分含有動畫,那么可以在fbx導入設置中將這部分動畫取消動畫的導入,因為我們用腳本來處理,不使用動畫.
在要參與飄動的每根骨頭中創建一個空的子對象(empty gameobject),並將子對象移動到當前所屬骨頭的末端,之后再給參與運動的每根骨頭掛上Spring Bone腳本,里面的Child指定剛才我們創建的子對象,Bone Axis來描述末端相對與骨骼坐標點的方向,如empty gameobject在骨骼坐標y軸負方向上,那么BoneAxis添”0,-1,0″,Radius只半徑,這里用來生成碰撞體,僅支持球形碰撞體,Stiffness Force是硬度,數值大像鋼筋,數字小像絲帶,DragForce是力衰減,數值大,整個模型動起來約像絲帶,數值小整個模型動起來像多節棍.具體可調整各值觀察結果.
之后在我們這個模型的父級添加SpringManager腳本,並把所有添加了Spring Bone腳本對象都拖拽到SpringManager數組字段中.播放拖動模型起始骨骼就可以看到效果了.
如我們制作角色頭發飄動效果,那么我們還希望頭發與角色身體發生碰撞,避免頭發穿透角色身體,這就要創建Gameobject並賦予SpringCollider腳本,可以看到綠色球形Gizmo,通過調整它的直徑來改變碰撞球的范圍,將它放置在想要阻擋頭發穿透的地方,並將Spring Bone中指定需要產生碰撞的SpringCollider對象(勾選debug后播放可以看到黃色球型Gizmo).
大概就是這樣了,還是要實踐出真知