Scenekit 骨骼到几何体的偏移

问题描述

我正在创建一个 SceneKit 游戏,其中有 2 个主要角色可供用户选择(男性和女性)

两者都使用相同的装备(骨骼),因此相同的动画在两个角色上的效果相同,例如jumping.scn 可以应用于两个角色并正确地为它们设置动画

我还尝试添加他们可以在游戏过程中挑选的服装,例如眼镜。 但它们似乎并没有平等地出现在角色上,例如在男性角色上,它们出现在正确的位置,但在女性角色上,它们出现在她头部的中间(z 轴)

眼镜、角色和动画都是在外部 3d 建模软件中创建和装配的,并通过单独的 .scn 文件加载到游戏中

眼镜与主角共享相同的skinner.skeleton并完美地跟随角色动画,它们只是出现在女性身上的错误位置。

有没有办法可以单独改变眼镜相对于角色骨架的偏移,例如

if (maleCharacter) {
   glasses.zOffsetFromBoundBone = 0
}else{
   glasses.zOffsetFromBoundBone = 1
}

我尝试通过 SCNVector3 更改眼镜节点的位置,但没有效果(我假设是因为它们绑定到骨架),但是如果我尝试移动它们绑定到的骨骼的位置,它会产生影响该骨骼的所有子节点。

我知道我可以为眼镜创建 2 个单独的模型,一个用于男性,一个用于女性,但这似乎很浪费。

如有任何帮助,我们将不胜感激。

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)