Created
September 5, 2019 20:54
-
-
Save hyperlogic/62a3ac186f8768c81aa2f8768936fcd6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Identifier for the animation state handler, we use this to remove the handler at the end of the script. | |
var animHandlerId; | |
var testTrigger = false; | |
var additiveBlendAlpha = 0.0; | |
var lookLeftRightAlpha = 0.0; | |
var lookUpDownAlpha = 0.0; | |
// Called every frame with the current value for the requested anim vars. | |
function animHandler(props) { | |
props.additiveBlendAlpha = additiveBlendAlpha; | |
props.lookAroundAlpha = {x: lookLeftRightAlpha, y: lookUpDownAlpha, z: 0}; | |
props.testTrigger = testTrigger; | |
// clear triggers | |
testTrigger = false; | |
return props; | |
} | |
var ANIMVARLIST = [ | |
"additiveBlendAlpha", | |
"lookAroundAlpha", | |
"testTrigger" | |
]; | |
function init() { | |
var URL = "https://gist.githubusercontent.com/hyperlogic/651237c9c084c898f47d6d4e47e2dcc0/raw/778bbc6b9dd11a77d92ea1b49b4fef2a300f9f39/directional-blend-test.json"; | |
//var URL = "file:///c:/msys64/home/ajthy/code/hifi/interface/resources/avatar/directional-test.json"; | |
MyAvatar.setAnimGraphUrl(URL); | |
animHandlerId = MyAvatar.addAnimationStateHandler(animHandler, ANIMVARLIST); | |
Controller.keyPressEvent.connect(keyPressHandler); | |
} | |
var MIN_ADDITIVE_BLEND_ALPHA = 0; | |
var MAX_ADDITIVE_BLEND_ALPHA = 1; | |
var DELTA_ADDITIVE_BLEND_ALPHA = 0.05; | |
var MIN_LOOK_LEFT_RIGHT_ALPHA = -1; | |
var MAX_LOOK_LEFT_RIGHT_ALPHA = 1; | |
var DELTA_LOOK_LEFT_RIGHT_ALPHA = 0.05; | |
var MIN_LOOK_UP_DOWN_ALPHA = -1; | |
var MAX_LOOK_UP_DOWN_ALPHA = 1; | |
var DELTA_LOOK_UP_DOWN_ALPHA = 0.05; | |
function keyPressHandler(event) { | |
if (event.text === "t") { | |
testTrigger = true; | |
} else if (event.text === ",") { | |
additiveBlendAlpha = additiveBlendAlpha - DELTA_ADDITIVE_BLEND_ALPHA; | |
if (additiveBlendAlpha < MIN_ADDITIVE_BLEND_ALPHA) { | |
additiveBlendAlpha = MIN_ADDITIVE_BLEND_ALPHA; | |
} | |
} else if (event.text === ".") { | |
additiveBlendAlpha = additiveBlendAlpha + DELTA_ADDITIVE_BLEND_ALPHA; | |
if (additiveBlendAlpha > MAX_ADDITIVE_BLEND_ALPHA) { | |
additiveBlendAlpha = MAX_ADDITIVE_BLEND_ALPHA; | |
} | |
} else if (event.text === "[") { | |
lookLeftRightAlpha = lookLeftRightAlpha - DELTA_LOOK_LEFT_RIGHT_ALPHA; | |
if (lookLeftRightAlpha < MIN_LOOK_LEFT_RIGHT_ALPHA) { | |
lookLeftRightAlpha = MIN_LOOK_LEFT_RIGHT_ALPHA; | |
} | |
} else if (event.text === "]") { | |
lookLeftRightAlpha = lookLeftRightAlpha + DELTA_LOOK_LEFT_RIGHT_ALPHA; | |
if (lookLeftRightAlpha > MAX_LOOK_LEFT_RIGHT_ALPHA) { | |
lookLeftRightAlpha = MAX_LOOK_LEFT_RIGHT_ALPHA; | |
} | |
} else if (event.text === "i") { | |
lookUpDownAlpha = lookUpDownAlpha - DELTA_LOOK_UP_DOWN_ALPHA; | |
if (lookUpDownAlpha < MIN_LOOK_UP_DOWN_ALPHA) { | |
lookUpDownAlpha = MIN_LOOK_UP_DOWN_ALPHA; | |
} | |
} else if (event.text === "o") { | |
lookUpDownAlpha = lookUpDownAlpha + DELTA_LOOK_UP_DOWN_ALPHA; | |
if (lookUpDownAlpha > MAX_LOOK_UP_DOWN_ALPHA) { | |
lookUpDownAlpha = MAX_LOOK_UP_DOWN_ALPHA; | |
} | |
} | |
} | |
function shutdown() { | |
MyAvatar.removeAnimationStateHandler(animHandlerId); | |
MyAvatar.restoreAnimation(); | |
var ORIG_URL = "qrc:///avatar/avatar-animation.json"; | |
MyAvatar.setAnimGraphUrl(ORIG_URL); | |
} | |
Script.scriptEnding.connect(shutdown); | |
init(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment