如何训练神经网络以基于一组训练手部运动产生运动?

时间:2016-09-24 16:00:47

标签: unity3d neural-network game-physics

我正在Unity制作一个游戏,其中涉及动画由物理决定的动物。例如,为了移动生物的肢体,我可以将力施加到与其相关联的刚体上。我知道如何通过脚本以编程方式应用力来创建动作,但我想创建更复杂和有机的动作,并认为我可以使用神经网络来做到这一点。

我希望每个生物都有一种独特的移动方式。我想首先使用我的手(使用Leap Motion控制器)手动操作这些生物,然后让神经网络根据我用手做的训练产生新的动作。

更具体地说,当我移动手时,我的手动木偶操作设置将对生物的刚体施加力。因此,如果我抬起手指,系统会对映射到我手指的肢体施加一系列向上的力。当我在操纵这个生物时,NN会为每个刚体接收Vector3力。在某种程度上,这与基于文本语料库生成新文本的任务相同,但在这种情况下,我的输入是力而不是字符串。

根据训练集,NN是否可以为角色(施加到肢体的力量)生成动作来模仿我用手做的动作?

我对神经网络没有那么多经验,但我很想学习,特别是对于这个项目。很高兴知道在Unity中完成的类似项目,或者我可以使用的相关库,这将简化实现。另外,如果有什么我可以澄清的话,请告诉我!

1 个答案:

答案 0 :(得分:1)

不是答案,但不适合评论

我不确定您想要应用于训练模型的策略是正确的。

我会选择强化学习方法(你可以查看this question更多关于它的信息),例如,使用x轴上生物的质心作为适应度所行进的距离。如果这导致奇怪的行为(like this well known robot),你可以,例如,考虑到在y轴和z轴(仍然是CoM)上行进的距离惩罚你的个人的策略,试图让那些保持CoM的人同一架飞机。

如果不确切知道自己想要达到什么目标,很难给出更多建议。虽然,如果你不是只看 基于神经网络的技术,你可能需要查看this really great paperhere是他们结果的视频)。