Needs a lot of cleanup. Data has been de-duplicated, and where identical copies existed, one of them has been replaced with a symlink. Some files have been excluded, such as binaries, installers and debug dumps. Some of that may still be present.
68 lines
No EOL
2.2 KiB
JavaScript
68 lines
No EOL
2.2 KiB
JavaScript
// graspHands.js
|
|
//
|
|
// Created by James B. Pollack @imgntn -- 11/19/2015
|
|
// Copyright 2015 High Fidelity, Inc.
|
|
//
|
|
// Shows how to use the animation API to grasp an Avatar's hands.
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
|
|
//choose a hand. set it programatically if you'd like
|
|
var handToGrasp = 'LEFT_HAND';
|
|
|
|
//this is our handler, where we do the actual work of changing animation settings
|
|
function graspHand(animationProperties) {
|
|
var result = {};
|
|
//full alpha on overlay for this hand
|
|
//set grab to true
|
|
//set idle to false
|
|
//full alpha on the blend btw open and grab
|
|
if (handToGrasp === 'RIGHT_HAND') {
|
|
result['rightHandOverlayAlpha'] = 1.0;
|
|
result['isRightHandGrab'] = true;
|
|
result['isRightHandIdle'] = false;
|
|
result['rightHandGrabBlend'] = 1.0;
|
|
} else if (handToGrasp === 'LEFT_HAND') {
|
|
result['leftHandOverlayAlpha'] = 1.0;
|
|
result['isLeftHandGrab'] = true;
|
|
result['isLeftHandIdle'] = false;
|
|
result['leftHandGrabBlend'] = 1.0;
|
|
}
|
|
//return an object with our updated settings
|
|
return result;
|
|
}
|
|
|
|
//keep a reference to this so we can clear it
|
|
var handler;
|
|
|
|
//register our handler with the animation system
|
|
function startHandGrasp() {
|
|
if (handToGrasp === 'RIGHT_HAND') {
|
|
handler = MyAvatar.addAnimationStateHandler(graspHand, ['isRightHandGrab']);
|
|
} else if (handToGrasp === 'LEFT_HAND') {
|
|
handler = MyAvatar.addAnimationStateHandler(graspHand, ['isLeftHandGrab']);
|
|
}
|
|
}
|
|
|
|
function endHandGrasp() {
|
|
// Tell the animation system we don't need any more callbacks.
|
|
MyAvatar.removeAnimationStateHandler(handler);
|
|
}
|
|
|
|
//make sure to clean this up when the script ends so we don't get stuck.
|
|
Script.scriptEnding.connect(function() {
|
|
Script.clearInterval(graspInterval);
|
|
endHandGrasp();
|
|
})
|
|
|
|
//set an interval and toggle grasping
|
|
var isGrasping = false;
|
|
var graspInterval = Script.setInterval(function() {
|
|
if (isGrasping === false) {
|
|
startHandGrasp();
|
|
isGrasping = true;
|
|
} else {
|
|
endHandGrasp();
|
|
isGrasping = false
|
|
}
|
|
}, 1000) |