五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unity中的蒙皮動畫原理和代碼測試

2023-01-17 11:26 作者:DeadCyber  | 我要投稿

就以vertex[0]為測試。


將播動畫的prefab的transform reset,保證W(世界空間)和M(模型空間)一致,省去一些麻煩。



首先通過

得知vertex0的受2個骨骼影響,bone[3]影響權(quán)重為0.75,bone[6]為0.25。



其次了解bindpose(通常是T-pose),類型為Matrix4x4,就是模型系下每個骨骼的transform。


作用為從M(模型空間)轉(zhuǎn)到B(骨骼空間)。



將vertex[0]分別轉(zhuǎn)到3,6骨骼空間下:

此時v1,v2都在B空間了。注意不論此時骨骼怎么動,B空間里的v是不會動的。(這就是T-pos的意義,讓模型的默認(rèn)vertex有一個在B空間的相對位置)



上篇知道skin.bones是實時更新的,所以此時skin.bones[i]的local就是B空間(因為


transform為0時,點就在骨骼位置上),World又和M空間一致(因為我們把prefab的


transform reset為0了)。


所以skin.bones[i]的localToWorldMatrix就是從B(骨骼空間)轉(zhuǎn)到M(模型空間),它是實時


更新的。 由于v1,v2現(xiàn)在就在B空間,再乘一下骨骼skin.bones[i]的實時矩陣


localToWorldMatrix,就能得到v1,v2的實時M空間位置:

最后再根據(jù)boneWeight混合一下,就能得到最終vertex[0]的骨骼動畫實時M空間位置:



最后對比一下直接從BakedMesh拿到的vertexFinal數(shù)據(jù),如果兩者一樣,說明我們的理解沒

有錯。完整代碼:

看來沒有錯。蒙皮動畫這一套方案,和許多實時圖形學(xué)一樣,由于是基于大量數(shù)據(jù)的編寫結(jié)構(gòu),導(dǎo)致其直接理解起來不是很直觀(如果先入為主 機器人動力學(xué) 的那套FK理論)。但拆開單個看,可以發(fā)現(xiàn)那些基本的setUp都隱藏在各種名詞結(jié)構(gòu)(bindpose,bones,boneIndices,boneWeights)下了。

Unity中的蒙皮動畫原理和代碼測試的評論 (共 條)

分享到微博請遵守國家法律
克拉玛依市| 永年县| 凤翔县| 泸水县| 桐乡市| 深圳市| 集贤县| 德化县| 囊谦县| 长兴县| 鹤山市| 诏安县| 中超| 从化市| 海晏县| 阳西县| 卓尼县| 息烽县| 和林格尔县| 白朗县| 萨嘎县| 满洲里市| 江山市| 淮阳县| 庄河市| 安化县| 垣曲县| 正宁县| 合水县| 昂仁县| 霍邱县| 九龙坡区| 营山县| 光山县| 抚宁县| 博罗县| 衡水市| 两当县| 柏乡县| 新河县| 仙游县|