Unity萌新:如何獲取每幀動(dòng)畫的骨骼數(shù)據(jù)
先看置頂評(píng)論!
真的逆天。對(duì)于動(dòng)畫的每幀骨骼信息,我以為會(huì)有一些類似 boneTransform[frameNum]的動(dòng)畫數(shù)據(jù),可以從Unity的API上獲得。結(jié)果根本沒有。
要從Unity生成的prefab上,自己換算。骨骼會(huì)被生成為實(shí)際的sceneObject。然后你只能從那上面獲取數(shù)據(jù):

雖然你可以Inactive它們,但是實(shí)際上Unity還在使用并更新它們的位置。并且我們?nèi)绻枰业侥掣趋?,需要從根?jié)點(diǎn)上用
去遍歷判斷名稱尋找,其中true代表包含inactive孩子。
并且在SkinedMeshRenderer中的bones里,其下標(biāo)和這個(gè)層級(jí)關(guān)系沒有對(duì)應(yīng)關(guān)系,所以我們只能通過name硬找,絕了。
示例代碼:
在狀態(tài)機(jī)中設(shè)置state播放速度為0, 這段代碼會(huì)1.更新動(dòng)畫到某frame 2.輸出bones[0]的世界位置。其中從root找同名骨骼的函數(shù):
本來想看看能不能從.fbx直接讀取動(dòng)畫數(shù)據(jù),結(jié)果也是春春的逆天,還不如這。