Commit graph

1334 commits

Author SHA1 Message Date
Anthony J. Thibault
29de8a8d9f remove ajt comment 2019-09-05 11:11:10 -07:00
Anthony J. Thibault
b6f28a6732 Switch additive animation deltas from a pre multiply to a post multiply. 2019-09-05 11:09:03 -07:00
Anthony J. Thibault
92df5cccdc AnimBlendDirectional node 2019-09-05 11:09:02 -07:00
Anthony J. Thibault
6274ab4aa7 3x3 blend wip 2019-09-05 11:09:00 -07:00
Shannon Romano
96f6793a87
Merge pull request #16118 from hyperlogic/feature/aim-offset-blend
Additive animation support
2019-09-04 16:55:50 -07:00
Anthony J. Thibault
c814176d6a Fix initialization order of members warning 2019-08-29 16:16:19 -07:00
luiscuenca
265b6f57a1
Try to mitigate the effect of background mic noise when simulating talking 2019-08-29 15:19:17 -07:00
Anthony J. Thibault
52ed0bcb71 additive blending work 2019-08-29 10:17:51 -07:00
Anthony J. Thibault
16a20a5ead AddAbsolute now works! added blendType to AnimClip 2019-08-28 18:19:35 -07:00
Anthony J. Thibault
adda7774d3 WIP checkpoint addAbsolute still broken 2019-08-28 14:08:21 -07:00
Seth Alves
f331b76c51 apply fake eye saccades if eye joints aren't overridden (rather than if HasProceduralEyeFaceMovement is true) 2019-08-27 16:59:31 -07:00
Seth Alves
1979e1dbc7 apply fake eye saccades if eye joints aren't overridden (rather than if HasProceduralEyeFaceMovement is true) 2019-08-27 16:47:01 -07:00
luiscuenca
55b54b02a0
Restate evaluation count on AnimContext 2019-08-27 10:59:03 -07:00
luiscuenca
acbeb326a7
Set activation when switching random states 2019-08-27 10:57:22 -07:00
luiscuenca
7f1f6dba31
Implement activation on nodes and use it to trigger random states 2019-08-27 10:25:35 -07:00
Anthony J. Thibault
ed3ba876a8 AddRelative blending support (Absolute is still not working) 2019-08-26 17:02:15 -07:00
Anthony J. Thibault
f1afc9e873 Bug fix & rename isRelative to relativeFlag 2019-08-23 08:46:14 -07:00
Anthony Thibault
001e4bc952 AnimClip now supports relative animations.
Relative animations are animations that are rotation deltas from some base reference pose.
They are calculated by multiplying each frame of each joint the inverse of that joints in the base reference pose.
It is intended for use with additive blending.

Added the following fields to AnimClip node.

* isRelative (boolean)
* baseURL (string)
* baseFrame (int)
2019-08-21 16:11:10 -07:00
Anthony J. Thibault
381f7c6bc4 Avatar sitting bug fixes
* Added seatedToIdle transition, to make transition quicker to better match the capsule physics.
* Made switching into and out of instantly set animVar for the animation graph, previously it was delayed by 100 ms.
* Created "isNotSeated" anim var for exiting the seated state.
* MyAvatar::beginSit & MyAvatar::endSit no longer calls goToPosition, instead MyAvatar::slamPosition is called.
* MyAvatar::slamPosition will cause the AvatarTransit class to NOT play the teleport anticipation/reaction animation.
  Note: This does not prevent other clients from interpolating the position when entering the seat, but it prevents the teleport reaction animation from playing.
