From f7cd4d78ad35293c93a322946637ab7807c39feb Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Tue, 3 Jun 2014 17:02:52 -0700 Subject: [PATCH 1/5] Fix crazylegs.js to newer joint names --- examples/crazylegs.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/examples/crazylegs.js b/examples/crazylegs.js index b0f8e937bc..7a6fb68520 100644 --- a/examples/crazylegs.js +++ b/examples/crazylegs.js @@ -20,21 +20,21 @@ var jointMappings = "\n# Joint list start"; for (var i = 0; i < jointList.length; i++) { jointMappings = jointMappings + "\njointIndex = " + jointList[i] + " = " + i; } -print(jointMappings + "\n# Joint list end"); +print(jointMappings + "\n# Joint list end"); Script.update.connect(function(deltaTime) { cumulativeTime += deltaTime; - MyAvatar.setJointData("joint_R_hip", Quat.fromPitchYawRollDegrees(0.0, 0.0, AMPLITUDE * Math.sin(cumulativeTime * FREQUENCY))); - MyAvatar.setJointData("joint_L_hip", Quat.fromPitchYawRollDegrees(0.0, 0.0, -AMPLITUDE * Math.sin(cumulativeTime * FREQUENCY))); - MyAvatar.setJointData("joint_R_knee", Quat.fromPitchYawRollDegrees(0.0, 0.0, - AMPLITUDE * (1.0 + Math.sin(cumulativeTime * FREQUENCY)))); - MyAvatar.setJointData("joint_L_knee", Quat.fromPitchYawRollDegrees(0.0, 0.0, - AMPLITUDE * (1.0 - Math.sin(cumulativeTime * FREQUENCY)))); + MyAvatar.setJointData("RightUpLeg", Quat.fromPitchYawRollDegrees(AMPLITUDE * Math.sin(cumulativeTime * FREQUENCY), 0.0, 0.0)); + MyAvatar.setJointData("LeftUpLeg", Quat.fromPitchYawRollDegrees(-AMPLITUDE * Math.sin(cumulativeTime * FREQUENCY), 0.0, 0.0)); + MyAvatar.setJointData("RightLeg", Quat.fromPitchYawRollDegrees( + AMPLITUDE * (1.0 + Math.sin(cumulativeTime * FREQUENCY)),0.0, 0.0)); + MyAvatar.setJointData("LeftLeg", Quat.fromPitchYawRollDegrees( + AMPLITUDE * (1.0 - Math.sin(cumulativeTime * FREQUENCY)),0.0, 0.0)); }); Script.scriptEnding.connect(function() { - MyAvatar.clearJointData("joint_R_hip"); - MyAvatar.clearJointData("joint_L_hip"); - MyAvatar.clearJointData("joint_R_knee"); - MyAvatar.clearJointData("joint_L_knee"); + MyAvatar.clearJointData("RightUpLeg"); + MyAvatar.clearJointData("LeftUpLeg"); + MyAvatar.clearJointData("RightLeg"); + MyAvatar.clearJointData("LeftLeg"); }); From 038b0de46e18a1d4749e259ca20b05dddc2c0c69 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Tue, 3 Jun 2014 17:08:24 -0700 Subject: [PATCH 2/5] starting fist squeezing --- examples/squeezeFist.js | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 examples/squeezeFist.js diff --git a/examples/squeezeFist.js b/examples/squeezeFist.js new file mode 100644 index 0000000000..85f817c964 --- /dev/null +++ b/examples/squeezeFist.js @@ -0,0 +1,47 @@ +// +// squeezeFist.js +// examples +// +// Created by Philip Rosedale on 03-June-2014 +// Copyright 2014 High Fidelity, Inc. +// +// This is an example script that demonstrates an NPC avatar running an FBX animation loop. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +var animation = AnimationCache.getAnimation("https://s3-us-west-1.amazonaws.com/highfidelity-public/animations/HandAnim.fbx"); + +var jointMapping; + +var frameIndex = 0.0; + +var FRAME_RATE = 30.0; // frames per second + +Script.update.connect(function(deltaTime) { + var triggerValue = Controller.getTriggerValue(0); + print(triggerValue); + if (!jointMapping) { + var avatarJointNames = MyAvatar.jointNames; + var animationJointNames = animation.jointNames; + if (avatarJointNames.length === 0 || animationJointNames.length === 0) { + return; + } + jointMapping = new Array(avatarJointNames.length); + for (var i = 0; i < avatarJointNames.length; i++) { + jointMapping[i] = animationJointNames.indexOf(avatarJointNames[i]); + } + } + frameIndex += deltaTime * FRAME_RATE; + var frames = animation.frames; + var rotations = frames[Math.floor(frameIndex) % frames.length].rotations; + for (var j = 0; j < jointMapping.length; j++) { + var rotationIndex = jointMapping[j]; + if (rotationIndex != -1) { + MyAvatar.setJointData(j, rotations[rotationIndex]); + } + } +}); + + From e8fa75b4f3d2bcb07f31b1682e18f3e3ba8aa5d9 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Wed, 4 Jun 2014 15:17:17 -0700 Subject: [PATCH 3/5] Added squeezeHands.js --- examples/squeezeFist.js | 47 -------------------------------------- examples/squeezeHands.js | 49 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 47 deletions(-) delete mode 100644 examples/squeezeFist.js create mode 100644 examples/squeezeHands.js diff --git a/examples/squeezeFist.js b/examples/squeezeFist.js deleted file mode 100644 index 85f817c964..0000000000 --- a/examples/squeezeFist.js +++ /dev/null @@ -1,47 +0,0 @@ -// -// squeezeFist.js -// examples -// -// Created by Philip Rosedale on 03-June-2014 -// Copyright 2014 High Fidelity, Inc. -// -// This is an example script that demonstrates an NPC avatar running an FBX animation loop. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -var animation = AnimationCache.getAnimation("https://s3-us-west-1.amazonaws.com/highfidelity-public/animations/HandAnim.fbx"); - -var jointMapping; - -var frameIndex = 0.0; - -var FRAME_RATE = 30.0; // frames per second - -Script.update.connect(function(deltaTime) { - var triggerValue = Controller.getTriggerValue(0); - print(triggerValue); - if (!jointMapping) { - var avatarJointNames = MyAvatar.jointNames; - var animationJointNames = animation.jointNames; - if (avatarJointNames.length === 0 || animationJointNames.length === 0) { - return; - } - jointMapping = new Array(avatarJointNames.length); - for (var i = 0; i < avatarJointNames.length; i++) { - jointMapping[i] = animationJointNames.indexOf(avatarJointNames[i]); - } - } - frameIndex += deltaTime * FRAME_RATE; - var frames = animation.frames; - var rotations = frames[Math.floor(frameIndex) % frames.length].rotations; - for (var j = 0; j < jointMapping.length; j++) { - var rotationIndex = jointMapping[j]; - if (rotationIndex != -1) { - MyAvatar.setJointData(j, rotations[rotationIndex]); - } - } -}); - - diff --git a/examples/squeezeHands.js b/examples/squeezeHands.js new file mode 100644 index 0000000000..8f2baf12b7 --- /dev/null +++ b/examples/squeezeHands.js @@ -0,0 +1,49 @@ +// +// squeezeHands.js +// examples +// +// Created by Philip Rosedale on June 4, 2014 +// Copyright 2014 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +var rightHandAnimation = "https://s3-us-west-1.amazonaws.com/highfidelity-public/animations/HandAnim.fbx"; +var leftHandAnimation = "https://s3-us-west-1.amazonaws.com/highfidelity-public/animations/HandAnim.fbx"; + +var LEFT = 0; +var RIGHT = 1; + +var lastLeftFrame = 0; +var lastRightFrame = 0; + +var LAST_FRAME = 15.0; // What is the number of the last frame we want to use in the animation? + +Script.update.connect(function(deltaTime) { + var leftTriggerValue = Controller.getTriggerValue(LEFT); + var rightTriggerValue = Controller.getTriggerValue(RIGHT); + + var leftFrame, rightFrame; + + // Average last two trigger frames together for a bit of smoothing + leftFrame = (leftTriggerValue * LAST_FRAME) * 0.5 + lastLeftFrame * 0.5; + rightFrame = (rightTriggerValue * LAST_FRAME) * 0.5 + lastRightFrame * 0.5; + + if (leftFrame != lastLeftFrame) { + MyAvatar.stopAnimation(leftHandAnimation); + MyAvatar.startAnimation(leftHandAnimation, 30.0, 1.0, false, true, leftFrame, leftFrame); + } + if (rightFrame != lastRightFrame) { + MyAvatar.stopAnimation(rightHandAnimation); + MyAvatar.startAnimation(rightHandAnimation, 30.0, 1.0, false, true, rightFrame, rightFrame); + } + + lastLeftFrame = leftFrame; + lastRightFrame = rightFrame; +}); + +Script.scriptEnding.connect(function() { + MyAvatar.stopAnimation(leftHandAnimation); + MyAvatar.stopAnimation(rightHandAnimation); +}); \ No newline at end of file From 8bce7127aa207a5365782028969c558ca558932a Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Wed, 4 Jun 2014 15:19:49 -0700 Subject: [PATCH 4/5] support for both hands, but no script for now in the left one --- examples/squeezeHands.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/squeezeHands.js b/examples/squeezeHands.js index 8f2baf12b7..3f24fa86b7 100644 --- a/examples/squeezeHands.js +++ b/examples/squeezeHands.js @@ -10,7 +10,7 @@ // var rightHandAnimation = "https://s3-us-west-1.amazonaws.com/highfidelity-public/animations/HandAnim.fbx"; -var leftHandAnimation = "https://s3-us-west-1.amazonaws.com/highfidelity-public/animations/HandAnim.fbx"; +var leftHandAnimation = ""; var LEFT = 0; var RIGHT = 1; @@ -30,11 +30,11 @@ Script.update.connect(function(deltaTime) { leftFrame = (leftTriggerValue * LAST_FRAME) * 0.5 + lastLeftFrame * 0.5; rightFrame = (rightTriggerValue * LAST_FRAME) * 0.5 + lastRightFrame * 0.5; - if (leftFrame != lastLeftFrame) { + if ((leftFrame != lastLeftFrame) && leftHandAnimation.length){ MyAvatar.stopAnimation(leftHandAnimation); MyAvatar.startAnimation(leftHandAnimation, 30.0, 1.0, false, true, leftFrame, leftFrame); } - if (rightFrame != lastRightFrame) { + if ((rightFrame != lastRightFrame) && rightHandAnimation.length) { MyAvatar.stopAnimation(rightHandAnimation); MyAvatar.startAnimation(rightHandAnimation, 30.0, 1.0, false, true, rightFrame, rightFrame); } From 864db25f4f2484bcb7d6f8a5e74e536d020e3e47 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Wed, 4 Jun 2014 15:43:33 -0700 Subject: [PATCH 5/5] remove unused variables causing warning --- interface/src/ui/ApplicationOverlay.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/interface/src/ui/ApplicationOverlay.cpp b/interface/src/ui/ApplicationOverlay.cpp index 5869394f04..47aea70df9 100644 --- a/interface/src/ui/ApplicationOverlay.cpp +++ b/interface/src/ui/ApplicationOverlay.cpp @@ -324,7 +324,6 @@ void ApplicationOverlay::displayOverlayTextureOculus(Camera& whichCamera) { // Get vertical FoV of the displayed overlay texture const float halfVerticalAngle = _oculusAngle / 2.0f; - const float verticalAngle = halfVerticalAngle * 2.0f; const float overlayAspectRatio = glWidget->width() / (float)glWidget->height(); const float halfOverlayHeight = _distance * tan(halfVerticalAngle); @@ -393,7 +392,6 @@ void ApplicationOverlay::displayOverlayTextureOculus(Camera& whichCamera) { float newWidth = magnifyWidth * magnification; float newHeight = magnifyHeight * magnification; - float tmp; // Magnification Texture Coordinates float magnifyULeft = mouseX / (float)widgetWidth; @@ -409,8 +407,6 @@ void ApplicationOverlay::displayOverlayTextureOculus(Camera& whichCamera) { float leftAngle = (newMouseX / (float)widgetWidth) * horizontalAngle - halfHorizontalAngle; float rightAngle = ((newMouseX + newWidth) / (float)widgetWidth) * horizontalAngle - halfHorizontalAngle; - float halfMagnifyHeight = magnifyHeight / 2.0f; - float leftX, rightX, leftZ, rightZ; // Get position on hemisphere using angle