Anthony J. Thibault
c0be32d359
Fix for model offset when using Rig Animations.
2015-10-02 11:40:46 -07:00
Anthony J. Thibault
fc7b6dee84
Merge branch 'master' into transmit-joint-translation
2015-10-02 11:40:33 -07:00
Anthony J. Thibault
a1b54945d6
Compute the model offset in the rig, using the bind pose of the hips.
2015-10-02 10:34:34 -07:00
Anthony J. Thibault
fa864d29f9
Merge branch 'master' into transmit-joint-translation
2015-10-01 16:55:24 -07:00
Howard Stearns
53e7d5fd7c
Merge pull request #5975 from AndrewMeadows/cleanup-legacy-constraints
...
remove cruft relating to old verlet avatar skeleton simulation
2015-10-01 16:48:33 -07:00
Anthony J. Thibault
fe5ea471a1
AnimClip: read in translations from fbx file and pre-process them
...
Do the following things to the translations
1. scale by the model offset, this should move the translations into the correct units (meters).
2. compute the ratio between the bone length in the animation and the skeleton.
3. subtract the anim translation from the first translation frame in the animation
effectively turning it into a bind pose delta translation.
4. apply bone length ratio to the resulting delta.
5. set the final translation to be the skeleton rel bind pose + this scaled delta translation
2015-10-01 16:10:33 -07:00
Brad Hefta-Gaub
afe5075e10
Merge pull request #5971 from howard-stearns/AnimVariant-warning-squash
...
Squash compiler warning in AnimVariant.
2015-10-01 14:41:40 -07:00
Howard Stearns
739545794f
Merge pull request #5944 from AndrewMeadows/ik-repairs-007
...
fix bug: IK attenuates fast underpose animations
2015-10-01 14:27:21 -07:00
Andrew Meadows
09ac01a5e7
remove cruft from old verlet avatar simulation
2015-10-01 13:44:50 -07:00
Seth Alves
25cbebb66c
Merge branch 'transmit-joint-translation' of github.com:sethalves/hifi into transmit-joint-translation
2015-10-01 13:24:04 -07:00
Seth Alves
8453043038
remove unused variable
2015-10-01 13:23:51 -07:00
Howard Stearns
335d87134b
Squash compiler warning in AnimVariant.
2015-10-01 10:58:31 -07:00
Anthony J. Thibault
d993d39718
Bug fix for deriveBodyFromHMDSensor calculations
...
The calculation that determined where the body position relative to the HMD
was incorrect, one of the components was in the wrong coordinate frame.
Now use the skeleton's bind pose to compute the proper avatar offsets for the eyes, neck and hips.
Use these offsets to calculate where the hips should be given a specific hmd position and orientation.
Also, added a bug fix for Rig, which would cause a -1 index deference when an avatar was missing
certain named joints, such as, "LeftEye", "Neck" and "Head".
2015-09-30 16:28:33 -07:00
Andrew Meadows
b192d0a9cd
make neck IK target type same as head
2015-09-29 17:39:17 -07:00
Anthony J. Thibault
5e2279ed4b
AnimManipulator: Don't read defaultAbsPose.trans anim var.
...
At the moment the manipulator only supports rotations.
2015-09-29 16:37:43 -07:00
Andrew Meadows
a052f5e125
remove commented out debug line
2015-09-29 16:21:08 -07:00
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