2015-03-16 4 views
3

Я пытаюсь управлять анимацией Unity3D Mecanim на основе живых данных от Leap Motion Controller. У меня есть 2 слоя, маскирующих все, кроме рук в Mecamim Human rig, поверх базового слоя, управляющего остальной частью буровой установки. Оба «ручных слоя» ссылаются на один и тот же клип анимации.Set Unity3D AnimationClip Свойство без сброса аниматора

Когда я установил кривое свойство в клипе с помощью:

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

Всего воспроизводимого в настоящее время состояния в аниматор сбросить их воспроизведения создавая бесполезное нервное эффект.

Я получаю ссылку на клип с помощью свойства аниматора runtimeAnimatorController, поэтому у меня есть ссылка на экземпляр среды выполнения клипа, а не на ресурс.

Я хотел бы избежать перехода от переопределения Mecanim в LateUpdate() из-за вероятности условий гонки с другим кодом LateUpdate-ing и желая воспользоваться инструментами анимации Mecanim в остальной части нашего конвейера.

Есть ли способ, с помощью которого я могу установить свойство в анимационном клипе во время выполнения без сброса состояния воспроизведения? В частности, мне нужно установить значения мышц Mecanim Humanoid Avatar.

ответ

0

Я был в контакте с людьми поддержки Unity, и в текущем API (5.0.x) фактически невозможно установить кривую свойства в клипе во время запуска этого клипа без сброса аниматора ,

В настоящее время я изучаю несколько способов обойти это ограничение. Будет обновлен этот ответ, когда я выясню, как мы справимся.