Anthony J. Thibault
54af6af651
Fix for pole vector stability and knee pole vector computation
2017-06-23 10:38:21 -07:00
Anthony J. Thibault
81852cd91c
warning fixes
2017-06-16 18:15:41 -07:00
Anthony J. Thibault
e7991579ef
Enabled elbow pole vectors
...
There are still some issues with rotations of the elbow pole vectors.
* When the (hand - shoulder) vector approaches the normal vector used in Rig::calculateElbowPoleVector() unexpected twists can occur.
* Also, when the (hand - shoulder) vector approaches zero, the IK system starts to flutter between two states.
* The shoulder twist constraint probably needs to be opened up for more natural range of motion.
2017-06-16 17:29:56 -07:00
Anthony J. Thibault
cdfba52488
precondition initial solution before solving to reduce limb locking.
2017-06-15 15:02:42 -07:00
Anthony J. Thibault
fac21033e7
Fixed matthew sitting pose by opening up UpLeg twist constraint to +- 90 degrees.
2017-06-14 11:53:54 -07:00
Anthony J. Thibault
10f94c2d60
Fixed pole vectors on straight limbs by using reference vector
2017-06-14 11:35:53 -07:00
Anthony J. Thibault
f20c03fa6e
Pole vectors can be controlled via anim vars.
2017-06-13 15:36:05 -07:00
Anthony J. Thibault
7521d6124e
WIP: added blend between hips and foot for knee pole vector
2017-06-12 17:23:23 -07:00
Anthony J. Thibault
0cde22d937
Bug fix for pole constraint on legs
2017-06-12 12:13:03 -07:00
Anthony J. Thibault
e8ca1a3060
WIP: added magnitude to damping rotation near singularities.
...
Also knee pole constraints don't work.. why?
2017-06-09 18:09:38 -07:00
Anthony J. Thibault
bb45fe0388
WIP, straight arm still rotates..
2017-06-09 09:48:03 -07:00
Anthony J. Thibault
02f06d4d4e
WIP pole vectors work.. but still have issues...
2017-06-09 09:48:02 -07:00
Anthony J. Thibault
6564cfd5d1
WIP
2017-06-09 09:48:00 -07:00
Anthony Thibault
e3c342aa77
Merge pull request #10595 from hyperlogic/feature/spine-spline
...
Spline IK target support
2017-06-08 18:09:55 -07:00
Anthony J. Thibault
8334dff610
compute rotation from derivative of spline
...
This should fix bad rotation values for the spine during bowing/touching toes.
2017-06-08 15:00:12 -07:00
Anthony J. Thibault
2422c7e1bb
code review feedback
2017-06-02 15:47:51 -07:00
Anthony J. Thibault
551426f46e
Made computeSplineJointInfosForIKTarget more general
...
It should now work for non-vertical oriented splines.
2017-06-01 13:56:06 -07:00
Anthony J. Thibault
f99b579c14
added some docs
2017-06-01 13:38:18 -07:00
Anthony J. Thibault
226855b2b9
Bug fixes and cleanup
...
* Bug fix for problem when chest target is enabled but hips target is not.
* centralized the two computeSplineFromTipAndBase functions into one.
* Removed dead code
2017-06-01 13:20:50 -07:00
Anthony J. Thibault
813feeb8fd
Limit spine spline compression/stretch to 15%
2017-06-01 08:56:42 -07:00
David Rowe
47e65e942e
Gradually relax hands from controlled positions when lose tracking
2017-06-01 23:42:08 +12:00
David Rowe
95aab28e91
Disable unused code
...
Keep for future experimentation per other commented-out code in method
2017-06-01 18:13:57 +12:00
Anthony J. Thibault
d3ca34956d
Fix spline interpolation the wrong way when bending backward.
2017-05-31 16:58:17 -07:00
Anthony J. Thibault
cff42ab9b0
Working spline spline.
2017-05-30 19:01:52 -07:00
Anthony J. Thibault
d4dbd94a35
Compute defaultSpineSplineto defaultPose offset
2017-05-30 14:25:32 -07:00
Anthony J. Thibault
39c23bfe2f
revision of spine spline rotation calculation
2017-05-30 14:25:30 -07:00
Anthony J. Thibault
fc12d7547a
Addition of CubicHermiteSpline helper classes.
2017-05-30 14:25:29 -07:00
Anthony J. Thibault
e99001d86c
debug draw ik chains, bug fix for flex coef on tips
...
And opened up hip constraints.
2017-05-18 16:29:55 -07:00
Anthony J. Thibault
87adeb0565
apply flexCoeff to tip of joint chain as well.
2017-05-18 11:26:49 -07:00
Anthony J. Thibault
abe19310da
WIP: checkpoint of ik changes
2017-05-18 11:26:48 -07:00
Anthony J. Thibault
0018224fef
moar warning fixes
2017-05-17 16:23:39 -07:00
Anthony J. Thibault
be7a9a2383
warning fixes
2017-05-16 11:00:25 -07:00
Anthony J. Thibault
1e276d113c
Added support for weights per target
2017-05-15 09:26:24 -07:00
Anthony J. Thibault
67fbb15faa
WIP: initial implementation of flexCoefficients
2017-05-15 09:26:23 -07:00
Anthony J. Thibault
a14fa5dab9
code review feedback
2017-05-11 10:54:15 -07:00
Anthony J. Thibault
e63dc52ec9
moar warning fixes
2017-05-09 13:59:07 -07:00
Anthony J. Thibault
0bcc3c023e
warning fixes
2017-05-09 13:07:06 -07:00
Anthony J. Thibault
7b35e8c7fd
Bug fix for hands, reduced elbow angle to 60 degrees from horizontal.
2017-05-09 11:57:41 -07:00
Anthony J. Thibault
fe69f58174
Bug fix centerLimit rot for LeftArm, also, lower arms in centerLimit pose
...
Lowering the arms in centerLimit poses will help keep the elbows relaxed on the side of the body.
2017-05-09 09:47:26 -07:00
Anthony J. Thibault
84aa86b464
Added animVar support for IK solutionSource.
2017-05-08 18:07:45 -07:00
Anthony J. Thibault
2166d8c159
Added setSolutionSource to AnimInverseKinematics node.
2017-05-08 15:06:31 -07:00
Anthony J. Thibault
7af93f9fea
Hooked up IK constraint rendering
2017-05-08 15:06:29 -07:00
Anthony J. Thibault
e992d6703a
WIP: debug render joint constraints.
2017-05-08 15:06:28 -07:00
Anthony J. Thibault
a260163aee
WIP commit, first pass at generating limit center joints + debug draw
2017-05-08 15:06:27 -07:00
Anthony J. Thibault
c61e6a8a9e
AnimInverseKinematics: reduce number of magic constants
2017-04-27 18:24:21 -07:00
Anthony J. Thibault
4336e22f5a
clang warning fix
2017-04-24 17:06:02 -07:00
Anthony J. Thibault
937f308ba8
code cleanup
2017-04-24 17:04:16 -07:00
Anthony J. Thibault
8adbe34c27
added comment
2017-04-24 14:36:56 -07:00
Anthony J. Thibault
deca26e9eb
Fix for HMDHead tip constraint
2017-04-24 14:33:14 -07:00
Anthony J. Thibault
1cd0f03242
Restore master version of computeHipsOffset() and special case for HeadHMD target type
2017-04-24 14:19:06 -07:00
Anthony J. Thibault
dc3803a225
Re-enable IK _hipsOffset computation when no hips IK target is present.
2017-04-24 13:59:02 -07:00
Anthony J. Thibault
47e51493e8
dynamicallyAdjustLimits on the underPoses not the relaxed poses.
2017-04-24 09:56:10 -07:00
Anthony J. Thibault
22e79504bb
Elliptical swing targets for the spine, Bug fix for debug draw
2017-04-14 17:00:50 -07:00
Anthony J. Thibault
d464020577
Adjust min angle of knee constraint to prevent leg locks
2017-04-14 17:00:48 -07:00
Anthony J. Thibault
adaf7dda7c
Check in viveMotionCapture test script.
2017-04-14 17:00:45 -07:00
Anthony J. Thibault
a10b157aff
First pass at having an explicit Hips IK target.
...
Also, AnimManipulator nodes support setting position and rotation on a single joint.
2017-04-14 17:00:44 -07:00
Anthony J. Thibault
5eddd232b0
Fix for change from std::string to QString
2017-03-24 17:03:01 -07:00
Anthony J. Thibault
49a95089d1
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.
(cherry picked from commit a028d3ba58
)
2017-03-24 16:27:27 -07:00
Anthony J. Thibault
dd17b2e2f3
Added developer option to draw IK targets in world.
...
(cherry picked from commit 7e7803c648
)
2017-03-24 16:20:52 -07:00
Atlante45
ff9d6d657c
Remove weighted offset, special case downward pressure
2017-03-06 19:41:08 -08:00
Atlante45
e03368414e
CR
2017-02-27 18:57:44 -08:00
Atlante45
2d8b71810e
remove hips swing
2017-02-27 16:38:57 -08:00
Andrew Meadows
6991970044
relax lower spine for head IK when sitting
...
also: fix crash bug for bad parentJointIndex
also: reduce limit leakage for IK rotation
2017-02-27 16:38:57 -08:00
Atlante45
d9e2b3a20d
Remove lower spine constrain while sitting, losen head
2017-02-27 16:38:56 -08:00
Atlante45
fcc924ce8e
Add downward force on the hips to strech the spine.
2017-02-27 16:38:56 -08:00
Atlante45
36dc2dc49d
Compute spine length on skeleton load
2017-02-27 16:38:56 -08:00
Atlante45
e9316d30d0
More IK smoothing experimentation
2017-02-27 16:38:56 -08:00
Atlante45
187cd0d5cf
Get IK error and stand up based on it
2017-02-27 16:38:55 -08:00
Atlante45
cc5967e8f9
Pull part of the Out Of Body Exp code
2017-02-27 16:38:53 -08:00
Brad Davis
e5e9ab42ea
Encapsulate AnimPose members for easier optimizations
2016-12-28 12:11:24 -08:00
Brad Davis
30a9961362
tracing polish
2016-12-16 14:02:27 -08:00
Ryan Huffman
7bb2755913
Add chrome tracing support
2016-12-16 01:14:01 -08:00
Anthony J. Thibault
89ae3b3d6e
Revert "Merge pull request #8691 from highfidelity/out-of-body-experience"
...
This reverts commit efe9571ab8
, reversing
changes made to 333e9ec7f4
.
2016-12-05 15:18:03 -08:00
Anthony J. Thibault
b68dbab994
Fix for incorrect hand offset when backing into collision.
...
We know properly account for the offset of the head due to clamping from a small maxHipsOffset.
This means the hands should look more natural when you are out-of-body and are moving your hand controllers.
2016-09-23 11:47:44 -07:00
Andrew Meadows
61be99b87e
fix IK bug for RotationOnly head target
2016-09-22 16:14:19 -07:00
Anthony J. Thibault
9fa8fc11c9
More stability in hips offset calculation.
2016-09-21 18:20:35 -07:00
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