* Disable leg IK in HMD mode while seated.
2019-08-16 10:57:03 -07:00
Anthony Thibault
1b225a777a
Merge pull request #16048 from luiscuenca/rotationOnlyInterpolationFix
DEV-332: Ramp on and off Head IK to make reactions smoother
2019-08-09 16:18:12 -07:00
luiscuenca
73b3419c75
store rotations when interpolating 2019-08-09 11:02:20 -07:00
luiscuenca
e3ec87a8f8
Add in/out interpolation between RotationOnly and Unknown types 2019-08-09 10:46:48 -07:00
Anthony J. Thibault
f1c47db53c set idleOverlayAlpha animVar for backward compatibility with older graphs 2019-08-08 11:12:42 -07:00
Anthony J. Thibault
5d405cac3b Merge branch 'master' into feature/reaction-intro-loop-outro 2019-08-08 09:56:45 -07:00
luiscuenca
597cff335a
Reserve vector size 2019-08-08 08:40:00 -07:00
luiscuenca
3a22db0a13
Last state for all node types 2019-08-08 06:25:04 -07:00
luiscuenca
473af995d6
Fix warnings 2019-08-07 16:53:08 -07:00
luiscuenca
74eacf2346
Make sure random switch does not repeat previous state 2019-08-07 15:08:44 -07:00
Anthony J. Thibault
b306ed69d6 Bugfix for evaluateBoth interpType.
It wouldn't pick the correct starting frame of the state being switched to.
Also, interping out of a evaluateBoth interp uses a snapshot.
2019-08-06 17:40:28 -07:00
Anthony J. Thibault
640c058591 Code review feedback 2019-08-05 12:52:42 -07:00
Anthony J. Thibault
a8d7f06862 warning fixes 2019-08-04 11:03:21 -07:00
Anthony J. Thibault
c8e4536bba Hooked up variations of seated while talking and stubs for reactions while seated. 2019-08-02 10:11:38 -07:00
Anthony J. Thibault
aad6958b68 Don't evaluate overPoses if alpha is 0.0. 2019-08-02 09:36:20 -07:00
Anthony J. Thibault
a2e37b7275 talking/reactions while seated, work in progress check in 2019-08-01 13:05:15 -07:00
Anthony J. Thibault
727c04791c Added linear to stringToEasingType() 2019-07-31 15:18:59 -07:00
Anthony J. Thibault
ec08139a46 Support for EvaluteBoth interpType and easing 2019-07-31 15:00:38 -07:00
Anthony J. Thibault
2f949a4d4d Disable head ik while reacting
Also, split getReactions() API into two calls

* getTriggerReactions() - lists all reactions that can be triggered with MyAvatar.triggerReaction().
* getBeginReactions() - lists all reactions that can be used with MyAvatar.beginReaction() and MyAvatar.endReaction().
2019-07-26 15:26:43 -07:00
luiscuenca
e7e864121f
Merge branch 'master' into avatarSitAPI 2019-07-23 14:22:42 -07:00
luiscuenca
9cec979552
Add sit API to MyAvatar 2019-07-23 14:20:54 -07:00
Anthony Thibault
ecae92724e Added reaction api 2019-07-17 14:28:39 -07:00
Anthony Thibault
6425c68836 fix for self assignment warning 2019-07-16 10:48:51 -07:00
dooglifeSF
9f8d1dd51d Merge branch 'master' into idles_talks_locomotion_improvements 2019-06-26 09:31:23 -07:00
Anthony J. Thibault
3a6d8dc383 Disable handTouch.js to prevent finger twitching
This PR disables handTouch.js.
handTouch.js allows the fingers to animate on the surface of an object.
However, it can sometimes detect collisions with walls or tables when the avatar is standing next to them.
We will more properly fix handTouch.js in a future PR, but for now we will disable the functionality.

Also, a small bug fix was made to the Rig to prevent the idleOverlayAlpha from exceeding the 0.0 to 1.0 range.
This can cause the fingers to bend incorrectly for a moment.

Also, three new items were added to the Developer > Show Animation Stats panel.

* Joint Override Count: displays the current count of joints that are overriden by MyAvatar.setJointRotation() JS API calls.
* Flow: displays if flow is active of disabled.
* Network Graph: displays if the network anim graph, used for teleportation, is enabled or disabled.

