【问题标题】:Unity - How do I apply an animation from one game object to another rigged game object?Unity - 如何将动画从一个游戏对象应用到另一个绑定的游戏对象?
【发布时间】:2015-01-05 22:51:30
【问题描述】:

我正在考虑构建一个类似模拟人生的游戏,并且正在考虑如何让角色与任何对象交互,而无需在我决定向图书馆添加新家具和道具时系统地更改角色的代码和预制件。我有一个想法,包括将动画附加到家具本身而不是将其附加到角色(如果游戏库中有很多家具,这将需要大量内存和额外代码!)。我正在考虑它并想到我可以在 Blender 中添加一个具有所需动画但不装配任何特定对象的装备骨架 - 这样我就只有骨骼的动画、位置、旋转和缩放!并且由于角色的绑定与家具动画中骷髅的绑定相同,因此它们可以兼容!
我希望这是有道理的...
问题是我在这个阶段意识到我不太了解动画类,并且我不确定是否/如何使用附加到家具上的动画来让我的角色与之交互......
除了要播放的动画和播放模式之外,Animation.Play() 可以接受多个参数吗?是否可以指定必须播放动画的对象?我说的是从脚本中完成所有这些操作 - 顺便说一下,我是用 C# 编写的……我可能会将脚本附加到相机上,所以我希望脚本不必一定要附加到角色预制件以播放动画......虽然我不介意在必要时在角色脚本中创建一个函数!
我对 Unity 并不陌生,但我主要使用汽车和角色控制器,所以我还没有处理太多动画编码...
我提前感谢您的帮助,并为我奇怪的英语道歉 - 我住在法国! ^^

【问题讨论】:

  • 查看动画类的脚本参考

标签: c# animation unity3d


【解决方案1】:

Mecanim 执行retargeting 的人形动画,因此对于特定情况,您应该能够在不同模型上使用相同的装备和动画剪辑集。

对于抓取家具而言,您不需要操纵物体。您可以使用IK 将角色的手精确地移向目标对象,然后将其作为层次结构中相关关节的父级。

【讨论】:

  • 如果我想从脚本中执行此操作(将附加到家具的动画应用到我的角色),我可以这样做:'Animation.Play(furniture.interactAnimation);'从角色的脚本中,假设有一个家具类,并且我们已经根据角色与之交互的家具设置了该类的实例?
  • “我的角色在家具上附加动画”是什么意思?通常是被操纵和动画的角色。家具有些静态,如果您想抓取,只需将其连接到手关节即可。
  • 我希望在家具预制件中插入一个动画人形绑定,这样如果角色要与之交互,角色就会播放存储在家具预制件中的动画。
  • 假设角色必须执行诸如打开电视或打开抽屉之类的任务。我想如果我将动画存储在角色预制件上,我将无法让他与家具和对象进行顺畅而准确的交互,就好像绑定包含在家具/对象的预制件中一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多