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
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
U-GAPOS\andrew
f01847de14
experimental HMD hips tracking
2015-10-12 11:39:54 -07:00
Andrew Meadows
35d2a5b5ea
track tipRotation for HmdHead target
2015-10-12 11:39:54 -07:00
Andrew Meadows
5f1068c404
cleanup and optimization of IK loop
2015-10-12 11:39:54 -07:00
Andrew Meadows
6a96d5f0c5
don't bother to create targets with bad types
2015-10-12 11:39:54 -07:00
Andrew Meadows
bc48f70877
move IKTarget into its own files
2015-10-12 11:39:54 -07:00
Andrew Meadows
56f038d5a7
simpler logic for tracking hips offset
2015-10-12 11:39:54 -07:00
Andrew Meadows
03eaa95258
initial hip translation from IK
...
works for 2D 3rd person but probably not well for HMD
2015-10-12 11:39:54 -07:00
Andrew Meadows
224fc55033
put IK targets in skeleton's model-frame
2015-10-06 16:49:29 -07:00
Anthony J. Thibault
fc7b6dee84
Merge branch 'master' into transmit-joint-translation
2015-10-02 11:40:33 -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
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
Andrew Meadows
17e3e9394f
allow head translation for 3rd person screenie IK
2015-09-24 12:38:46 -07:00
Andrew Meadows
d25ba8946e
fix animation attenuation from IK relaxation step
2015-09-22 17:20:26 -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
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
Andrew Meadows
07f3abfc91
fix bugs
2015-09-18 12:01:23 -07:00
Andrew Meadows
6ed0a57d9f
avoid unecessary computation of last absolutePose
2015-09-18 10:09:23 -07:00
Andrew Meadows
420acde720
blend IK effects between distinct end effectors
2015-09-17 22:11:59 -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
Andrew Meadows
d74628720f
fix bug using unitialized std::vector elements
2015-09-14 17:14:04 -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
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
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
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
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