Commit graph

91 commits

Author SHA1 Message Date
Anthony J. Thibault
a028d3ba58 Remove hacks for debug rendering of IK targets
A AnimContext class was introduced.  This context is passed into every node during evaluation/overlay.
It holds non-animVar "global" data passed from the application.
2016-09-19 15:03:46 -07:00
Andrew Meadows
a58773823d cleanup unused cruft 2016-09-16 14:50:29 -07:00
Andrew Meadows
61a05eb4d1 failed experiment for getting hip lean over table 2016-09-16 10:16:18 -07:00
Andrew Meadows
20418d5f58 fix hips sweep test 2016-09-15 18:39:57 -07:00
Andrew Meadows
83157b573a measure max hips offset and clamp it in IK 2016-09-15 14:55:04 -07:00
Anthony J. Thibault
5e0c2286ec Use OUTOFBODY_HACK as searchable token 2016-09-12 10:58:06 -07:00
Andrew Meadows
28d1faa1c0 remove unused variable 2016-09-12 09:10:11 -07:00
Anthony J. Thibault
7e7803c648 Added developer option to draw IK targets in world. 2016-09-09 12:50:34 -07:00
Anthony J. Thibault
1e95e067c0 warning fixes for llvm/gcc 2016-08-24 15:46:55 -07:00
Anthony J. Thibault
e1f7dfc4e1 Raised max iterations for IK to 16 from 4
* IK now returns early if solution is "good enough"
* IK now has nsight markers for profiling
2016-08-22 10:34:56 -07:00
Anthony Thibault
3b14988577 Fix another crash if "Hips" joint is not found. 2016-07-22 16:27:43 -07:00
Anthony Thibault
a43e9a5710 Fix for crash on avatars with missing "Hips" joint 2016-07-22 16:00:40 -07:00
Anthony J. Thibault
837b19ed1b fix for pushing avatar into floor when exiting away mode.
* Removed MyAvatar.reset() access from JavaScript
* Added HMD.centerUI() to JavaScript, which can be used to reset the 3D UI sphere around the current HMD orientation.
* Added MyAvatar.clearIKJOintLimitHistory() which can be used to reset any remembered IK joint limit history.
* Added MyAvatar.centerBody() which can be used to instantly re-orient the avatar's so that the hips and toes
  are facing the same direction as the current HMD orientation.

away.js now uses the above new API's instead of MyAvatar.reset()
2016-07-19 14:42:24 -07:00
Andrew Meadows
e81e49b32e prevent crash in SwingTwistConstraint 2016-03-18 15:59:25 -07:00
Andrew Meadows
48efbba335 use dynamic constraints for IK 2016-03-11 14:47:48 -08:00
Andrew Meadows
4b75144797 remove debug cruft 2016-03-11 14:47:47 -08:00
Andrew Meadows
df9ccf76ab fix animation-tests 2016-03-11 14:47:47 -08:00
Andrew Meadows
c06d76f7f0 remove twist constraints on hands
also tighten swing limit on shoulder
2016-03-04 10:56:29 -08:00
Anthony J. Thibault
3426173d1d AnimInverseKinematics: open up shoulder swing constraint. 2016-02-17 11:44:11 -08:00
Anthony J. Thibault
2d1304e070 AnimInverseKinematics: use glm::clamp for clarity. 2016-02-16 18:00:45 -08:00
Anthony J. Thibault
b5a72225db AnimInverseKinematics: renamed variable for extra style points 2016-02-16 17:42:51 -08:00
Anthony J. Thibault
df21fffa4a AnimInverseKinematics: fix for extra twist in lowerSpine joints.
* When computing tipPosition, for the next iteration of the CCD,
  use the leverArm before it's projected onto the lowerSpine twist axis.
