spine-unity 2D和3D物理
December 2nd, 2019
我们很高兴地宣布,我们改进了spine-unity运行时中的HingeJoint和HingeJoint2D链!可为你的角色增添更逼真的cape物理效果,让它四处拖动重物,挥舞流星锤等等。
HingeJoint和HingeJoint2D组件用于连接Rigidbody或Rigidbody2D,约束它们使其像有一个铰链连接着那样移动。很适合用于门,也可以用来模仿铰链、钟摆等类似物体。正确设置后,Unity的物理机制会向所有链元素应用动量和碰撞反应。但有一个重要要求是所有链元素必须在同层级平铺,而非构成父子级关系。
以前的功能
你可能注意到这个功能在以前的spine-unity版本中已经存在,也许你试用过,但是无论如何调整Rigidbody
参数,结果都不令人满意。原因在于应用了引力,但是无法捕获骨架或父骨骼的移动,因此缺乏动量。自spine-unity 3.8起,物理装配会遵循动量,翻折骨架时会正确工作。
创建铰链
2D和3D铰链从现有的SkeletonUtilityBone层级创建。
选择第一个SkeletonUtilityBone
链元素,在检视器中选择创建3D铰链
或创建2D铰链
来生成物理装配。选中的元素及所有其SkeletonUtilityBone
子级将变成一个铰链。调整Rigidbody
拖曳和质量参数以获得想要的结果。增加拖曳值将使Rigidbody
移动更慢,制造出沉重或与空气相互作用的效果。
注意链的根节点不再以骨架骨骼为父级,而是放在场景的最高层级。Unity中要求如此才能正确应用动量。不要再将链的根父级重新设置为骨架骨骼,否则链元素将不再受骨架移动的影响!
2D铰链
- 像往常一样创建你的SkeletonUtilityBone hierarchy。
- 在场景面板中选择第一个链元素,在检视器中选择
创建2D铰链
以创建2D铰链装配。 - 这将从前一父级中(例子中为
cape-root
)删除GameObject
链并在场景顶级放置一个新的HingeChain Parent
GameObject
,如上提到的,不要再将此GameObject
的父级重新设置为骨架! - 调整链元素
Rigidbody
拖曳和质量参数以获得你想要的效果。
注意此GameObject
包含两个子对象,名为Hinge Chain
和Hinge Chain FlippedX
,当翻转骨架时,将自动启用和禁用这些GameObject
实例以实现各自的铰链。
3D铰链
- 像往常一样创建你的SkeletonUtilityBone hierarchy。
- 在场景面板中选择第一个链元素,在检视器中选择
创建3D铰链
以创建3D铰链装配。 - 这将从前一父级中(例子中为
cape-root
)删除GameObject
链并在场景顶部层级放置一个新的HingeChain Parent
GameObject
,如上提到的,不要再将此GameObject
的父级重新设置为骨架! - 调整链元素
Rigidbody
拖曳和质量参数以获得你想要的效果。
在翻转骨架时,HingeChain Parent
GameObject
将自动旋转180度以将铰链调整到翻转的骨骼位置。
这些spine-unity运行时的新增功能让物理更容易影响骨架,实现更动感的行为。欢迎在Spine论坛分享你的想法和作品!