https://highfidelity.atlassian.net/browse/BUGZ-154
2019-06-20 15:52:36 -07:00
dooglifeSF
4be42a4b9b Merge branch 'master' into idles_talks_locomotion_improvements 2019-06-19 09:57:04 -07:00
dooglifeSF
55524ec815 Set debug text lit time to 20 (again) and move 2 break statements out of comment to fix exception in debug 2019-06-18 09:39:06 -07:00
Anthony J. Thibault
c75dc29c03 more assert macro trickery 2019-06-17 16:11:19 -07:00
Anthony J. Thibault
e6e40e7b48 added include<assert.h> 2019-06-17 16:09:24 -07:00
Anthony J. Thibault
d57ea8ac4a Fix for signed/unsigned compare warning 2019-06-17 15:42:20 -07:00
Anthony J. Thibault
4b5d5062b1 Improvement to Developer > Avatar > Draw Animation
This feature was added to help diagnose the root cause of a rarely occurring finger twitching bug.

Also, some asserts were added to AnimClip to also help catch a rarely occurring crash.
2019-06-17 14:50:19 -07:00
Seth Alves
d1824c4d6d remove spammy log 2019-06-04 13:00:26 -07:00
Anthony Thibault
93b03a588f
Merge pull request #15445 from amantley/AnimRandomSwitchSquash
AnimRandomSwitch class for random idle implementation
2019-04-26 10:06:37 -07:00
Angus Antley
395a4cc9c4 added final animations and json to the resource 2019-04-25 19:14:31 -07:00
Angus Antley
27ed468946 made changes requested 2019-04-25 14:42:41 -07:00
Angus Antley
76164ecee8 corrected the case where you have a random switch state trigger and a random transition trigger in the same random state machine 2019-04-25 13:57:58 -07:00
David Rowe
8e69e0b049 Regularize deprecation notices 2019-04-25 20:55:30 +12:00
Angus Antley
ea173b8d61 more time for talk ease in and updated json random choice times 2019-04-24 21:29:55 -07:00
Angus Antley
93b49a86db fixed build error 2019-04-24 15:50:00 -07:00
Angus Antley
45f4cb2018 added animation files and updated ease in function in rig 2019-04-24 14:56:38 -07:00
Angus Antley
5aee2f35f0 updated the ease in function 2019-04-24 08:27:36 -07:00
amantley
7f3101eefb working on the ease in function for the talk idle 2019-04-23 18:13:15 -07:00
Angus Antley
bac5cf9bbb fixed the debug state info updating 2019-04-22 14:35:04 -07:00
Angus Antley
6d9e4188eb added AnimRandomSwitch class and got it integrated with a new avatar-animation.json that includes random idles and random fidgets and random talk 2019-04-22 14:14:17 -07:00
Clement
0f2dbd7b6a Fix mac warnings 2019-04-19 20:14:15 -07:00
amantley
035c8a687d fixed merge conflict 2019-04-17 10:16:39 -07:00
Shannon Romano
f2069a2cd7
Merge pull request #15344 from amantley/bugTwoBoneOverFlow
Fixed out of range error in AnimTwoBoneIK
2019-04-17 09:51:09 -07:00
Anthony J. Thibault
02d5769991 Better head vs camera checks for avatar head cauterization
* cameraInsideHead() check now uses detailed avatar collision when possible.
* head is now more constantly hidden in first person camera mode
* getEyeModelPositions() uses a better estimate when avatar eye joints are missing.
* moved findPointKDopDisplacement from Rig.cpp into AnimUtil.cpp
* added isPlayingOverrideAnimation() method to Rig class
2019-04-09 12:57:03 -07:00
John Conklin II
c902e8392c
Merge pull request #15343 from luiscuenca/fixSimJoints
Fix error extracting SIM joints on Flow
2019-04-05 18:28:05 -07:00
luiscuenca
39b58a44ee Fix error on sim joints for new flow app 2019-04-05 16:38:38 -07:00
Angus Antley
09e2da4c93 fixed out of range error in the two bone IK computation 2019-04-05 16:31:18 -07:00
David Rowe
28dfac64ba Merge branch 'master' into M21460
# Conflicts:
#	libraries/image/src/image/Image.h
2019-04-05 17:50:46 +13:00
Anthony Thibault
65507cfe11
Merge pull request #15180 from luiscuenca/flowCppFixes
Fix Flow touch and scale issues
2019-03-28 11:11:08 -07:00
Anthony Thibault
b0d5a82c80
Merge pull request #15169 from hyperlogic/bug-fix/rig-assert-fix
Rig.cpp: Fix for index out of range assert in debug builds
2019-03-28 11:10:32 -07:00
Angus Antley
d71c6c28de added the new hand anims to the resource, and added hand reset to initAnimGraph 2019-03-27 12:00:50 -07:00
Angus Antley
02d9331603 This changes the avatar-animation json so that we have override
animations for the right and left hand, similar to how we have whole
body override animations.
2019-03-26 23:27:54 -07:00
David Rowe
9a1bb27034 AnimationCache, ModelCache, SoundCache, and TextureCache JSDoc 2019-03-26 13:58:43 +13:00
David Rowe
cf4370ed3a Merge branch 'master' into M21222 2019-03-26 09:44:48 +13:00
David Rowe
b78ae80ae6 Address review comments and add further examples 2019-03-26 09:40:47 +13:00
amantley
bc696d6db6 fixed memory leak caused by bone length scale computation 2019-03-14 13:49:13 -07:00
luiscuenca
c14b135f2b Fix flow touch and scale issues 2019-03-13 15:42:04 -07:00
David Rowe
ea84847950 Update AnimStateDictionary JSDoc per feedback 2019-03-13 16:20:38 +13:00
David Rowe
7445d73857 Merge branch 'master' into M21222
# Conflicts:
#	libraries/avatars/src/AvatarData.h
2019-03-13 16:14:14 +13:00
Anthony Thibault
fff0d1a80e Rig.cpp: Fix for index out of range assert in debug builds 2019-03-12 17:43:23 -07:00
Anthony Thibault
c36d752b6b
Merge pull request #15141 from luiscuenca/flowAPIExtra
add getFlowData method to MyAvatar
2019-03-08 17:45:11 -08:00
luiscuenca
80150565f6 Fix bug on group settings 2019-03-08 16:30:28 -07:00
David Rowe
24c7c8be19 Update JSDoc per merge from master 2019-03-09 12:03:59 +13:00
luiscuenca
4858f64810 get the colliding joints 2019-03-08 14:36:47 -07:00
luiscuenca
f363d95ca2 clear group settings on init 2019-03-08 13:02:47 -07:00
luiscuenca
cb6f573b35 Merge branch 'master' into flowAPIExtra 2019-03-08 12:43:02 -07:00
David Rowe
4779a6b156 Merge branch 'master' into M21222 2019-03-09 07:57:53 +13:00
David Rowe
5068075645 Fill in MyAvatar animation JSDoc 2019-03-09 07:42:55 +13:00
luiscuenca
e8da6b5a0c add getFlowData 2019-03-08 10:36:58 -07:00
Thijs Wenker
d985d1bff0 use Rig instead of Avatar for height calculations 2019-03-08 03:36:56 +01:00
Anthony Thibault
dcd1258439
Merge pull request #15119 from hyperlogic/feature/improve-anim-pose-negative-scale
Improve AnimPose support for negative scale
2019-03-07 17:05:46 -08:00
Anthony Thibault
0cf8f3e5c3 Code review feed back remove NEW_VERSION ifdef 2019-03-07 14:11:01 -08:00
amantley
474a97d0fc now update the ikOverlayAlpha every frame 2019-03-06 15:15:30 -08:00
Anthony Thibault
5fcfa265d2 Remove alternate versions of AnimPose(mat4) constructor 2019-03-06 14:02:58 -08:00
Anthony Thibault
0dbc83049b Make AnimPose from mat4 work better for matrices with negative determinants.
Took part of this code from glm::decompose() which references
https://opensource.apple.com/source/WebCore/WebCore-514/platform/graphics/transforms/TransformationMatrix.cpp
2019-03-06 13:28:14 -08:00
amantley
e72cc8b16e put the ik optimized part of the conditional inside a android build define statement 2019-03-06 12:09:53 -08:00
amantley
442da66583 debugging tiny hulk problems 2019-03-05 17:44:36 -08:00
amantley
e955c02e07
Merge pull request #15046 from amantley/bugRootHips
Bug Fix for the Hips not translating correctly when Hips and Root have the same location
2019-03-04 14:05:33 -05:00
amantley
c046b8ffd3 made is so the boneLengthScale is only computed once per animation clip 2019-03-01 15:12:37 -08:00
Sam Gateau
cc9a3e2541
Merge pull request #15052 from amerhifi/quest-demo
case 21485: removing quest-demo specific changes
2019-03-01 15:03:44 -08:00
amantley
a11c4bf4e3 resolved conflict with master in AnimClip.cpp 2019-03-01 13:35:08 -08:00
amantley
54f14b2772 added the case where my avatar has no parent of hips, but the animation does 2019-03-01 12:41:05 -08:00
amantley
217145f4c5 This pr addresses two issues related to avatars that have parents joints
above their hip joints. First on the IK side this prevents parent joints
from being included in the accumulators in AnimInverseKinematics. Second
in AnimClip the boneLengthScale now takes into account translation and
scale on these extra parent joints.
2019-03-01 11:42:03 -08:00
Anthony Thibault
82b2050229 code review feedback 2019-03-01 11:13:56 -08:00
Anthony Thibault
9a2bd87278 Fix for case when animated joints are missing from the target avatar skeleton
By copying the animation rotations over to the target avatar in absolute frame, rather then relative,
we can properly "combine" animated rotations that aren't in the target avatar skeleton.
2019-02-28 18:02:07 -08:00
amerhifi
35dc13e06a
Merge branch 'master' into quest-demo 2019-02-28 14:06:47 -08:00
amer cerkic
faedc61c37 removing quest-demo specific changes 2019-02-28 10:54:30 -08:00
Anthony Thibault
b5f5900633 Replace animation scale with scale from avatar default pose
This allows avatars to have scale on their joints without being clobbered by animations.
Renamed variables for easier maintenance.
Also small optimization when no ikNode is present.
2019-02-27 14:40:08 -08:00
amantley
12dbaa0ea0 changed the condition so that you can turn off ik in hmd mode if you want to for debug purposes 2019-02-25 14:56:17 -08:00
amantley
363c0cc26f moved the update of last ik to outside the if changed statement 2019-02-25 13:03:28 -08:00
amantley
cff0fd470a re-enabled ik off by default on Desktop 2019-02-25 12:23:03 -08:00
amantley
87d98e5b85 These are the squashed commits for the ik optimization for the Quest
Implmented using a new AnimSplineIK node in the anim graph

