Commit graph

279 commits

Author SHA1 Message Date
Howard Stearns
745a59af1c Default animation is anim graph.
Remove state change logging from animation graph state machine.
2015-09-29 12:48:57 -07:00
Anthony J. Thibault
a495a45ed0 unset "lean" when headParams.enableLean is false
Also added AnimVariantMap::dump() which will print out all the
currently set anim vars and their values.
2015-09-28 11:10:22 -07:00
Anthony J. Thibault
c970ff0c0c Reset joint priorities back to 0 for new animation system.
Added Rig::clearJointStatePriorities() to do this.
2015-09-27 18:25:28 -07:00
Anthony J. Thibault
4b31d87bf5 renamed magic constant to FRAMES_PER_SECOND. 2015-09-27 17:52:53 -07:00
Anthony J. Thibault
5a24a020ca Fix for HMD rotation sticking between 2d & HMD mode
The main fix for this was to set the JointState animation priority to 3.0
The secondary fix was only noticed when we changed the animation priority
Basically, the debugRendering was using the JointStates after they were
manipulated by SkeletonModel to 'relax' them toward thier default pose for
IK purposes.
2015-09-27 17:44:54 -07:00
Anthony J. Thibault
a2562c92f4 Small changes to Anim System for Debugging
* Added constant for Rig animation fade time
* Added index output for AnimSkeleton::dump()
2015-09-27 16:24:55 -07:00
Andrew Meadows
a97f556958 enforce IK target rotation 2015-09-25 15:13:57 -07:00
Howard Stearns
266c69fc70 Disable the old-school Rig::inverseKinematics during reset. 2015-09-24 15:33:52 -07:00
Andrew Meadows
59da684eb9 make IKTarget::setType() a one-liner 2015-09-24 13:15:03 -07:00
Andrew Meadows
17e3e9394f allow head translation for 3rd person screenie IK 2015-09-24 12:38:46 -07:00
Brad Hefta-Gaub
5e82b9c433 more warning fixes 2015-09-24 08:26:56 -07:00
Anthony J. Thibault
6b47373bcb Fix for precision error in AnimPose(glm::mat4) constructor.
Really the culprit is GLMHelpers extractRotation().
I have a separate unit test that demonstrates the bug.
2015-09-23 15:38:56 -07:00
Anthony J. Thibault
a454584496 Updated default avatar-animation.json 2015-09-23 10:59:52 -07:00
Anthony J. Thibault
a9848cd157 Merge branch 'master' into tony/lean-threshold 2015-09-23 10:54:12 -07:00
Anthony J. Thibault
9ce43a57f1 Better head IK when in an HMD.
Because the current IK system doesn't quite handle what we need
for the head and neck IK, we do it procedurally in the rig, and
manually set both neck and head IK targets.
2015-09-22 19:58:21 -07:00
Anthony J. Thibault
d53295655f Fixes for empty poses
This can happen when an animation is evaluated before it is finished loading.
2015-09-22 19:54:51 -07:00
Andrew Meadows
d25ba8946e fix animation attenuation from IK relaxation step 2015-09-22 17:20:26 -07:00
Howard Stearns
7e52d38870 Don't include the root rot, because it seems that this is already accounted for in the head params.
Restore the hmd conditional on setting head position. This had been removed when failing to pin it cause lean.
I believe that lean was being caused by coordinate system issues that are now addressed by the above and Andrew's big cleanup.
2015-09-22 10:12:59 -07:00
Howard Stearns
8f1dde69cc Always keep targets, even when both position and rotation are unset. (Get from underpose.)
Filtering these was necessary before when the underpose coordinate was wrong, but now that we have that working, there shouldn't be any need to filter.
2015-09-22 10:10:29 -07:00
Andrew Meadows
3869887610 splitting AnimNode implementation into two files 2015-09-21 17:53:59 -07:00
Andrew Meadows
e6776ef5eb split AnimIK::evaluate() into sub-functions
also IK targets now in model-frame instead of root-frame
2015-09-21 17:29:39 -07:00
Anthony J. Thibault
eadf212418 Updated avatar.json with talking idle animation. 2015-09-18 18:31:53 -07:00
Anthony J. Thibault
44eb448cbe Hooked up isTalking flag to Rig and AnimGraph. 2015-09-18 18:05:51 -07:00
Andrew Meadows
07f3abfc91 fix bugs 2015-09-18 12:01:23 -07:00
Andrew Meadows
4cb2249cda premature optimization: remove another branch 2015-09-18 10:16:19 -07:00
Andrew Meadows
a85afb5280 simplify logic of RotationAccumulator::add() 2015-09-18 10:13:21 -07:00
Andrew Meadows
6ed0a57d9f avoid unecessary computation of last absolutePose 2015-09-18 10:09:23 -07:00
Andrew Meadows
9e94e7f1d0 less complicated RotationAccumulator 2015-09-18 07:11:36 -07:00
Andrew Meadows
b6a153d926 split RotationAccumulator into its own files 2015-09-17 22:30:44 -07:00
Andrew Meadows
420acde720 blend IK effects between distinct end effectors 2015-09-17 22:11:59 -07:00
Andrew Meadows
4505d5999c route hand data differently for new Anim system 2015-09-17 16:04:00 -07:00
Andrew Meadows
9746d31f5e notes for moving hand updates 2015-09-17 16:04:00 -07:00
Anthony J. Thibault
bef136d811 AnimGraph: prefer QString over std::string 2015-09-17 11:21:14 -07:00
Andrew Meadows
e1fc1900ab remove IK 'flutter' bug 2015-09-16 17:02:12 -07:00
Andrew Meadows
d4ea661aca cleanup whitespace 2015-09-16 17:02:12 -07:00
Andrew Meadows
9a86fc2e62 build local list of IK targets every frame 2015-09-16 17:02:12 -07:00
Andrew Meadows
089c719612 minor cleanup 2015-09-16 17:02:12 -07:00
Anthony J. Thibault
5aeebba90e Renamed AnimController to AnimManipulator, Removed offsets on IK targets 2015-09-16 15:49:47 -07:00
Anthony J. Thibault
fae4b08eb0 AnimController Node Bug fixes
AnimController: proper support for alpha
AnimController: bug fix for translation.
AnimOverlay: renamed local var when building hand boneSets from head to hand.
2015-09-16 15:11:53 -07:00
Howard Stearns
f6b5f3925a Place head at requested position in all modes. (At least, until we can figure out how to get underpose position cleanly without tilt.) 2015-09-15 16:43:52 -07:00
Howard Stearns
848bb4fccb Merge pull request #5813 from hyperlogic/tony/anim-hand-state-machines
Added point and grab support to the AnimGraph
2015-09-15 15:47:19 -07:00
Anthony J. Thibault
1948829ca8 Improved state machine for right hand.
The hand state machine has the following features

