Commit graph

872 commits

Author SHA1 Message Date
Seth Alves
e9bdbd7715 Merge branch 'calvin' of github.com:samcake/hifi into faster-getters-on-avatar-for-scripts 2017-07-06 11:09:38 -07:00
Anthony J. Thibault
06d512dab9 Warning fixes 2017-07-05 10:43:24 -07:00
Anthony J. Thibault
56cd31e92d Merge branch 'master' into feature/smooth-ik-chains 2017-07-05 09:33:22 -07:00
Anthony J. Thibault
1a24d4d8ec added safeLerp, shortest angle quat lerp with post normalize 2017-07-05 09:31:02 -07:00
Anthony J. Thibault
7ed1382ac9 ik level interpolation of incoming targets 2017-07-03 16:32:46 -07:00
Anthony J. Thibault
2f6a37ee53 Removed interpolation of hand controllers 2017-07-03 16:31:05 -07:00
Anthony J. Thibault
aba164b26e more clean up of Rig::computeAvatarBoundingCapsule 2017-06-30 13:27:53 -07:00
Anthony J. Thibault
237872e477 sizes and order of IKTargetVarVec and IKTargetVec are now the same.
Also, A change in how the bone name to bone index lookup occurs exposed a bug
in Rig::computeAvatarBoundingCapsule(), basically it was not actually preforming IK,
and the ik targets were in the wrong coordinate frame.  So when IK was actually
performed it would give bad results.  This bug is now fixed.
2017-06-30 12:47:01 -07:00
Brad Davis
6fc82bb351 Switch to preprocessor macro for blocking invokes to capture function information 2017-06-30 11:36:24 -07:00
Anthony J. Thibault
75e1a4a1e6 Refactor of JointChainInfo data structure 2017-06-30 09:28:39 -07:00
Anthony J. Thibault
c7e4bf931b WIP: first steps toward smoothing ik chains 2017-06-30 09:28:38 -07:00
Brad Davis
b52dd7b822 Don't use blocking connections on the main thread 2017-06-29 20:45:17 -07:00
Sam Gateau
f7a3b3a411 Experimenting faster getters on Avatar for scripts 2017-06-29 15:55:47 +02:00
Clément Brisset
a2c15c9794 Merge pull request #10770 from jherico/fix_deps_1
Cleanup entity dependencies
2017-06-28 10:48:58 -07:00
Brad Davis
8130a91b8c Cleanup entity dependencies 2017-06-27 19:15:49 -07:00
Anthony J. Thibault
d4122cff5a warning fix 2017-06-27 11:29:08 -07:00
Anthony J. Thibault
2814c94582 Hips should no longer waggle when feet are active 2017-06-26 17:43:51 -07:00
Anthony J. Thibault
8602d57a57 Eliminated to wiggle while pucks are enabled.
* Added new anim node AnimDefaultPose
* AnimNodeLoader was changed to support the addition of the AnimDefaultPose node
* Edited default avatar-animation.json to insert an AnimOverlay and AnimDefaultPose between the IK node and the rest of the "underPose".
* Rig uses this to fade in default pose for the toes when the hip/feet puck are active.
  This effectively deadens the toe animations, without effecting the hand animations.
