如何在Silverlight中操作使用farseer物理学制作的RagDoll?

时间:2009-02-18 17:51:14

标签: wpf silverlight physics farseer

我做了一个类似于demo中的布娃娃的布娃娃。这个布娃娃将用于转弯的RPG游戏,其中物理将用于动画,如角色受伤,死亡,摔倒等。

我现在正在思考的是,应该如何解决这个问题,我应该将头部的布娃娃贴在背景上(让身体悬空)并且基本上围绕身体部位投掷,以模拟冲孔等(如图1所示,或加强关节并静态旋转和移动身体部位以采取行动(如图2所示),当涉及到角色死亡(或类似动作)时,只需松开关节,让布娃娃掉下来。或者有更好的方法来做这件事吗?

我是物理学家的新手,甚至不知道我提到的是否可能或者极难做到。

Illustration http://img3.imageshack.us/img3/8681/charactermovementrg5.jpg

请注意,图中的红线代表角色的手臂

4 个答案:

答案 0 :(得分:1)

如果你想要动画,不确定ragdolls是否可以去这里。但是如果你确实想要使用它们,我会将脚锁在地板上并在关节处有一些旋转弹簧,这样当没有施加力时,身体就会直立。然后,如果它被击中,它会有点弯曲,但之后应该反弹到它的站立状态(你可能必须在回来的路上帮助它,例如施加一些力/力矩,直到它回到你想要它的位置)。

对于动画,例如角色打孔,你可以使用弹簧关节(我认为这就是名字)。将它连接到拳头和目的地,手臂应自动移动到那里。你也可以踢一脚,只需释放那只脚上的锁。但是,我认为可能很难让它看起来正确。另一方面,它看起来对其他游戏来说是独一无二的,即使它看起来有点滑稽。

如果你很熟练,你可能想要创建一个动画编辑器,并将动画保存为需要应用于四肢的一系列力和扭矩,以便将它们带到应该的位置和时间。

答案 1 :(得分:0)

我认为更好的方法是使用动画精灵,而不是通过联合操作。

答案 2 :(得分:0)

也许你可以使用一些 RotateTransform 实现来清晰地表达手臂和腿部。

答案 3 :(得分:0)

当然,动画精灵是最好的,无痛的方式。