首页 文章

设置Unity3D AnimationClip属性而不重置动画师

提问于
浏览
3

我正在尝试基于Leap Motion Controller的实时数据来驱动Unity3D Mecanim装备的动画 . 我有2层遮住了除了Mecamim Human钻机中的手之外的所有东西,在基础层顶部驱动钻机的其余部分 . 两个“手层”都引用相同的动画片段 .

当我使用以下方法设置剪辑中属性的曲线时:

leftClip.SetCurve ("", typeof(Animator), "LeftHand.Index.1 Stretched", new AnimationCurve (new Keyframe (0, CurrentPosition), new Keyframe (0.5f, CurrentPosition)));

动画中所有当前播放的状态都会重置其播放,从而产生相当无助的抖动效果 .

我'm getting a reference to the clip via the animator' s runtimeAnimatorController 属性所以我有一个对剪辑的运行时实例的引用,而不是资产 .

我希望避免在 LateUpdate() 中覆盖Mecanim的路线,因为其他LateUpdate代码存在竞争条件的可能性,并希望在我们的其他管道中利用Mecanim的动画工具 .

有没有一种方法可以在运行时在动画片段中设置属性而无需重置状态播放?具体来说,我需要设置Mecanim Humanoid Avatar肌肉值 .

1 回答

  • 0

    我一直与Unity的支持人员保持联系,实际上在当前的API(5.0.x)中不可能在没有Animator重置的情况下在该剪辑的运行期间设置剪辑中属性的曲线 .

    我目前正在探索一些解决此限制的方法 . 当我弄清楚我们将如何处理它时,会更新这个答案 .

相关问题