* There's a idle to point animation, followed by a looping point hold state.
* There's a point to idle animation.
* The grab state is composed of a linear blend between an open and closed pose.

Additionally the C++ code will ramp on the left and right hand overlays,
This allows the fingers to be animated normally when the user is not actively
pointing or grabbing.
2015-09-15 15:09:08 -07:00
Clément Brisset
cb1b70820a Merge pull request #5801 from AndrewMeadows/fix-animation-tests
fix animation unit tests
2015-09-15 17:53:06 +02:00
Anthony J. Thibault
90f46ba2c8 Added hand state machines to AnimGraph.
* Application: Forward trigger values to the MyAvatar's PalmData
* SkeletonModel: Pass PalmData to Rig via updateRigFromHandData() this is more explicit then
  the Rig::inverseKinematics methods.
* AnimNodeLoader & AnimOverlay: add support for LeftHand and RightHand bone sets
* Rig::updateRigFromHandData() read the triggers and set stateMachine trigger vars
* avatar.json - udpated with new hand state machine with temporary animations
2015-09-14 18:54:12 -07:00
Andrew Meadows
d74628720f fix bug using unitialized std::vector elements 2015-09-14 17:14:04 -07:00
Andrew Meadows
75ec142827 fix animation-tests 2015-09-14 16:42:57 -07:00
Andrew Meadows
a72199a7df minor IK tuning 2015-09-14 14:44:17 -07:00
Howard Stearns
4ffe2d0747 Merge pull request #5786 from AndrewMeadows/ik-with-constraints
inverse kinematics works with rotation constraints
2015-09-11 17:34:50 -07:00
Andrew Meadows
1500a36f72 oops forgot to uncomment constraint initialization 2015-09-11 16:49:49 -07:00
Howard Stearns
140ecc8e2c Get rid of implicit int->bool cast. 2015-09-11 16:28:41 -07:00