Is it possible to restrict the Device Tracking "Rotation" to Horizontal rotation only?

  • Hi Weston,

    There isn't a built in way to do this through the Device Tracking component, but it's possible to do it through scripting. You can add a Device Tracking component to an empty object, and use that object just for reading device rotation.

    • First, create an empty SceneObject and add a Device Tracking component to it. Set the Tracking Mode to Rotation.
    • Create a second new SceneObject as a child of your main camera, and add a Script Component to it.
    • Create a new script with the following code:
    //@input SceneObject rotationTarget

    // Execute in LateUpdate to make sure the other object's been rotated this frame
    script.createEvent("LateUpdateEvent").bind(function(){
    // Get the forward vector of rotationTarget
    var forward = script.rotationTarget.getTransform().forward;

    // Flip the forward vector
    forward.z *= -1;

    // Zero out the vertical offset to constrain rotation to Y axis
    forward.y = 0;

    // Normalize the vector
    forward = forward.normalize();

    // Create new rotation using the vector
    var rot = quat.lookAt(forward, vec3.up());

    // Apply the rotation to this SceneObject
    script.getTransform().setWorldRotation(rot);
    });
    • Add the new script to the Script Component you just created, making sure it's set to the "Initialized" event.
    • Set "Rotation Target" to the first object you created, the one with the Device Tracking component on it.
    • Add whatever objects you want rotated as children to the second object.
    • You should now see them rotating along with your phone, but only on the horizontal axis.

    Let me know if you have any more questions!

    Comment actions Permalink
  • Awesome! Works wonderfully. Thank you for your help Jacob!

    :)

    Comment actions Permalink
Have a comment?

Please sign in to leave a comment.

We're here to help! We just need a little bit of information...

What system are you using?

Have you downloaded the latest version of Lens Studio?

Please download the latest version of Lens Studio. If you still run into this issue, please come back and report it!

Is this issue causing Lens Studio to crash?

What system do you run Lens Studio on?

Version

Graphics

Follow the next steps to help us solve your issue:

  • Copy and paste this text into your TerminalCommand Window
    open ~/Library/Preferences/Snap/Lens\ Studio/ %LOCALAPPDATA%\Snap\Lens Studio Copy Text
  • Press ReturnEnter to run the command. The Lens Studio folder will automatically open
  • Prepare to upload your files: zip the "Log" Folder by right-clicking and choosing "compress."
    Locate the Log.txt file right above it.

    Attach a screenshot of the issue:

Name:

Email:

What is this most relevant to?

Please enter a brief description of your issue:

Thanks for submitting this issue.

Unfortunately, it's likely due to the operating system or hardware you're using – since they don't meet the system requirements for Lens Studio.

Still, we hear you loud and clear, and are logging the issue in case there's ever a workaround we can provide!

Minimum Requirements

Operating System: Windows 10 (64 bit); MacOS 10.11+

Hardware: Minimum of Intel Core i3 2.5Ghz or AMD Phenom II 2.6Ghz with 4 GB RAM; Intel HD Graphics 4000 / Nvidia GeForce 710 / AMD Radeon HD 6450 or better; screen resolution of 1280x768 or higher

We'll try to resolve this issue as soon as possible. Thanks for letting us know about it!

Keep an eye out for a followup email from us. We may have a couple more questions for you, or we might already have a solution to offer.

Happy creating!