Drag n Drop integration

Thanks for bringing this cool device to life!
In my case I am more an artist than a coder, so I’d be endlessly grateful if the integration would be easier.
I just want to have a body in VR. Would be cool, if one could just drop in a prefab into the scene and it’s done.
Today I had a look into the scripts and it looked like some days of work to understand whats going on…
Any plans for an easier setup, or even steamVR integration?

Thanks a lot
Mike

Thanks!
We are preparing easy to use prefabs for new SDK version. Just wait for new version.
VicoVR integration will look like this: youtube.com/watch?v=Re-G5i5RCRw

That’s great news Alexey!
Adding a normal avatar instead of stickman would be cool too (yeah I understand that you would recognize some missing joint rotations)
Are we talking months or days?

I think it will be available in couple of weeks.

Hi Michael!
We have done with Preview version of easy to integrate prefabs. You can check it out in post attachment.
NuitrackVRPrefabs_Preview.zip (320 KB)

Hi Alexey,

the integration worked technically, but there’s still room for inprovement:
I don’t understand where I appear in VR. I want to make the avatar appear in a hot balloon basket, but it’s only try and error to see where the avatar gets positioned once vicoVR takes control. Generally, the approach of generating everything via script during runtime is a big hassle since you can’t debug or simply try stuff in the editor.
The GUI (calibration text) is funky, try rotating 180 and see what the text makes with your eyes.

I’d like to have only positional head tracking and hands (without the rest of the skeleton, but I didn’t get it to work:

if (leftHandPrefab != null)
{
  GameObject joint = (GameObject)Instantiate(leftHandPrefab, Vector3.zero, Quaternion.identity);
  joints.Add(nuitrack.JointType.LeftHand, joint);
  joint.transform.parent = skeletonRoot.transform;
  joint.SetActive(false);
}

This didn’t work…
Can you help?

Thank you Alexey

Michael

Hi Michael,

in your case it would probably be easier to get info about 4 joints you need:

  CurrentUserTracker.CurrentSkeleton.GetJoint(nuitrack.JointType.Torso);
  CurrentUserTracker.CurrentSkeleton.GetJoint(nuitrack.JointType.LeftHand);
  CurrentUserTracker.CurrentSkeleton.GetJoint(nuitrack.JointType.RightHand);
  CurrentUserTracker.CurrentSkeleton.GetJoint(nuitrack.JointType.Head);

and use offsets of head and hands joints from torso joint as positional tracking (if I understood correctly, your avatar can’t really move in a hot balloon basket).

Thanks Yuriy,

in fact I need to have all the positional tracking volume I can get since I want to walk inside the basket, break a side of it and fall out or go out on a woodplank (so not only seeing hands but feet would be good too).

My codesnippet was adapted from the prefab preview that Alexey posted. It was taken from the part that assigned the joint prefab to all joints. I hoped a public gameobject variable for the hands and the above snippet would work, but I don’t see the assigned object inside VR. Can you check my code? leftHandPrefab is the object that should be mounted to the hand joint.
Using the skeletal structure for the hands would allow to have the arms at least rotated correctly (the hands aren’t tracked), so you could shoot in a certain direction. Using the offset between torso and hand would only give a position without rotation info.

Btw, the Vico sensor does all the skeletal calculations and send them no matter if I only use head and hands in VR, right? So there’s no performance gain by stripping down the skeleton?

There’s something fishy with the nuitrack scripts. When I deactivate everything VicoVR in my scene, rotation behaves normally on a GearVR. When I have all Vico scripts active (recenter, Calibration Canvas, Nuitrack scripts), the eye focus (convergence?) changes when you turn. After 180 your eyes can’t read the calibration text anylonger. I’ll try to track it down by going through the scripts and see which one is responsible.

If you want to manually add gameobjects as joints just make sure to remove respective nuitrack.JointType values from nuitrack.JointType[] jointsInfo and connections that were using them from nuitrack.JointType[,] connectionsInfo. Also there is no need to instantiate those custom joints (we used instantiation of prefabs in SkeletonAvatar because it’s easier to create all gameobjects for joints and connections and iterate over them then drag and drop 30+ elements), just add your gameobjects to scene and add serialized fields for them in script, so you can add them to joints dictionary like this:

joints.Add(nuitrack.JointType.LeftHand, lefthandObject); lefthandObject.transform.parent = skeletonRoot.transform; lefthandObject.SetActive(false);About GearVR problem: we had same effect when we unchecked UsePositionTracking flag on OVRCameraRig prefab. Basically, that flag controls positions of eyes, so if it’s unchecked then 180 degrees turn will result in eyes staying in same places but rotated (left eye view will be right, and vice versa). Our scripts do not modify that flag. Tested with both native unity VRsupported mode and with OVRplugin. If that flag is on then everything looks fine.

Just wondering, has there been any update to the VR Prefabs package linked here from several months ago? Looking to integrate VicoVR into a project and would love to have some prefabs to make the process go faster!

Hi delphinius81, we plan to release new SDK version (with API extensions, prefabs and debugging feature - stream data from VicoVR directly to unity-editor) in next month.