* Also, the rig was changed to use the LimitCenter solution when the feet are enabled but the hips are not.
2017-06-26 14:09:10 -07:00
Anthony J. Thibault
b8c638b2b7 warning fixes 2017-06-23 14:36:59 -07:00
Anthony J. Thibault
f320610681 opened up shoulder constraint + other fixes
* bent elbows will be away from the body a bit more.
* sped up smoothing of pole vectors
2017-06-23 14:06:00 -07:00
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
2dcca2125b Merge branch 'master' into feature/pole-vector 2017-06-21 15:50:03 -07:00
Anthony J. Thibault
0f51236fb0 Rig.cpp: take avatar scale into account when computing elbow pole vector 2017-06-21 14:36:42 -07:00
Anthony J. Thibault
1979ed7f3a Disable elbow pole vector if arm/shoulder pucks are enabled 2017-06-19 16:58:11 -07:00
Anthony J. Thibault
c236afe68c Simplify passing data from MySkeletonModel to Rig 2017-06-19 16:54:39 -07:00
Anthony J. Thibault
6bbc5bfbea formatting on initializers 2017-06-19 13:42:39 -07:00
Brad Davis
ed6620fc51 Merge pull request #10718 from jherico/frame_thread
Cleanup and refactoring
2017-06-19 13:31:44 -07:00
Anthony J. Thibault
3f5aba2655 improved elbow pole vector calculation
Also, pole vectors are blended spherical linearly, this might help fast moving
pole vectors from rotating too quickly.
2017-06-19 13:21:12 -07:00
Anthony J. Thibault
81852cd91c warning fixes 2017-06-16 18:15:41 -07:00
Anthony J. Thibault
323dc62ef2 Merge branch 'master' into feature/pole-vector 2017-06-16 17:37:11 -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
Brad Davis
a69cf31f4b PR feedback and cmake fixes 2017-06-16 16:59:58 -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
David Rowe
570ec8457d Refactor 2017-06-14 10:45:30 +12:00
Anthony J. Thibault
f20c03fa6e Pole vectors can be controlled via anim vars. 2017-06-13 15:36:05 -07:00
David Rowe
5eee2d8352 Code review 2017-06-13 12:39:46 +12: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
David Rowe
3e126c0517 Smoothly ease hands from uncontrolled to controlled positions 2017-06-12 17:14:13 +12: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
606c6415ae Merge branch 'master' into feature/spine-spline 2017-06-07 10:53:46 -07:00
David Rowe
5cb1918b80 Simplify code 2017-06-06 13:26:16 +12:00
David Rowe
ad848706ec Merge branch 'master' into 21202 2017-06-06 11:18:31 +12:00
Andrew Meadows
793ed1313d change variable name for more readable code 2017-06-05 10:30:52 -07:00
Andrew Meadows
1621d31a8e cleanup usage of GLMHelpers::generateBasisVectors() 2017-06-05 08:54:05 -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
Dante Ruiz
d317d9236f made requested changes 2017-05-26 16:40:21 +01:00
Dante Ruiz
0fdf136251 got the shoulders working 2017-05-24 19:31:48 +01:00
Dante Ruiz
ac3c9655ec added arms 2017-05-24 01:28:08 +01:00
Anthony J. Thibault
06c26f029a Merge branch 'master' into feature/faster-ik-iterations 2017-05-23 09:10:17 -07:00
Andrew Meadows
7b879a7964 Model has a Rig rather than a RigPointer 2017-05-19 13:24:16 -07:00
Anthony J. Thibault
621d94eb91 removed temp comments 2017-05-19 10:38:16 -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
78dd30f656 macosx warning fix 2017-05-17 15:22: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
d7f195bc42 warning fix 2017-05-09 13:17:06 -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
5a4b21c0a9 Removed debug code 2017-05-08 18:10:56 -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
712fcbe27a Removed cruft/debug code & comments 2017-05-08 15:06:30 -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
108cd80bb5 Merge branch 'master' into feature/head-standard-action 2017-04-28 10:41:29 -07:00
Anthony J. Thibault
c61e6a8a9e AnimInverseKinematics: reduce number of magic constants 2017-04-27 18:24:21 -07:00
Anthony J. Thibault
764f6c69ea Head input action will override the HMD for IK. 2017-04-27 17:39:25 -07:00
Anthony J. Thibault
1fc9f4c93d Hips and Spine are routed thru input system properly 2017-04-25 17:22:47 -07:00
Anthony J. Thibault
dc19f37726 input/controller routing thru skeleton model and rig. 2017-04-25 15:04:47 -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
b49760cee2 Remove hand IK target collision with body capsule 2017-04-14 17:00:49 -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
0ebaba7cf8 Now supports sensorConfig with hips and chest sensors 2017-04-14 17:00:46 -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
Stephen Birarda
e86db26224 Revert "fix relative/absolute path handling for external FBX textures" 2017-04-10 14:31:02 -07:00
Seth Alves
05bf1930ca Merge pull request #10169 from hyperlogic/feature/absolute-default-joints-in-object-frame
Added accessor to get Avatar default pose in avatar space
2017-04-10 12:55:02 -07:00
Anthony J. Thibault
a06df1a400 Bug fix for passing quats from script to C++ via the animationStateHandler 2017-04-07 14:13:00 -07:00
Chris Collins
4e9e3cccea Merge pull request #10116 from birarda/bug/rel-ext-textures
fix relative/absolute path handling for external FBX textures
2017-04-06 15:58:02 -07:00
Stephen Birarda
0b57b98970 change readFBX calls to use QUrl where possible 2017-04-04 14:53:14 -07:00
Anthony J. Thibault
c58fdb590a Fix for sliding feet when leaning in HMD mode. 2017-04-04 11:00:34 -07:00
ZappoMan
53c439ffba add foot IK targets as actions 2017-03-30 19:11:16 -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
Triplelexx
c2cff55427 rename fronts to forwards 2017-03-22 18:41:06 +00:00
Triplelexx
b7980569cc change all references of IDENTITY_FRONT to IDENTITY_FORWARD 2017-03-21 22:13:33 +00:00
Andrew Meadows
30d7ffb303 fix warning about signed unsigned compare 2017-03-08 17:17:49 -08:00
Andrew Meadows
5847f86db8 fix crash when unpacking too many joints 2017-03-08 16:12:03 -08:00
Atlante45
ff9d6d657c Remove weighted offset, special case downward pressure 2017-03-06 19:41:08 -08:00
Ken Cooke
44c1f8500d redo unsafe optimization 2017-03-04 15:55:53 -08:00
Andrew Meadows
a55ab94cd9 other avatars use jointData no Rig animation 2017-03-02 07:52:02 -08:00
Andrew Meadows
c6730f7c58 Merge pull request #9745 from AndrewMeadows/faster-avatar-updates
Faster avatar updates
2017-02-28 10:55:21 -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
8c232b5abb Initialize max offset to infinity 2017-02-27 16:38:55 -08:00
Atlante45
187cd0d5cf Get IK error and stand up based on it 2017-02-27 16:38:55 -08:00
Atlante45
6821c8621f More sit work 2017-02-27 16:38:54 -08:00
Atlante45
cc5967e8f9 Pull part of the Out Of Body Exp code 2017-02-27 16:38:53 -08:00
Andrew Meadows
faa272c67c don't blend animations for otherAvatars 2017-02-23 17:36:45 -08:00
Thijs Wenker
13b2b6086f Fix recorder.js playback in interface 2017-02-21 19:47:26 +01:00
Atlante45
1201932ee9 Fix SSE2 macros for Macos 2017-02-14 14:10:53 -08:00
Andrew Meadows
08bba5f45f add and remove some profile data points 2017-01-26 08:35:25 -08:00
Brad Davis
1dd2747ef9 Push some tracing into 'detail' categories for easy filtering. Add new tracing categories, add counter change tracking. 2017-01-10 10:44:04 -08:00
Brad Davis
4b4523579a Fix mirrored animations 2017-01-02 14:41:35 -08:00
Brad Davis
171440f70b PR feedback 2016-12-30 17:47:21 -08:00
Brad Davis
7b90d71205 Fix build 2016-12-28 13:23:05 -08:00
Brad Davis
3431db548f Optimize AnimPose(glm::mat) ctor 2016-12-28 12:11:25 -08:00
Brad Davis
dc75894293 Cache more values in AnimSkeleton 2016-12-28 12:11:25 -08:00
Brad Davis
e5e9ab42ea Encapsulate AnimPose members for easier optimizations 2016-12-28 12:11:24 -08:00
Andrew Meadows
e674be9c8c fix animated entities 2016-12-27 15:15:11 -08:00