Unity3D中Ragdoll的用法


一、創建Ragdoll
     見unity3d組件文檔里的 Ragdoll Wizard。由於unity3d中的Ragdoll設置的骨骼點名字與3DMAX里人體骨骼命名有些不一樣,下圖為Unity3D自帶的修理工模型導入unity3d后的Hierarchy圖,紅框內的部分為Ragdoll需要的骨骼節點。
二、使用Ragdoll替換靜態角色
     1、Destroy舊的角色
     2、Instantiate設置好的Ragdoll
     注意:Instantiate的時候,使用舊角色的position和rotation
三、使用Ragdoll替換帶動畫的角色
     //使用GetComponentsInChildren函數獲得所有剛體,將其Kinematic屬性去掉即可。 (實踐證明,不論是不是運動學剛體,只要在有動畫的情況下,一定不受物理影響)
     對於沒有CharacterController的模型,在已經添加Ragdoll的情況下,將角色的Animation組件去除,角色就會變為Ragdoll。在有動畫播放的情況下,剛體是不起作用的,即使是非運動學剛體。
     在實際操作的時候遇到了幾個問題:
1、為何使用腳本修改Kinematic屬性沒有效果,而在編輯器里Is Kinematic那個鈎鈎確實鈎上了?
     答:由於剛體處於休眠狀態,需要用WakeUp函數喚醒才有用,估計是Unity3D在這方面有bug。
2、為何在使用CharacterController的時候,不論如何修改剛體的Kinematic屬性都會出現奇怪的動作?
     答:由於CharacterController會被Collider影響,所以需要將所有的Collider的enable屬性設為false才可以似的動畫正常播放。(切記,CharacterController和Ragdoll的Collider不能同時出現,否則CharacterController會受到影響)
3、如何恢復動畫?
     答:將Anmiaton組件的enable屬性設置為true即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM