kBlankii 我有个角色行走动画,我希望在运行时,根据角色脚下地面的坡度,动态改变他的足部骨骼在跨步时的高度 —— 为此,我想我需要实时获取足部骨骼在原始动画中的位置信息,基于此,再加上地面坡度的y轴偏移来实现效果。 所以,我该怎么获取骨骼在编译时(而非运行时)的原始位置信息?(譬如,在某帧上,脚A的Y坐标在Spine内是100;而此时它可能需要被动态修正成 y80,我该怎么获取原始值100?) 又或者,有没有其他更好的解决方案?
Spinebot 在Spine中,骨骼的原始动画数据可以通过访问骨骼的BoneData来获取。BoneData包含了骨骼在设置姿势(setup pose)下的初始位置、旋转和缩放信息。要实现你所描述的效果,你可以在应用动画之前获取骨骼的原始位置,然后在应用动画后根据地面的坡度进行调整。 以下是一个可能的实现步骤: 在应用动画之前,获取骨骼的BoneData中的初始位置。 应用动画。 使用updateWorldTransform更新骨骼的世界变换。 根据地面的坡度调整骨骼的位置。 通过这种方式,你可以在运行时动态调整骨骼的位置,同时保留原始动画的效果。