Andrew Meadows
cdae16e07b
fix bug: IK attenuates fast underpose animations
2015-09-29 16:11:27 -07:00
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
Seth Alves
4179e4aa74
merge from upstream
2015-09-28 15:28:10 -07:00
Seth Alves
04eed64c7c
fix bug in JointState::translationIsDefault
2015-09-28 15:26:32 -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
Seth Alves
50dd8eba45
Relay joint translations across network. Apply animation's root-joint translation to avatar.
2015-09-26 11:40:39 -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
Andrew Meadows
d01c5d1ae5
fix crash bug
2015-09-11 15:01:31 -07:00
Andrew Meadows
2ba446d309
fix IK and constriants
2015-09-11 13:22:12 -07:00
Andrew Meadows
b0520acea9
remove warning about out-of-order-init
2015-09-11 13:22:11 -07:00
Howard Stearns
5314e0c744
Remove unused.
2015-09-11 13:20:56 -07:00
Howard Stearns
02fba12a48
Merge branch 'master' of https://github.com/highfidelity/hifi into rationalize-rig-settings
2015-09-11 11:53:19 -07:00
Howard Stearns
67ce0966d1
Rationalize the rig state setters.
2015-09-11 11:52:20 -07:00
Anthony J. Thibault
8e504e63b0
Removed unused variable, changed glm::vec3(0) to glm::vec3()
2015-09-11 10:43:49 -07:00
Anthony J. Thibault
7996a02bd8
Added head target to AnimGraph IK node.
...
* In HMD mode head orientation and position is set.
* When not in HMD only orientation is set, position should
default to the underlying pose position.
2015-09-11 09:48:48 -07:00
Anthony J. Thibault
9a9838fd0d
Clean up of AnimNodeLoader after merge from master.
2015-09-10 11:47:41 -07:00
Anthony J. Thibault
663e37da66
Merge branch 'master' into tony/ik-and-controllers
2015-09-10 11:37:47 -07:00
Anthony Thibault
e8ede3ad00
Merge pull request #5731 from ChristophHaag/master
...
build fixes
2015-09-10 11:36:45 -07:00
Anthony J. Thibault
3149baeefc
Merge branch 'master' into tony/ik-and-controllers
2015-09-10 11:04:31 -07:00
Anthony J. Thibault
09b2d8e4a4
Seed AnimGraph with hand controller position and orientation.
2015-09-09 18:16:57 -07:00
Anthony J. Thibault
ad49d0dd59
AnimInverseKinematics: update _maxTargetIndex correctly.
2015-09-09 16:09:38 -07:00
Anthony J. Thibault
756eb54a0a
AnimNodeLoader support for InverseKinematics node.
2015-09-09 15:28:21 -07:00
Anthony J. Thibault
c1d7287652
AnimController node now takes absolute rotation vars, instead of relative.
2015-09-09 12:24:32 -07:00
Howard Stearns
f818ac2b74
Merge pull request #5744 from hyperlogic/tony/enable-lean-flag
...
Added a flag to enable and disable lean.
2015-09-09 10:18:12 -07:00
Anthony J. Thibault
146836452f
Merge remote-tracking branch 'andrew/europium' into tony/ik-and-controllers
2015-09-09 09:40:55 -07:00
Howard Stearns
74c92af8e0
Merge pull request #5741 from AndrewMeadows/brokenCapsules
...
fix for bad bounding capsules for avatars
2015-09-09 09:33:57 -07:00
Anthony J. Thibault
39aef6edc9
AnimController fix for crash if underPoses vector was empty.
2015-09-08 21:42:42 -07:00
Anthony J. Thibault
75ecf0020d
WIP commit, added AnimController node.
2015-09-08 20:34:21 -07:00
Andrew Meadows
e86e760118
remove debug stuff and nerfed constriants
2015-09-08 19:14:31 -07:00
Andrew Meadows
381828dac3
remove hackery for bad length units in AnimSkeleton
2015-09-08 19:02:16 -07:00
Andrew Meadows
ee265aba4a
add AnimInverseKinematics class
2015-09-08 18:20:22 -07:00
Andrew Meadows
3d661095dc
fix some bugs in RotationConstraints
2015-09-08 18:20:03 -07:00
Andrew Meadows
b6cef3d1a9
fix Qt includes
2015-09-08 18:19:33 -07:00
Andrew Meadows
00c446d1b0
sort includes
2015-09-08 18:19:18 -07:00
Andrew Meadows
c3e16d33c1
add InverseKinematics type
2015-09-08 18:18:50 -07:00
Seth Alves
e06461ea15
Merge pull request #5724 from hyperlogic/tony/anim-debug-draw-improvements
...
AnimDebugDraw Improvements
2015-09-08 17:07:51 -07:00
Anthony J. Thibault
387d50c217
Added a flag to enable and disable lean.
...
This should help improve our idle and walk animations, because
animation on the "lean" joint was being lost, even when we did
not require procedural leaning.
2015-09-08 16:35:06 -07:00
Stephen Birarda
c670c9a0d5
fix for AnimNodeLoader use of Resource loaded
2015-09-08 15:31:37 -07:00
Andrew Meadows
4a40781e2f
remove some commented out cruft
2015-09-08 15:11:19 -07:00
Andrew Meadows
281e4f21fc
fix avatar bounding capsule calculations
2015-09-08 15:03:12 -07:00
Andrew Meadows
90fe54e6d6
remove cruft and minor cleanup
2015-09-08 15:03:12 -07:00
Anthony J. Thibault
6d5927c0c9
Now with less copies.
...
* AnimSkeleton now returns AnimPoses by const ref.
* AnimDebugDraw: uses references to Poses on the stack instead of copies
within inner loops.
* AnimDebugDraw: Removed unnecessary universal refs in range based for loops.
2015-09-08 10:51:23 -07:00
Christoph Haag
ddcee763ca
extend macros to take return value if necessary
2015-09-08 19:10:15 +02:00
Stephen Birarda
25aeda2e18
Merge branch 'master' of https://github.com/highfidelity/hifi into protocol
2015-09-08 08:40:51 -07:00
Christoph Haag
fa221fa7e3
In gcc5 nullptr can't be directly used as bool
...
See https://gcc.gnu.org/gcc-5/porting_to.html
"Converting std::nullptr_t to bool"
2015-09-08 10:07:06 +02:00
Anthony J. Thibault
bb5d061d78
linux and mac compile fixes.
...
Removed "friend MyAvatar" from Rig and JointState.
This was only there for debugging, but I accidentally committed it.
2015-09-04 16:17:35 -07:00
Anthony J. Thibault
69e463bbfd
AnimDebugDraw Improvements
...
* Now always works, regardless of whether or not Rig or AnimGraph animations
are enabled.
* Changed joint radius to 1 cm.
* Changed xyz axis length to 4 cm.
2015-09-04 16:01:05 -07:00
Howard Stearns
086afc47b1
Avatar animations on by default. (Using the now old animation machinery.)
...
Default robot avatar consistent with the animations.
Don't require all the bones to be present.
2015-09-04 14:24:37 -07:00
Stephen Birarda
ed19987b7d
resolve conflicts on merge with upstream/master
2015-09-04 12:31:46 -06:00
Anthony J. Thibault
3f258c89b4
Fix transition from AG+Rig to AG only.
2015-09-04 11:03:59 -07:00
Anthony J. Thibault
dcecd7b73a
Added hysteresis to the state machine for turning and moving states.
...
This should help a bit with the jerkiness, as state transitions
occur less often due to noise or the user straddling the boundary
between two states.
2015-09-03 19:13:39 -07:00
Anthony J. Thibault
85cb503152
Made Enable Anim Graph menu option dynamic.
...
It will load the anim graph when enabled and destroy
the anim graph when disabled.
2015-09-03 14:46:44 -07:00
Anthony J. Thibault
30264e9c3d
Added animation debug draw items to menu.
...
* Debug Draw Bind Pose - used to display the current avatar's bind pose
* Debug Draw Animation - used to display the current avatar's AnimGraph animation.
Currently does not work with old animation so it's only valid when Enable Anim Graph is true.
* Draw Mesh - used to hide or display the avatar mesh.
2015-09-02 21:04:29 -07:00