Software Archive
Read-only legacy content
17061 Discussions

A quick Unity tip about Virtual World Boxes

MartyG
Honored Contributor III
391 Views

Hi everyone,

I thought I'd pass on a very useful discovery about controlling complex interactions with objects in Unity with the TrackingAction script.

If you find that your objects are moving jerkily and unpredictably or tearing themselves away from objects that they are attached to as child objects, a way to fix this is to go into the Inspector panel settings for a particular TrackingAction script and set all 'Virtual World Box' and 'Real World Box' values to zero.  I have consistently found today that wildly misbehaving objects suddenly become sweet and finely controllable pussycats after doing this.

Good luck!.  

0 Kudos
5 Replies
Colleen_C_Intel
Employee
391 Views

Thanks Marty!  Will add this to the Tips blog, if that's ok?

0 Kudos
MartyG
Honored Contributor III
391 Views

Yep, that's totally fine Colleen, thanks!   ^_^

0 Kudos
MartyG
Honored Contributor III
391 Views

Another stability tip I'd like to pass on is that the less finger joints you track simultaneously, the more stable your hand will be and the less the fingers (or whatever object has a TrackingAction script in) will twitch.

You can actually make a virtual hand's four fingers.bend realistically and stably by only using three tracked joints.

The only fingers that needs its own unique joint tracking that will allow them to be bent individually without the other fingers bending is the index finger and middle finger (the ones that for the peace-V).   When you try to bend the Ring and Pinky fingers on the human hand, it is extremely hard to do so without both of those fingers bending at the same time.  

The other factor to bear in mind is that the amount of degrees that a particular section of human finger can rotate by is determined not by the joint but by the length of the section.  The finger-tip of the middle finger, for example, can bend less than the finger's middle section, and the middle section bends less than the base section.  

What this means is that if you have a TrackingScript in each joint in your virtual finger then all of them can be set to track the same joint (e.g JT1) and the fingers will still bend as though you had been tracking every specific joint in that finger with JT1, JT2 and Tip..   

In summary, you could set your fingers up like this:

Index: Joint_Index_JT1 in all joints

Middle:  Joint_Middle_JTI in all joints.

Ring and Pinky fingers: Ring_JT1 in all joints

0 Kudos
Cole_L_
Beginner
391 Views

Hello, I realize this is an old post, but on the off chance someone might see, I noticed that when I set the virtual and real world boxes to zero, the independent animation for that object stops. I am trying to make an avatar that will match the facial movements of a user, and so far the scripted bones in the model become wildly skewed from the rest of the model when you move your face from its original position. Any fixes? Thanks!

0 Kudos
MartyG
Honored Contributor III
391 Views

Hi Cole!  Yes, you're right that this is an old article, and it may be that age which is tripping you up.  At the time that this article was written, setting the Virtual and Real World boxes to 0 was the best way to overcome instability.  However, the RealSense SDK has advanced a lot since then and that particular instability is much reduced.  It's usually totally fine now to use the default values of 100, 100, 100 for the Virtual World and Real World settings.  Best of luck!

0 Kudos
Reply