UE4找ComponentToWorld和骨骼数组

/ 0评 / 10

为什么要找骨骼基址?

找骨骼基址是为了实现绘制骨架和骨骼自瞄,比如瞄准头部骨骼、胸部骨骼。

找骨骼基址

对自己的 Actor 的地址进行结构分析,防止分析错地址最好直接用 APawn,然后根据特征去查找。

ComponentToWorld3x3 结构,最后一行数值不会动,最后一行数值一般是3个固定的数值和 0.00。比如1.00 1.00 1.00 0.002.50 2.50 2.50 0.00 这样的。

根据特征,我们找到了 ComponentToWorld,得到偏移为 Actor.base -> 0x378 -> 0x180,而 0x378 偏移则是 Mesh 的偏移。

ComponentToWorld 和骨骼数组都是在 Mesh 下面,所以我们找到了 ComponentToWorld 就很容易找到骨骼数组。骨骼数组非常容易看出来,在内存中很规律。我们找到了骨骼数组的偏移为 Actor.base -> 0x378 -> 0x698

有时候骨骼数组里的数值并不会发生变动,但还是很规律。比如下面这个 GS:GO 的:

最后用 ComponentToWorld、骨骼数组和摄像机矩阵,结合具体关节的实际偏移,根据固定算法去绘制骨架。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注