目標
實現角色的衣袖、頭發、裙擺、披風、尾巴等,在角色運動時,可以產生隨動的效果。類似王者榮耀角色展示界面。
准備
源碼出出處:https://github.com/unity3d-jp/unitychan-crs
學習資料
《Unity中飄逸的頭發或飄帶實現》https://1vr.cn/?p=1922
《Unity動態骨骼插件 飄帶動畫基於bone的實時運算》https://www.cgjoy.com/thread-181206-1-1.html
《【飄逸的秀發】如何在移動設備下做出漂亮的頭發飄逸效果!》https://gad.qq.com/article/detail/23907
步驟
將模型放入場景中,掛載SpringManager到模型根節點,如下所示:
參數說明:
-
Dynamic Ratio:柔軟度,0-1之間,骨骼當前方向到目標方向的平滑度
-
Stiffness Force:整體硬度,越小像絲帶,越大像鋼筋
-
Stiffness Curve:硬度的逐節點變化
-
Drag Force:力衰減,越大越絲滑,越小像多節棍
-
Drag Curve:力的逐節點變化
對需要參與進行飄動的骨骼進行添加SpringBone腳本,在這里以左邊的頭發為例:
節點J_L_HairTail_00是頭發的開始,在這個節點開始添加SpringBone腳本,設置其Child屬性為下一個節點,如此往復,直到最后一個節點J_L_HairTail_06,不用再掛腳本。
參數說明:
-
Child:下一個節點
-
Bone Axis:骨骼方向
-
Radius:半徑
-
Is Use Each Bone Force Settings:是否使用自身設置,而不受管理器控制
-
Colliders:進行碰撞的對象
現在運行拖曳模型,可以看到頭發可以動起來,但是會與身體穿插。所以要配置每個節點可能會碰撞的范圍,比如第一個節點J_L_HairTail_00,因為靠近背的上部,也只會跟背進行穿插,所以只要在背添加碰撞信息腳本SpringCollider,調整碰撞的半徑大小,讓其與背部范圍相符,然后將此碰撞信息添加到J_L_HairTail_00的Colliders對象里,如下圖所示:
其他的節點需要的碰撞信息比較多,下面的頭發需要與相鄰的手臂進行碰撞處理,最后配置完畢效果如下:
-