mirror of
https://github.com/overte-org/overte.git
synced 2025-04-08 08:14:48 +02:00
Merge pull request #16301 from dooglifeSF/drivekey_anim_triggers
Drivekey anim triggers
This commit is contained in:
commit
1316f9b046
4 changed files with 106 additions and 55 deletions
|
@ -5244,23 +5244,23 @@
|
|||
"transitions": [
|
||||
{
|
||||
"state": "idle",
|
||||
"var": "isNotMoving"
|
||||
"var": "isNotInput"
|
||||
},
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -5313,19 +5313,19 @@
|
|||
"transitions": [
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -5380,19 +5380,19 @@
|
|||
},
|
||||
{
|
||||
"state": "idle",
|
||||
"var": "isNotMoving"
|
||||
"var": "isNotInput"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -5469,19 +5469,19 @@
|
|||
},
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "strafeRightHmd",
|
||||
|
@ -5533,19 +5533,19 @@
|
|||
"transitions": [
|
||||
{
|
||||
"state": "idleSettle",
|
||||
"var": "isNotMoving"
|
||||
"var": "isNotInput"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -5597,19 +5597,19 @@
|
|||
"transitions": [
|
||||
{
|
||||
"state": "idleSettle",
|
||||
"var": "isNotMoving"
|
||||
"var": "isNotInput"
|
||||
},
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -5661,19 +5661,19 @@
|
|||
"transitions": [
|
||||
{
|
||||
"state": "idleSettle",
|
||||
"var": "isNotMoving"
|
||||
"var": "isNotInput"
|
||||
},
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -5725,19 +5725,19 @@
|
|||
"transitions": [
|
||||
{
|
||||
"state": "idleSettle",
|
||||
"var": "isNotMoving"
|
||||
"var": "isNotInput"
|
||||
},
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -5794,19 +5794,19 @@
|
|||
},
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnLeft",
|
||||
|
@ -5859,19 +5859,19 @@
|
|||
},
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -5919,15 +5919,15 @@
|
|||
"transitions": [
|
||||
{
|
||||
"state": "idleSettle",
|
||||
"var": "isNotMoving"
|
||||
"var": "isNotInput"
|
||||
},
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "strafeLeftHmd",
|
||||
|
@ -5935,11 +5935,11 @@
|
|||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -5983,15 +5983,15 @@
|
|||
"transitions": [
|
||||
{
|
||||
"state": "idleSettle",
|
||||
"var": "isNotMoving"
|
||||
"var": "isNotInput"
|
||||
},
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "strafeRightHmd",
|
||||
|
@ -5999,11 +5999,11 @@
|
|||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
@ -6128,19 +6128,19 @@
|
|||
"transitions": [
|
||||
{
|
||||
"state": "WALKFWD",
|
||||
"var": "isMovingForward"
|
||||
"var": "isInputForward"
|
||||
},
|
||||
{
|
||||
"state": "WALKBWD",
|
||||
"var": "isMovingBackward"
|
||||
"var": "isInputBackward"
|
||||
},
|
||||
{
|
||||
"state": "STRAFERIGHT",
|
||||
"var": "isMovingRight"
|
||||
"var": "isInputRight"
|
||||
},
|
||||
{
|
||||
"state": "STRAFELEFT",
|
||||
"var": "isMovingLeft"
|
||||
"var": "isInputLeft"
|
||||
},
|
||||
{
|
||||
"state": "turnRight",
|
||||
|
|
|
@ -315,6 +315,10 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) {
|
|||
const float TALKING_TIME_THRESHOLD = 0.75f;
|
||||
params.isTalking = head->getTimeWithoutTalking() <= TALKING_TIME_THRESHOLD;
|
||||
|
||||
//pass X and Z input key floats (-1 to 1) to rig
|
||||
params.inputX = myAvatar->getDriveKey(MyAvatar::TRANSLATE_X);
|
||||
params.inputZ = myAvatar->getDriveKey(MyAvatar::TRANSLATE_Z);
|
||||
|
||||
myAvatar->updateRigControllerParameters(params);
|
||||
|
||||
_rig.updateFromControllerParameters(params, deltaTime);
|
||||
|
|
|
@ -2160,6 +2160,51 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo
|
|||
}
|
||||
}
|
||||
|
||||
//deadzone constant
|
||||
const float INPUT_DEADZONE_THRESHOLD = 0.05f;
|
||||
|
||||
if (fabsf(params.inputX) <= INPUT_DEADZONE_THRESHOLD && fabsf(params.inputZ) <= INPUT_DEADZONE_THRESHOLD) {
|
||||
// no WASD input
|
||||
_animVars.set("isInputForward", false);
|
||||
_animVars.set("isInputBackward", false);
|
||||
_animVars.set("isInputRight", false);
|
||||
_animVars.set("isInputLeft", false);
|
||||
_animVars.set("isNotInput", true);
|
||||
} else if (fabsf(params.inputZ) >= fabsf(params.inputX)) {
|
||||
if (params.inputZ > 0.0f) {
|
||||
// forward
|
||||
_animVars.set("isInputForward", true);
|
||||
_animVars.set("isInputBackward", false);
|
||||
_animVars.set("isInputRight", false);
|
||||
_animVars.set("isInputLeft", false);
|
||||
_animVars.set("isNotInput", false);
|
||||
} else {
|
||||
// backward
|
||||
_animVars.set("isInputForward", false);
|
||||
_animVars.set("isInputBackward", true);
|
||||
_animVars.set("isInputRight", false);
|
||||
_animVars.set("isInputLeft", false);
|
||||
_animVars.set("isNotInput", false);
|
||||
}
|
||||
} else {
|
||||
if (params.inputX > 0.0f) {
|
||||
// right
|
||||
_animVars.set("isInputForward", false);
|
||||
_animVars.set("isInputBackward", false);
|
||||
_animVars.set("isInputRight", true);
|
||||
_animVars.set("isInputLeft", false);
|
||||
_animVars.set("isNotInput", false);
|
||||
} else {
|
||||
// left
|
||||
_animVars.set("isInputForward", false);
|
||||
_animVars.set("isInputBackward", false);
|
||||
_animVars.set("isInputRight", false);
|
||||
_animVars.set("isInputLeft", true);
|
||||
_animVars.set("isNotInput", false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
_headEnabled = params.primaryControllerFlags[PrimaryControllerType_Head] & (uint8_t)ControllerFlags::Enabled;
|
||||
bool leftHandEnabled = params.primaryControllerFlags[PrimaryControllerType_LeftHand] & (uint8_t)ControllerFlags::Enabled;
|
||||
bool rightHandEnabled = params.primaryControllerFlags[PrimaryControllerType_RightHand] & (uint8_t)ControllerFlags::Enabled;
|
||||
|
|
|
@ -88,6 +88,8 @@ public:
|
|||
AnimPose secondaryControllerPoses[NumSecondaryControllerTypes]; // rig space
|
||||
uint8_t secondaryControllerFlags[NumSecondaryControllerTypes];
|
||||
bool isTalking;
|
||||
float inputX;
|
||||
float inputZ;
|
||||
bool reactionEnabledFlags[NUM_AVATAR_BEGIN_END_REACTIONS];
|
||||
bool reactionTriggers[NUM_AVATAR_TRIGGER_REACTIONS];
|
||||
HFMJointShapeInfo hipsShapeInfo;
|
||||
|
|
Loading…
Reference in a new issue