UMA get access to Animator to set values

I have a simple setup with UMA DynamicAvatar with its racial animations rolling OK when deployed to scene.

For background:

I have its controller and movement dealt with “NetworkController”, that is pretty simple controller derived from NetworkBehavior. I used standard asset controllers initially, but stripped most of them away.

The problem:

I see my UMA animating itself, but I don’t know how to get access to its Animator (or how to deploy an Animator to the character properly to connect to the UMA).

So effectively I have no means to drive movement/value changes to the Animator/AnimationController to change the animations effectively.

So far I’ve tried:

Access Racial animations and so forth, I do get access to RuntimeAnimationController, however it seems to be just a data placeholder, at least I don’t get to drive the value changes through it. I have also tried to introduce Animator-component to the character, which I can instantiate, but it seems to be disconnected from the actual UMA character animations.

I’m certain the solution is quite simple, but I struggle finding the solution especially when trying to connect with UMA’s existing animations and drive the values to them.

I played around and got solution to this. The practice to do this goes as following:

  1. The runtime creates Animator so do not add any additional AnimationControllers or Animators to the character
  2. Inject custom script to the GameObject containing the UMA Dynamic Avatar
  3. Get access after UMA is initiated, in Update; GetComponent()