* fix for acos() that was going outside of valid domain. (-1.0, 1.0)
2016-02-16 17:31:39 -08:00
Seth Alves
af6bb50f74 fix warning 2016-02-10 12:09:28 -08:00
Seth Alves
6fea0b9396 also make sure tau is >= 1.0 2016-02-10 11:20:56 -08:00
Seth Alves
b3b053ce18 if delta-time is more than 1/30th of a second, clamp it to avoid crazy ik induced orbits when main thread is blocked 2016-02-10 09:52:29 -08:00
Anthony J. Thibault
bfeace78f7 AnimInverseKinematics: warning fixes 2016-02-04 18:51:48 -08:00
Anthony J. Thibault
51189cfc50 AnimInverseKinematics: opened up UpLeg and Leg constraints
This improves the quality of the jump animations, while IK is enabled.
2016-02-04 17:56:41 -08:00
Andrew Meadows
71664dffae change string comparisons to be CaseSensitive 2016-02-01 09:50:01 -08:00
Andrew Meadows
de54a0ac4b remove cruft 2016-01-29 14:51:24 -08:00
Andrew Meadows
14ec1b6295 reduce hand IK coupling to hip position 2016-01-29 14:28:56 -08:00
Andrew Meadows
a98459dfa8 minor IK optimization: changed accumulators only 2016-01-29 14:28:56 -08:00
Andrew Meadows
449d566d2a properly track lowestMovedIndex 2016-01-29 14:28:56 -08:00
Andrew Meadows
48f6a9c05f fix IK looping error after minor refactor 2016-01-29 14:28:56 -08:00
Andrew Meadows
7b3f688a17 pull CCD IK solution pass into protected method 2016-01-29 14:28:56 -08:00
Andrew Meadows
1b45f5cc0c tweaks to neck and spine constraints 2016-01-27 14:45:09 -08:00
Andrew Meadows
f67a20ee68 apply _hipsOffset in hips local-frame 2016-01-27 14:45:08 -08:00
Andrew Meadows
00715f1906 apply "hips offset" to root of state graph
(Somemtimes the hips are not the root.
I'm looking at YOU blender!)
2016-01-27 14:45:06 -08:00
U-GAPOS\andrew
2728290ffb fix bug in IK and tune head/neck constraints 2016-01-26 09:37:33 -08:00
Atlante45
d3224bfde3 More warning fixes 2015-12-11 16:03:44 -08:00
Atlante45
ce51350b65 Fix warnings on windows 64bit 2015-12-11 15:42:15 -08:00
Anthony J. Thibault
54408a9c87 AnimVars are now in avatar/rig space
This makes it much simpler for code out side of the rig to manipulate AnimVars

* Removed mat4 type from AnimVars
* AnimVariantMap now has a _rigToGeometryTransform matrix
  used to transform positions and rotations into the correct coordinate frame.
* Moved AnimPose code to extract a quat from a scaled matrix into GLMHelpers
2015-11-20 18:29:17 -08:00
U-GAPOS\andrew
390310f822 swap the order of checks 2015-11-09 14:15:09 -08:00
U-GAPOS\andrew
c07b97920e fix for avatars created with blender 2015-11-09 14:11:45 -08:00
U-GAPOS\andrew
2716a9f2b4 fix IK for feet targets 2015-11-09 13:11:03 -08:00
Anthony J. Thibault
20d95080f1 IK fix for avatars exported from Blender
This should fix the issue with the hips moving erratically when arm IK
is enabled.  The main issue is that the IK system assumed that the "Hips"
joint was the root of the skeleton.  For Blender avatar this is not the case
as it inserts an "Armature" node at the root instead.
2015-11-05 12:03:45 -08:00
Anthony J. Thibault
485e36d824 Bug fix for hand IK when using the Owen avatar.
The IK was assiming that the "Hips" bone index was always 0.
This was not the case for Owen.  Now we lookup the Hips index
and cache it for use during the hipsOffset computation.
2015-10-26 17:17:46 -07:00
Andrew Meadows
917bfbf64e hack to reduce hand influence of hips in HMD mode 2015-10-19 15:19:32 -07:00
Andrew Meadows
8ebdd25b71 more cleanup 2015-10-12 14:07:23 -07:00
Andrew Meadows
22786dea7d cleanup 2015-10-12 13:35:26 -07:00
Andrew Meadows
44243aaa52 remove some debug code 2015-10-12 11:39:54 -07:00