Hello everybody,
We are working on a seated VR solution for a HP VR Headset. We are working with the Portal Mixed Reality from Microsoft.
We start a clean project with the next packages imported:
Microsoft.MixedReality.Toolkit.Unity.Foundation.2.4.0
Microsoft.MixedReality.Toolkit.Unity.Tools.2.4.0
Microsoft.MixedReality.Toolkit.Unity.Extensions.2.4.0
Microsoft.MixedReality.Toolkit.Unity.Examples.2.4.0
When we try to play with some of the examples included with the headset we detect a little flick rotation position.
When we rotate over the Y axis around -118 and -120, the system make a change rotation to around 72.
Please make a look to the video screen recorder:
m9zt37
We try to capture this issue by code … but when we try to relocate the camera … the Head VR movement isn’t fluid… it have some little flickers.
We try to capture this issue with some code to update the camera for the new position without success.
Any idea? any help?
Thanks in advance!
joejo
August 6, 2020, 8:31pm
2
Can you please file a bug for this and post the bug number hear?
Sorry, how can i do that? I’m new trying to report an issue.
Thanks in advance!
Ok we got it ! reporting… Thanks!
Hello we report the bug at:
ref number 1268878
We hope to have a fast solution.
Thanks in advance.
We try to “make it working” with a very dirty way…
We attach the code for a new Tracked Pose Driver:
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
#if ENABLE_VR || ENABLE_AR
using UnityEngine.XR;
using UnityEngine.Experimental.XR.Interaction;
#endif
#if ENABLE_AR
using UnityEngine.XR.Tango;
#endif
namespace UnityEngine.SpatialTracking
{
public class TrackedPoseDriverPPT : TrackedPoseDriver
{
private bool firstLayer;
private Quaternion lastRotation;
// [SerializeField]
// TrackingType m_TrackingType;
protected override void SetLocalTransform(Vector3 newPosition, Quaternion newRotation, PoseDataFlags poseFlags)
{
/* if ((m_TrackingType == TrackingType.RotationAndPosition ||
m_TrackingType == TrackingType.RotationOnly) &&
(poseFlags & PoseDataFlags.Rotation) > 0)
{
transform.localRotation = newRotation;
}*/
/* if ((m_TrackingType == TrackingType.RotationAndPosition ||
m_TrackingType == TrackingType.PositionOnly) &&
(poseFlags & PoseDataFlags.Position) > 0)
{
transform.localPosition = newPosition;
}*/
//newRotation = GetComponent<TrackedPoseDriver>().transform.rotation;
if (firstLayer)
{
firstLayer = false;
lastRotation = newRotation;
}
bool issueActivated = false;
if (70 < newRotation.eulerAngles.y && newRotation.eulerAngles.y < 80)
{
if (230 < lastRotation.eulerAngles.y && lastRotation.eulerAngles.y < 250)
{
//Debug.Log("ISSUE!");
issueActivated = true;
}
}
if (!issueActivated)
{
//GetComponent<TrackedPoseDriver>().enabled = false;
transform.rotation = newRotation;// Quaternion.Lerp(transform.rotation, newRotation, 1f);
lastRotation = newRotation;
}
//else
//{
//if (!GetComponent<TrackedPoseDriver>().enabled)
//GetComponent<TrackedPoseDriver>().enabled = true;
//}
}
}
}
Sorry i don’t know if the bug number is this one : 1268878
Please can you tell us what we can do?
Thanks in advance.
Hello any kind of idea or solution?
We need to try our application on production…
Late follow-up, but this sounds like a bug that has been fixed for a while now, if you’re able to update your Unity and Windows XR Plugin versions to the latest.
1 Like
Hello,
Thanks for your answer! your right… this issue / bug has been fixed.
Best,