Andrew Meadows
224fc55033
put IK targets in skeleton's model-frame
2015-10-06 16:49:29 -07:00
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
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
8453043038
remove unused variable
2015-10-01 13:23:51 -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
Seth Alves
4179e4aa74
merge from upstream
2015-09-28 15:28:10 -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
Howard Stearns
266c69fc70
Disable the old-school Rig::inverseKinematics during reset.
2015-09-24 15:33:52 -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
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
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
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
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
5aeebba90e
Renamed AnimController to AnimManipulator, Removed offsets on IK targets
2015-09-16 15:49:47 -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
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
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
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
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
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
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
Andrew Meadows
90fe54e6d6
remove cruft and minor cleanup
2015-09-08 15:03:12 -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
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
471400e595
Fix for jerky behavior when positionDelta is zero.
...
This can occur with vsync disabled. Possibly due to two avatar updates occurring
within a single physics time-step.
2015-09-02 19:59:05 -07:00
Anthony J. Thibault
de31b92fd5
Merge branch 'master' into ajt/new-anim-system
2015-09-02 17:53:56 -07:00
Anthony J. Thibault
46b3a7fd23
Improved default avatar.json state machine.
...
Now triggers 7 states.
Idle, WalkFwd, WalkBwd, StrafeLeft, StrafeRight, TurnLeft & TurnRight.
As well as variable speed walking to match current velocity.
2015-09-02 17:28:06 -07:00
Howard Stearns
389e752b6e
Merge pull request #5695 from AndrewMeadows/dysprosium
...
avoid bad joints when computing avatar bounding capsule
2015-09-02 15:58:42 -07:00
Anthony J. Thibault
fea030b9a0
Compile and warning fixes for MacOSX.
2015-09-02 12:18:17 -07:00
Seth Alves
3e11852845
Merge pull request #5685 from howard-stearns/standing-hmd-animations
...
Standing hmd animations
2015-09-02 10:57:45 -07:00
Anthony J. Thibault
d151474446
Merge branch 'master' into ajt/new-anim-system
2015-09-02 10:00:36 -07:00
Anthony J. Thibault
7b4cb8655c
First pass integration of new anim system into rig.
2015-09-01 17:57:01 -07:00
Andrew Meadows
4a7a384c65
avoid bad joints when computing bounding capsule
2015-09-01 14:12:14 -07:00
Andrew Meadows
7410baedf0
merge highfidelity/master into andrew/copernicium
...
Conflicts:
interface/src/avatar/SkeletonModel.cpp
libraries/animation/src/Rig.cpp
libraries/animation/src/Rig.h
2015-09-01 11:08:01 -07:00
Andrew Meadows
47c18fa18a
reduced gravity effect in IK
2015-09-01 09:51:14 -07:00
Andrew Meadows
0e5b357362
revert unintended change to "gravity" term in IK
2015-09-01 09:51:14 -07:00
Andrew Meadows
bdcc68ce36
fix bug: allow IK to iterate more than once
...
also changed name of parentTransform to be rootTransform
for more correctness
2015-09-01 09:51:14 -07:00
Andrew Meadows
bb63267e30
fix hand IK rotations or all models
2015-09-01 09:45:14 -07:00
Howard Stearns
2dbfa5ce9f
Be more uniform in deciding animation movement, and incorporate HMD standing mode (which sets position, but not velocity).
2015-08-31 11:10:05 -07:00
Andrew Meadows
d3f06af892
remove PhysicsEntity class
2015-08-27 18:22:12 -07:00
Howard Stearns
96c74ebbd5
Enable Rig Animations is now a developer menu item (rather than requiring javascript to set). Also turning it off resets you to bind pose and deliberately throws away old animations.
...
Default animations are the new ones for our standard T-pose. (Had been for the double-A pose fightbot.)
Rig state machine now does "backup", and doesn't apply strafe while turning.
2015-08-27 12:25:40 -07:00
Howard Stearns
d28c555a79
Synchronize eye joint and debugging vectors when the other avatar is looking at me.
2015-08-14 16:47:34 -07:00
Howard Stearns
964d04d24f
Restore correct space for eye joint rotations.
...
Also, do not correct for camera position on my avatar. (That will be done by zero or one receivers.)
2015-08-10 12:34:01 -07:00
Seth Alves
b1e69537f3
Merge pull request #5524 from howard-stearns/cleanup-jointstate
...
Clean Up JointState
2015-08-07 13:50:02 -07:00
Howard Stearns
145b730f80
Clean up instantiation.
2015-08-07 12:27:26 -07:00
Howard Stearns
a840a17106
Change name originalRotation defaultRotation.
2015-08-06 19:45:58 -07:00
Howard Stearns
42cc34cd64
JointState has our own copy of any ivars we want from FBXJoint, instead of keeping a reference to the fbx.
2015-08-06 16:54:09 -07:00
Howard Stearns
02f57286e4
Don't let individual startAnimation get messed up by blend/fade.
2015-08-06 11:30:18 -07:00
Howard Stearns
bb974edf7f
Add assert on mix range.
2015-08-05 11:09:04 -07:00
Howard Stearns
f51b5be167
Simplify fade normalization, eliminating a loop.
2015-08-05 11:00:40 -07:00
Howard Stearns
2f2b59b6b6
Merge branch 'master' of https://github.com/highfidelity/hifi into smooth-faded-animations
2015-08-05 10:05:05 -07:00
Howard Stearns
a1f86cc7b8
Make MSVC happy.
2015-08-04 19:49:12 -07:00
Howard Stearns
731bcba956
Merge branch 'master' of https://github.com/highfidelity/hifi into smooth-faded-animations
2015-08-04 17:27:23 -07:00
Howard Stearns
61198a658c
Smooth fading of animations in and out.
...
Also, turn on the secret rig animations from Javascript with MyAvatar.setEnableRigAnimations(true). (persists)
2015-08-04 17:04:15 -07:00
Seth Alves
9171033f21
Merge branch 'master' of github.com:highfidelity/hifi into rig
2015-08-04 16:06:38 -07:00
Eric Levin
f506e58687
Merge pull request #5490 from howard-stearns/restart-animations-at-specified-parameters
...
restart animations at specified parameters
2015-08-04 15:09:11 -07:00
Howard Stearns
61afc362e7
For startAnimation (but not startAnimationByRole), use the specified parameters even if the animation
...
was already playing. This fixes the behavior exercised by the squeezeHands.js script.
Fixes https://app.asana.com/0/32622044445063/44025709513292
2015-08-03 17:00:39 -07:00
Howard Stearns
2e5142e9bb
Fix end of idle.
2015-08-03 16:09:48 -07:00
Howard Stearns
cdb697760f
Remove some debug.
2015-08-03 15:51:07 -07:00
Howard Stearns
4c1d1a65d5
Provide initial fight club animations and use them in rig.
...
Still only active when you do Settings.setValue('enableRig', true) and restart.
(Will be more exposed after fadein/fadeout is implemented.)
2015-08-03 15:41:15 -07:00
Seth Alves
c80516a051
Merge branch 'rig' of github.com:howard-stearns/hifi into rig
2015-07-30 18:39:09 -07:00
Seth Alves
c1f777e18f
move setHandPosition from SkeletonModel to AvatarRig. Tell Rig::initJointStates joint-indexes for hands and elbows and shoulders
2015-07-30 18:39:01 -07:00
Howard Stearns
78a900c866
Prototype blend. Just equal weighting for now.
2015-07-30 17:01:48 -07:00
Anthony J. Thibault
4bb415fd0d
Fix for torso twist.
...
Off by one error, 0 is a valid parent bone index.
2015-07-30 09:31:23 -07:00
Anthony J. Thibault
c2934bdb5d
Fix avatar head, eye and torso twist.
...
* Updated SkeletionModel::updateRig to explicitly pass a set of HeadParameters
to the rig to do procedural animation.
* Moved torso lean procedural animation from SkeletonModel into Rig.
* Moved eye tracking procedural animation from HeadModel into Rig.
* Moved neck procedural animation from HeadModel into Rig.
2015-07-29 17:35:29 -07:00
Howard Stearns
a9f76324b5
Merge branch 'rig' of https://github.com/sethalves/hifi into sethalves-rig2
2015-07-29 10:49:27 -07:00
Anthony J. Thibault
b06485c266
Remove cauterize code from Rig and move it back into Model.
...
* cauterize code is used as at render time and is not dependent on
the jointStates.
* MyAvatar now initialize the bone set used for cauterization and
makes the decision to perform cauterization or not in preRender.
2015-07-28 17:45:33 -07:00
Howard Stearns
4754615159
Fix NPC animations.
2015-07-28 12:34:10 -07:00
Seth Alves
6e5aca6da4
merge from upstream
2015-07-27 16:52:36 -07:00
Howard Stearns
146ddd2240
Cleanup false starts.
2015-07-27 13:42:18 -07:00
Howard Stearns
990f0d6d07
Pass correct position/velocity/orientation to Rig simulation.
2015-07-27 12:57:39 -07:00
Seth Alves
a3c6a4b9bc
merge from upstream
2015-07-27 09:29:18 -07:00
Howard Stearns
dac6667ee6
Start of state.
2015-07-27 09:21:24 -07:00
Howard Stearns
8b5f24e4df
Keep list of animations in Rig, not MyAvatar.
2015-07-24 22:02:39 -07:00
Howard Stearns
4e298d815d
Add the joint mapping necessary for playing animations in the rig.
2015-07-24 14:07:32 -07:00
Seth Alves
d5400e2b9d
Merge branch 'rig' of github.com:howard-stearns/hifi into rig
2015-07-23 15:14:23 -07:00
Seth Alves
33c97a1833
get rid of _firstPersonSkeletonModel in MyAvatar. add flag in Rig for joints being dirty so Model knows when to recompute meshes
2015-07-23 15:14:10 -07:00
Howard Stearns
9593668110
Bring animation file headers up to date.
2015-07-23 15:08:22 -07:00
Seth Alves
4566d16402
move Model's AnimationHandles to Rig. Move a bunch of Model methods from public to protected
2015-07-23 13:03:38 -07:00
Seth Alves
ee334ff826
JointStates are owned by Rig objects. Model, FaceModel, SkeletonModel call into their Rig pointer to access JointStates.
2015-07-22 18:43:10 -07:00
Seth Alves
7c8d52cbd1
back out some changes to Model.cpp, change how rig pointer is delivered to model initilizer
2015-07-22 13:41:31 -07:00
Seth Alves
abfe60aa20
whenever Model class uses _jointState, use the Rig version if there is a Rig.
2015-07-20 18:31:42 -07:00
Seth Alves
bcd6b30ec3
move AnimationHandle from render-utils to animation. give Rig some jointstates and animation lists
2015-07-17 13:31:48 -07:00
Howard Stearns
5312993e56
Hmm, last was missing some emptiness.
2015-07-15 15:30:34 -07:00
Howard Stearns
bbb5f832a2
Empty Rig.
2015-07-15 15:11:16 -07:00