The forum on this site is closed for new comments and posts. Continue the conversation in the new forum, and learn more here.

"Head Nod" - Trigger action for face

  • Hi Gio! Great question. I've created a script that checks to see if the user has nodded their head. Follow these steps to get it working. 

    • Create a New Project
    • Add a Head Binding object (Objects Panel -> Add New -> Head Binding)
    • Add a new empty object (Objects Panel -> Add New -> Empty Object)
    • Create a new script (Resources Panel -> Add New -> Script)
    • Attach this new script to the new empty object. One easy way to do this is to select the empty object and drag and drop the script onto it in the inspector panel
    • Add the below code to the new script
    • Then, in the inspector, set the Head Binding Object property to the Head Binding you created
    • You'll now notice anytime you nod that "User Nodded" is printed out to the Logger
    • Now, add any logic you want to have happen into the nodded() function
    // -----JS CODE-----
    // @input SceneObject headBindingObject
    // @input int numNodSamples = 10
    // @input float nodThreshold = 0.15

    var nodSamples = [];

    function update (eventData)
    {
    var headTransform = script.headBindingObject.getTransform();
    var headForward = headTransform.forward;
    var headForwardNoY = new vec3( headTransform.forward.x, 0.0, headTransform.forward.z )
    var dot = headForwardNoY.dot( headForward );

    if( nodSamples.length >= script.numNodSamples )
    {
    nodSamples.shift();
    }
    nodSamples.push( dot );

    checkForNod();
    }
    var event = script.createEvent("UpdateEvent");
    event.bind( update );

    function checkForNod()
    {
    var latestNodIndex = nodSamples.length - 1;
    var latestNod = nodSamples[latestNodIndex];
    for( var i = latestNodIndex - 1; i > 0; i-- )
    {
    var diff = latestNod - nodSamples[i];
    if( diff < -script.nodThreshold )
    {
    nodded();
    nodSamples = [];
    break;
    }
    }
    }

    function nodded()
    {
    print( "User Nodded" );
    }
    Comment actions Permalink
  • Hi Travis!... Thank you so much!.. Much appreciated!.. :)

    Comment actions Permalink
  • why is this function only triggered by head up?And head down didn't?

    Comment actions Permalink

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!