我该如何在Silverlight中操作使用Farseer Physics创建的RagDoll?

3
我制作了一个类似于这个演示中的布娃娃。这个布娃娃将用于回合制RPG游戏,物理学将用于动画,如角色受到伤害、死亡、倒下等。
我现在正在考虑的是如何进行操作,是将布娃娃的头部固定在背景上(让身体悬挂),然后随意摆动其身体部位以模拟拳击等动作(如图1所示),还是使关节僵硬,静态旋转和移动身体部位以执行动作(如图2所示),当角色死亡或执行类似动作时,只需放松关节让布娃娃倒下。或者有更好的方法来做这件事吗?
我对Farseer物理学还很陌生,甚至不知道我提到的是否可能或者难度是否过大。 插图 http://img3.imageshack.us/img3/8681/charactermovementrg5.jpg 请注意,图中的红线代表角色的手臂。
4个回答

1

如果你想要动画效果,我不确定布娃娃是否是正确的选择。但如果你确实想使用它们,我建议将脚锁定在地面上,并在关节处加入一些旋转弹簧,这样当没有力量作用时,身体就会直立站立。然后,如果它受到打击,它会有点弯曲,但应该会在之后反弹回到直立状态(你可能需要帮助它回到原来的位置,例如施加一些力/扭矩,直到它回到你想要的位置)。

对于动画,比如角色出拳,你可以尝试应用弹簧关节(我认为这是它的名称)。将其连接到拳头和目标位置,手臂应该自动移动到那里。你也可以用同样的方法进行踢腿动作,只需释放那只脚的锁定即可。然而,我认为很难让它看起来正确。另一方面,即使它看起来有点滑稽,它也会与其他游戏不同。

如果你有技能,你可能想创建一个动画编辑器,并将动画保存为需要应用于肢体的力和扭矩序列,以便在何时何地将它们放置到正确的位置。


0

我认为更好的方法是播放一个动画精灵,而不是通过关节操作。


0
也许你可以使用一些RotateTransform实现来表达手臂和腿的动作。

0
当然,动画精灵是实现这一目标的最佳且无痛苦的方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接