No announcement yet.

Is it possible to use RUIS avatar scaling system as an isolated component?

  • Filter
  • Time
  • Show
Clear All
new posts

  • Is it possible to use RUIS avatar scaling system as an isolated component?


    We are using OptiTrack's mocap system to stream humanoid skeletons into Unity. Unfortunately, I've been having issues matching the avatar model scales to those of the users. It seems that the "scale body" and "scale limbs" option from RUIS skeleton controller are the perfect solution to my problems. However, all of RUIS code seems to be tightly coupled to its other components so I haven't been able to isolate it and run it into newer versions of Unity.

    Could you point me in the right direction to be able to isolate this function from RUIS or would you happen to know of any asset within the Unity store that does this kind of thing?

    Thank you so much!

  • #2

    Yes, enabling the "Scale body" and "Scale limbs" options from RUISSkeletonController will rescale the avatar model by each body segment according to the distances between joint positions from your utilized mocap system. When using RUIS 1.21 I recommend that you keep the "Length Only" option disabled, as it still has bugs remaining to hand & feet rotations that are apparent with extreme arm/leg thickness differences. Those bugs should be fixed in the next version, coming out some time this spring.

    Right now the easiest thing for you is to use Unity 5.6.5 or 5.6.6. We have actually used OptiTrack 1.0.1 Unity plugin together with RUIS and it worked fine.

    I recommend that you try using OptiTrack Unity Plugin 1.1, which should work with Unity 5.6.6 and should be compatible with recent Optitrack Motive versions.

    Let me know if you absolutely need to use Unity 2017 or later and I'll point you to the right direction regarding isolating the functionality from RUIS Skeleton Controller. I believe this would be a lot of work.

    I do not know of other Unity assets that have the same avatar rescaling functionality as RUIS.


    • #3
      Hello ttakala,

      Thank you so much for your quick response!

      Sadly, we need to use at least Unity 2017 since other packages we are also using don't support lower versions. However, I've been playing with RUIS features using Unity 5.6 and it was very easy to set up the relationship between OptiTrack streamed objects and the character skeleton, it had some weird bugs deforming and rotating some limbs for some skeletons but my guess is that it is because I did not set it up properly and was doing it on the fly.

      It is my guess that most of the code that does this scaling is within the RUIS Skeleton Controller script, but before diving into it I would like to confirm my mental model regarding how you achieved this: At the most basic level, the scaling is achieved by adding to each bone of the skeleton of the model the position and rotation offset it has to their corresponding tracked objects each frame before setting the human pose in the mecanim retargeting?

      Thank you so much again for your help!


      • #4
        I just sent you an email.