(cherry picked from commit 4fe03ba238659fee7763991f2499a315482b351f)
2019-02-22 11:21:36 -08:00
Anthony Thibault
8785f733db
Merge pull request #14817 from amantley/animSplineIK
AnimSplineIK node added to inverse kinematics
2019-02-21 17:13:41 -08:00
Anthony Thibault
e54754c4ce
Merge pull request #14926 from luiscuenca/flowCpp
Cpp implementation of the Flow script
2019-02-21 17:10:05 -08:00
luiscuenca
dcbf57ee0b Fix linux warning and HMD breaks flow 2019-02-21 16:41:24 -07:00
amantley
c9db426ce4 Merge remote-tracking branch 'upstream/master' into animSplineIK 2019-02-21 14:36:13 -08:00
amantley
6323f49f26 changed the define variable to HIFI_USE_OPTIMIZED_IK 2019-02-21 14:36:05 -08:00
amantley
0bdc527ce7 turned off pole vector when hand behind back 2019-02-21 13:14:51 -08:00
amantley
afed0b5442 review changes 2019-02-21 11:08:29 -08:00
luiscuenca
ec4d069011 Allow threads with only one joint, remove dummy joints and unused constants 2019-02-21 12:00:19 -07:00
amantley
33fd64c68c direction on compare in positional theta function 2019-02-21 09:00:23 -08:00
amantley
f8a74efdc2 fixed build errors from jenkins 2019-02-20 17:59:45 -08:00
amantley
97da20781e removed whitespace 2019-02-20 15:19:36 -08:00
amantley
27bfe2f0fe changed name of pre processor variable 2019-02-20 15:14:12 -08:00
amantley
95b3fbdc35 removed ulnar coeff, too jumpy 2019-02-20 15:02:12 -08:00
John Conklin II
87556059d3
Merge pull request #13901 from Cristo86/android_handshake
case 20058: Android - Handshake implementation
2019-02-20 13:33:52 -08:00
luiscuenca
bea7680864 Fix shared_ptr not part of std error 2019-02-20 10:57:11 -07:00
luiscuenca
fa44687de6 fix errors and remove debug draw 2019-02-20 09:22:39 -07:00
Angus Antley
7639eac3ad cleaning up theta functions 2019-02-20 07:18:14 -08:00
Angus Antley
1e73422b80 added the wrist and position coeffs back in, 1.0 works 2019-02-20 06:25:44 -08:00
amantley
951380db15 tweaked the constraints, to do: start conditions and possibly using base rotation on shoulder to determine hand offset 2019-02-19 17:53:59 -08:00
luiscuenca
04e57d0dd1 No Rig pointer on Flow class, solve network animations and fixed bug 2019-02-19 17:45:46 -07:00
Angus Antley
f2301e7dac fixed relative wrist correction problem 2019-02-19 07:35:13 -08:00
Angus Antley
748368bfda mid tweak on the wrist and position coeffs 2019-02-17 23:32:52 -08:00
Angus Antley
e1dfd7d288 cleanup white space 2019-02-16 23:40:16 -08:00
Angus Antley
0982c37c5e took out the theta animvar and just use theta converted to pole vector 2019-02-16 14:50:47 -08:00
Angus Antley
70764bc3c4 Merge remote-tracking branch 'upstream/master' into animSplineIK 2019-02-15 19:24:30 -08:00
amantley
d78f253d24 code to generate pole vector from theta 2019-02-15 17:43:53 -08:00
amantley
95530e6ba5 removed the unnecessary animArmIK.h and .cpp 2019-02-15 15:41:23 -08:00
amantley
36093926d0 added fake android defines for running the new ik on pc 2019-02-15 15:00:39 -08:00
amantley
3f9b761e42 updating the android only if defs 2019-02-15 14:05:42 -08:00
luiscuenca
b670f72e84 fix warning on linux 2019-02-15 12:35:17 -07:00
Sam Gondelman
9aa99f24f0
Merge pull request #14905 from SamGondelman/materialMapping
Case 20242: FST materialMapping supports our material JSON format
2019-02-15 11:21:51 -08:00
amantley
7119bc5972 reverted the scale optimization in animspline.cpp 2019-02-15 10:54:02 -08:00
amantley
0fcaa695ba Merge remote-tracking branch 'upstream/master' into animArmIK 2019-02-15 10:35:33 -08:00
amantley
d6dfaacf6f adding ifdef for android os 2019-02-15 10:35:25 -08:00
luiscuenca
98c321c718 Fix warnings 2019-02-15 09:40:49 -07:00
amantley
425413419a fixed merge conflict in avatar.h 2019-02-15 08:26:54 -08:00