• RuntimesGodot
  • 如何将Spine的物理约束整合到Godot中?

我为一个角色设置了物理约束和边界框,但是当我移动该角色场景的根节点(SpineSprite)时,角色并没有产生物理约束效果,同时也不知道如何让该角色的边界框参与碰撞(伤害检测),这个怎么解决?

Related Discussions
...

在Godot中整合Spine的物理约束和边界框,您可以使用SpineBoneNode来驱动或跟随Spine骨骼的变换。SpineBoneNode可以用于将Godot的物理节点(如CollisionShape2D)附加到Spine骨骼上,从而实现物理交互。

  1. 使用SpineBoneNode:确保SpineBoneNodeSpineSprite的直接子节点。您可以在Godot编辑器中右键点击SpineSprite,选择“添加子节点”,然后选择SpineBoneNode。在SpineBoneNode的属性中,选择要跟随或驱动的骨骼。

  2. 附加物理节点:在SpineBoneNode下添加一个CollisionShape2D节点,并设置其形状以匹配您在Spine中定义的边界框。这样,当SpineBoneNode跟随Spine骨骼时,CollisionShape2D也会随之移动,从而参与物理碰撞检测。

  3. 更新模式:确保SpineSprite的更新模式设置为适合您的需求。如果需要与Godot的物理引擎同步,您可以将更新模式设置为Physics,这样SpineSprite会在固定的时间间隔内更新。

通过这些步骤,您可以在Godot中实现Spine角色的物理约束和边界框的碰撞检测。

    Godot貌似不能直接读取边界框作为碰撞箱,并且没办法设置碰撞层和碰撞遮罩,这很麻烦的,我上午在B站上看到Unity运行时里面有布娃娃的特性,我很希望Godot能直接有这个特性,这样我就不用学习Unity然后从零开始自己的游戏项目了
    Spinebot
    除了骨架是SpineSprite节点,其余都是Spinebone节点,我不太确定子级要使用哪个物理体来参与物理碰撞

    而且我还希望这些骨骼被炮弹打到时能有受力反馈