Commit graph

864 commits

Author SHA1 Message Date
Ryan Huffman
7bb2755913 Add chrome tracing support 2016-12-16 01:14:01 -08:00
Atlante45
3035d43772 Merge branch 'master' of https://github.com/highfidelity/hifi into fix/settings 2016-11-21 13:05:08 -08:00
Chris Collins
5b91c8f32b Merge pull request #8984 from sethalves/fix-setLocalJointRotation-name
fix names of model-entity joint setters
2016-11-10 13:39:14 -08:00
Anthony J. Thibault
839b1a3c5e Added some jsdoc comments to the C++ source 2016-11-09 18:09:10 -08:00
Seth Alves
51f6b5af78 code review 2016-11-05 10:35:21 -07:00
Anthony J. Thibault
1732448d3c Added tools/skeleton-dump tool
Debug tool that prints out the skeleton hierarchy of fbx files including joint indices, bindPose and defaultPoses.
The verbose option also prints the full FBX transformation set, pre/post rotations etc.
2016-11-04 13:52:16 -07:00
Seth Alves
e41fa94958 implement RenderableModelEntityItem::setAbsoluteJointRotationInObjectFrame and RenderableModelEntityItem::setAbsoluteJointTranslationInObjectFrame 2016-11-04 11:42:31 -07:00
Andrew Meadows
c8d4146351 don't mirror eye animations 2016-10-28 17:08:43 -07:00
Atlante45
d5429e76da Warnings fixes and cleanup 2016-10-12 10:20:19 -07:00
Brad Davis
ecfe56085d GLM update and GLI integration 2016-09-09 10:18:15 -07:00
Andrew Meadows
2c8ab9b2b8 Merge pull request #8497 from hyperlogic/feature/improve-ik-quality
Raised max iterations for IK to 16 from 4
2016-08-25 15:06:11 -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
Seth Alves
87dbfa7e47 add -Wsuggest-override to compile flags and deal with fallout 2016-08-18 09:51:41 -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
SamGondelman
caf4a9fa34 got rid of comparison warning 2016-06-17 14:17:32 -07:00
SamGondelman
59b785a33b trying to debug 2016-06-15 16:55:34 -07:00
Anthony J. Thibault
9292a9ce0b Added MyAvatar.hmdLeanRecenterEnabled property
Used to disable the 'room-scale' avatar re-centering code.
Disabling this can prevent sliding when the avatar is supposed to be sitting or mounted on a stationary object.

Also, removed a bunch of old, unused leaning and torso twisting code.
2016-06-03 13:56:32 -07:00
Brad Hefta-Gaub
06cb625d09 Merge pull request #7959 from hyperlogic/tony/improved-avatar-mixer-precision
Improved Avatar Mixer Rotation Precision
2016-05-25 17:14:12 -07:00
Anthony J. Thibault
a1c32f8c44 Merge branch 'master' into tony/improved-avatar-mixer-precision 2016-05-23 10:24:52 -07:00
Seth Alves
40e862cf9e quiet gcc 5 warnings 2016-05-21 16:53:01 -07:00
Anthony J. Thibault
a251b9e3df Moved translations back into parent relative frame. 2016-05-16 17:48:54 -07:00
Anthony J. Thibault
d86a608825 Properly convert from absolute rig frame to relative geom frame 2016-05-16 17:48:53 -07:00
Anthony J. Thibault
36c175d4cc Ensure that JointData is in the absolute rig coordinate frame. 2016-05-16 17:48:52 -07:00
Anthony J. Thibault
55b0060df9 Convert JointData from relative frame to absolute. 2016-05-16 17:48:52 -07:00
Atlante45
0878d87ac7 remove some unnecessary dependencies 2016-05-14 14:50:02 -07:00
Anthony J. Thibault
80a349c65b Merge branch 'master' into tony/improved-avatar-debug-draw 2016-05-10 14:50:13 -07:00
Zach Pomerantz
09d879e19f Remove delayLoad 2016-05-09 18:09:48 -07:00
Anthony J. Thibault
641e152699 Eye tracking bug fix and debug rendering improvement
* Bug fix for eye tracking in HMD, the "up" orientation of your eyes now match your head.
* DebugDraw: added drawRay method.
* Application: Renamed preRender to postUpdate
* AvatarManager: added postUpdate method that iterates over all avatars.
* MyAvatar: Renamed preRender to preDisplaySide
* MyAvatar: split preRender code into postUpdate and preDisplaySide.
* Removed "Show who is looking at me", "Render focus indicator" and "Render lookat target" debug draw.
* Split "Show Look At Vectors" into "Show My Look At Vectors" and "Show Other Look At Vectors", to make it easier to debug eye tracking.
* "Show Look at Vectors" now draws the right eye red and the left eye blue.
* Removed Avatar and MyAvatar renderBody
* Removed look at rendering from head.
* GLMHelpers: Bugfix for generateBasisVectors when up primary and secondary axis were orthogonal
2016-05-08 16:20:32 -07:00
Brad Hefta-Gaub
49d02b802a Merge pull request #7719 from zzmp/feat/resource-prefetch
Add prefetching to exposed caches
2016-05-02 18:04:26 -07:00
Andrew Meadows
9c0aeb9b81 remove cruft 2016-04-27 16:58:13 -07:00
Zach Pomerantz
bc8a171fde Merge branch 'master' of github.com:highfidelity/hifi into feat/resource-prefetch 2016-04-27 11:55:24 -07:00
Brad Hefta-Gaub
79a1e6264e Merge pull request #7714 from hyperlogic/tony/default-anims-are-local
Avatar animations are now stored locally
2016-04-22 13:44:30 -07:00
Zach Pomerantz
e3131d2098 Rm prefetchAnimation from avatar/rig 2016-04-20 20:14:15 -07:00
Zach Pomerantz
948af75f8a Transfer loaded resources with smart ptrs to avoid shutdown deadlock 2016-04-20 13:00:35 -07:00
Anthony J. Thibault
8e5785cdf8 Avatar animations are now stored locally
Improves FTUE, by no longer going over the network to download default avatar animations.
This also includes support for relative animation urls within the animation.json
2016-04-19 16:11:14 -07:00
Zach Pomerantz
fc61f85bf9 Merge pull request #7698 from hyperlogic/tony/avatar-on-load-complete-callback
Added MyAvatar onLoadComplete Callback
2016-04-19 10:36:20 -07:00
Anthony J. Thibault
1f383680aa Rig: removed unnecessary emitOnLoadComplete method 2016-04-18 13:35:13 -07:00
Omega Hereon [J.L.]
b3b58b8176 Fix instances of error: isnan was not declared in this scope with GCC5.3/Ubuntu 16.04
In all but these 3 files isnan is glm::isnan
2016-04-18 18:45:15 +00:00
Anthony J. Thibault
1682598be7 Added onLoadComplete signal to MyAvatar
This can be used in javaScript to detect when the model has finished loading because the url has changed or the model has been reset.
2016-04-18 11:37:02 -07:00
Joe Large [Omega Heron]
be208ba682 Revert "Correct references to isnan to glm::isnan for compat with Ubuntu 16.04/GCC 5.3"
Moving this to a branch.

This reverts commit b88fc62b97.
2016-04-16 18:24:50 -04:00
Joe Large [Omega Heron]
b88fc62b97 Correct references to isnan to glm::isnan for compat with Ubuntu 16.04/GCC 5.3 2016-04-16 17:46:37 -04:00
Brad Hefta-Gaub
a7b5ea50d7 Merge pull request #7670 from hyperlogic/tony/validate-anim-state-handler-args
Validate arguments to MyAvatar.addAnimationStateHandler()
2016-04-15 14:26:22 -07:00
Anthony J. Thibault
38418d0169 Moved isListOfStrings into shared/ScriptValueUtils
Also fixed some single line ifs.
2016-04-15 13:47:30 -07:00
Howard Stearns
e4f8a67e60 Merge pull request #7649 from hyperlogic/tony/simplify-away-mode
away.js: fix for permanent disabling avatar IK
2016-04-15 13:35:14 -07:00
Brad Hefta-Gaub
21f30f1a10 Merge pull request #7672 from zzmp/fix/name-caches
Name exposed cache objects
2016-04-14 18:02:36 -07:00
Zach Pomerantz
bb02af793c Name exposed cache objects 2016-04-14 17:00:18 -07:00
Anthony J. Thibault
253e4cbb73 validate arguments to MyAvatar.addAnimationStateHandler()
Also validate arguments to MyAvatar.removeAnimationStateHandler() and the return result from the user provided callback function.
2016-04-14 16:25:17 -07:00
Anthony J. Thibault
a1bbb63ec4 Rig: save and restore user animations across resets 2016-04-12 14:51:17 -07:00
Atlante45
05895f628a Revert to using a Resource 2016-04-12 13:51:11 -07:00
Atlante45
5eb4f63573 Use ResourceManager in anim loader 2016-04-12 13:51:11 -07:00
Atlante45
afdfef1482 Make sure we don't use raw resource ptr 2016-04-12 13:51:11 -07:00
Zach Pomerantz
9d3abe5513 Release texs when models are cached 2016-03-31 17:02:40 -07:00
Anthony J. Thibault
80dfed77d7 Fix for flickering eyeballs
Calling glm::axis() on an identity quaternion does not result in a normalized vector.
This vector was used within Rig::updateEyeJoint() to limit the rotation of the eye balls,
to prevent the eyes from rolling back into the avatar's head.

If the avatar was looking straight ahead, this could result in bad quaternions in the eye ball
joint matrices, which in turn would cause the eye ball mesh or any mesh influenced by the eyeball joints
not to render.
2016-03-29 10:01:10 -07:00
Anthony J. Thibault
b4e70d9101 WIP: checkpoint
* bug fix in AABox::operator+=
* added AABox::emiggen
* Avatar now has a default bound for it's skinned mesh.
* WIP: AABox tests;  NEED MORE
* Model: split collision and model mesh render items.
  Because ModelMeshRenderItems need special handling to update bounds for animated joints.
* Model: dynamically update the bound for rigidly bound animated meshes
* Rig: added access to geometryToRigTransform
* RenderableModelEntityItem: try to update bounds for skinned mesh to be the entity dimentions (this doesn't seem to be working)
* Geometry.cpp: removed unused bounds parameter in evalPartBounds
* ModelMeshPartPayload: bounds updating
   * non-animated: use existing _localBound
   * rigid bound mesh: use _localBound transformed by clusterMatrix joint transform
   * fully skinned mesh: use _skinnedMeshBound provided by the application.
2016-03-25 21:29:20 -07:00
Zach Pomerantz
aad40f5de0 Drop network data after processing 2016-03-25 09:58:34 -07:00
Brad Davis
0ac70049c7 Merge pull request #7431 from hyperlogic/tony/vive-rendering-work
OpenVR rendering & Nsight instrumentation improvements
2016-03-24 17:44:30 -07:00
Ozan
003af03b33 Merge pull request #7400 from Menithal/default-use-pre-post
Set UserAnimPreAndPostRotations true by Default
2016-03-24 09:57:03 -07:00
Anthony Thibault
50ac101d56 Avatar and Rig NSIGHT instrumentation 2016-03-22 10:36:32 -07:00
Anthony J. Thibault
df5afffc77 AnimUtil: prevent accumulateTime from looping forever
This might happen with large dts, large timeScales.
2016-03-21 11:58:13 -07:00
Menithal
cdbb7b2ad4 Set UserAnimPreAndPostRotations true by Default
If Blender avatars are animated by Blender animations, they have missing
Pre and Post rotations. This step is no longer necessary to have false,
and also makes sure all animations from Blender Work on all avatars (from
other platforms).

This commit make it default to be enabled:
2016-03-19 12:49:57 +02:00
Andrew Meadows
e81e49b32e prevent crash in SwingTwistConstraint 2016-03-18 15:59:25 -07:00
Brad Hefta-Gaub
447918d148 Merge pull request #7348 from hyperlogic/tony/cppcheck-fixes
Avatar & Animation cppcheck static analysis fixes
2016-03-14 18:58:25 -07:00
Anthony J. Thibault
16a57bda81 SwingTwistConstriant: fix for bad index. 2016-03-14 17:30:53 -07:00
Anthony Thibault
9f30556084 libraries/animation: cppcheck fixes
* Fix for potential bug in AnimLoop due to _maxFrameIndexHint being uninitialized.
* made more single argument constructors explicit.
2016-03-13 17:17:34 -07:00
Anthony Thibault
11fcf00b2a AnimSkeleton.h: made single argument ctors explicit 2016-03-13 16:55:34 -07:00
Anthony Thibault
02b2281def AnimVarient.h: cppcheck fixes
* make all constructors explicit.
* remove static string comparison in assert.
2016-03-13 16:51:57 -07:00
Andrew Meadows
48efbba335 use dynamic constraints for IK 2016-03-11 14:47:48 -08:00
Andrew Meadows
c9f988d340 dynamic adjustment for twist 2016-03-11 14:47:47 -08:00
Andrew Meadows
4b75144797 remove debug cruft 2016-03-11 14:47:47 -08:00
Andrew Meadows
749dcf2c1d dynamic adjustment for swing 2016-03-11 14:47:47 -08:00
Andrew Meadows
6ebb94b1f4 minor API cleanup of SwingLimitFunction API 2016-03-11 14:47:47 -08:00
Andrew Meadows
df9ccf76ab fix animation-tests 2016-03-11 14:47:47 -08:00
Anthony J. Thibault
9351d5edca Rig: warning fix & comments 2016-03-10 12:55:01 -08:00
Anthony J. Thibault
4a78300607 MyAvatar: Allow user to raise hands directly overhead.
Previously we were using a infinitely tall vertical cylinder
to push hand IK targets out of the body, this had the
side-effect of preventing the hands from being raised over
the head.  Now, we collide against the same 3d capsule
used by the physics system for avatar collisions.
2016-03-10 10:20:17 -08:00
Zach Pomerantz
54af58834a Mark Resource loaded after postprocessing 2016-03-09 10:34:07 -08:00
Chris Collins
7850ca3576 Merge pull request #7227 from hyperlogic/tony/eye-look-at-fixes
Avatar eye look at fixes for HMD and desktop
2016-03-07 11:50:16 -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
3cde972174 Rig: issue warnings for missing joints
Also, Removed Rig::computeEyesInRigFrame, it was causing warnings because it was looking up
Eye and Head joints for all models, not just avatars.
2016-03-01 11:07:22 -08:00
Anthony J. Thibault
460582239a Avatar eye look at fixes for HMDs
There were three things that were causing issues with eye look at vectors while wearing an HMD.

1) The matrix returned by AvatarUpdate->getHeadPose() was in the wrong space, it should be in avatar space.
   it was actually returning a matrix in sensor/room space.
2) The lookAtPosition was incorrect while wearing an HMD and with no avatars to look at.
3) The eye rotation limits in Rig::updateEyeJoint were relative to the model's zero orientation, NOT relative to the head.
   this was causing the eyes to hit limits when the avatar head turned.
2016-02-29 18:02:50 -08:00
Anthony J. Thibault
613b60658e Rig: prevent normalization of a zero vector 2016-02-18 10:24:36 -08:00
Anthony J. Thibault
73ac47724a Rig: Prevent the hand IK targets from entering the body.
Use a 2d circle/circle intersection test to keep the hands outside of the body.
2016-02-17 16:23:18 -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
Andrew Meadows
d6a716a1aa only head and torso for bounding capsule radius 2016-02-15 10:29:29 -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
Seth Alves
43592fd699 Merge pull request #7048 from hyperlogic/tony/avatar-on-moving-platform
Better avatar animation when attached to a moving entity
2016-02-09 14:30:02 -08:00
Brad Davis
7d99f9e72f PR comments 2016-02-09 10:16:44 -08:00
Brad Davis
421160eeb6 Make the file parsing threads run at lower priority 2016-02-08 23:55:02 -08:00
Anthony J. Thibault
2667fe3c24 Merge branch 'master' into tony/avatar-on-moving-platform 2016-02-08 14:32:46 -08:00
Anthony J. Thibault
20a38f613e Rig: remove position delta based velocity.
In general, the physics body velocity is MUCH more behaved now.
2016-02-08 14:30:28 -08:00
Philip Rosedale
63afa8c1ed Merge pull request #7040 from hyperlogic/tony/landing-animation
MyAvatar: added standing and run landing animations
2016-02-08 11:38:12 -08:00
Brad Hefta-Gaub
eebf6f8883 Merge pull request #7021 from hyperlogic/tony/animation-mirror-support
AnimClip: Animation mirror support
2016-02-05 19:25:01 -08:00
Anthony J. Thibault
d24a024726 MyAvatar: added standing and run landing animations 2016-02-05 17:53:50 -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
Anthony J. Thibault
8ca8550f26 MyAvatar: Standing Takeoff and In-Air Animations
Now there are two sets of of jump takeoff and in-air animations.
* Run - Used when the character jumps or falls with a small forward velocity.
* Standing - Used when the character jumps or falls in-place or backward.

CharacterController
* increased takeoff duration to 250 ms
* increased takeoff to fly duration to 1100 ms
* added standing jump and in-air animations
* added 250 milisecond delay between ground and hover, to prevent going into hover when walking over cracks.
* take-off to in-air transitions now use the new snapshotPrev interp type for a smoother tweening.
2016-02-04 17:56:07 -08:00
Anthony J. Thibault
a8e092272c AnimStateMachine: added new State parameter interpType
interpType defines how the interpolation between two states is performed.

   * SnapshotBoth: Stores two snapshots, the previous animation before interpolation begins and the target state at the
     interTarget frame.  Then during the interpolation period the two snapshots are interpolated to produce smooth motion between them.
   * SnapshotPrev: Stores a snapshot of the previous animation before interpolation begins.  However the target state is
     evaluated dynamically.  During the interpolation period the previous snapshot is interpolated with the target pose
     to produce smooth motion between them.  This mode is useful for interping into a blended animation where the actual
     blend factor is not known at the start of the interp or is might change dramatically during the interp.
2016-02-04 10:32:58 -08:00
Andrew Meadows
861082964e Merge pull request #7017 from hyperlogic/tony/fly
MyAvatar: Improved Jump / InAir / Fly behavior
2016-02-03 12:22:30 -08:00
Stephen Birarda
93530fca72 fix the last of the current override warnings for OS X 2016-02-03 11:08:41 -08:00
Anthony J. Thibault
03d5bc885b AnimClip: added mirrorFlag anim var 2016-02-02 17:10:15 -08:00
Anthony J. Thibault
e6abc026c8 AnimClip: mirror animation support 2016-02-02 17:02:29 -08:00
Anthony J. Thibault
656608e2ff Fixes for away.js 2016-02-02 12:08:52 -08:00
Anthony J. Thibault
47f3ce3786 CharacterController jump is more reliable. 2016-02-02 11:26:16 -08:00
Anthony J. Thibault
2936811484 Added takeoff animation, WIP
Character controller still has some jump/in-air bugs.
2016-02-02 11:26:15 -08:00
Anthony J. Thibault
61c55ebf6c Updated character controller with a state enumeration
Also, adjusted checkForSupport logic such that very slanted walls are not considered support.
2016-02-02 11:26:15 -08:00
Anthony J. Thibault
e9fd439ffd Added inAir animations 2016-02-02 11:23:46 -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
Anthony Thibault
3cdd88e06c Merge pull request #6951 from ZappoMan/fixAnimationRestart
fix for animations stopping after domain restart
2016-01-27 14:31:27 -08:00
Howard Stearns
0d257b82fa Merge pull request #6934 from hyperlogic/tony/anim-pre-post-rot-support
Avatar Developer Menu: added animation debug options
2016-01-27 10:39:25 -08:00
Brad Hefta-Gaub
f178fc789c fix for animations stopping after domain restart 2016-01-26 18:44:34 -08:00
Anthony J. Thibault
33993b8c44 AnimClip: removed unused static member. 2016-01-26 13:34:21 -08:00
Anthony J. Thibault
69d833a6c0 AnimClip: consistent application of translations
Apply animation translation the same way regardless of state of usePreAndPostPoseFromAnimation.
2016-01-26 10:53:21 -08:00
U-GAPOS\andrew
2728290ffb fix bug in IK and tune head/neck constraints 2016-01-26 09:37:33 -08:00
Anthony J. Thibault
3b062b7a31 AnimClip: special case the translation on the eyes 2016-01-25 18:52:14 -08:00
Anthony J. Thibault
3cee3cbb5a Avatar Developer Menu: added animation debug options
This options are for for developers only and might help debug animation related issues.

* Enable Inverse Kinematics: this can be toggled to disable IK for the avatar.
* Enable Anim Pre and Post Rotations: this option can be used to use FBX pre-rotations from source avatar animations, instead of the current default, which is to use them from the source model.
  This only effects FBX files loaded by the animation system, it does not affect changing model orientations via JavaScript.
2016-01-25 18:52:13 -08:00
Anthony J. Thibault
1bdeeeceeb AnimSkeleton: Added getPre and Post rotation accessors 2016-01-25 18:52:12 -08:00
Anthony J. Thibault
7af20e90c8 Hooked up fly animation to json and Rig 2016-01-22 13:47:09 -08:00
Anthony J. Thibault
cac19b8579 grab animation work
Hand animations now have 5 states:

* idle
* open
* grasp
* point
* farGrasp

The handControllerGrab.js script now chooses one of these five animations, based on the state of the HandController object.

Also, removed hand trigger AnimVar setting from C++ Rig class.
2016-01-07 19:36:57 -08:00
Anthony J. Thibault
3e6ff0eb68 Moved hand animation control into grab script. 2016-01-05 19:56:56 -08:00
Brad Hefta-Gaub
02835fc960 Merge pull request #6702 from hyperlogic/tony/soft-attachments
Soft Attachment Support
2016-01-03 08:46:16 -10:00
Brad Davis
76eba89f7d Merge pull request #6745 from hyperlogic/tony/neuron-plugin
Support for Perception Neuron
2015-12-30 11:39:32 -05:00
Andrew Meadows
ec27c75332 Merge pull request #6660 from hyperlogic/tony/anim-expressions
AnimExpression: boolean expression parser and evaluator
2015-12-30 08:36:44 -08:00
Anthony J. Thibault
c2dd00375d Merge branch 'master' into tony/soft-attachments 2015-12-29 13:21:37 -08:00
Anthony J. Thibault
6afe3bae5e Copy Neuron joints into controller poses
This makes the accessible for controller mapping and to JavaScript.

Added 'neuronAvatar.js' as an example of reading joints from the neuron and setting them
on the avatar.  NOTE: the rotations are currently in the wrong coordinate frame.
2015-12-22 17:21:33 -08:00
Andrew Meadows
aa3d1c6e4c Merge pull request #6680 from hyperlogic/tony/windmill-anim-fix
ModelEntityItem: Fix for incorrect animations with preTranslations
2015-12-18 14:16:35 -08:00
Anthony J. Thibault
6b5b272cd7 Added SoftAttachmentModel class.
Is a subclass of Model, it overrides the updateClusterMatrices so it will pull
the actual joint matrices from a different rig override.

For the avatar soft attachment system, this override will be the Avatar::_skeletonModel rig.
This will give us the ability for an avatar to "wear" non-rigid attachments, such as clothing.
2015-12-18 09:52:11 -08:00
Anthony J. Thibault
3b1ba67a88 ModelEntityItem: Fix for incorrect animations with preTranslations
ModelEntities that were playing animations on models with local pivot offsets were not working correctly.
Specifically, the windmill animation in the demo domain.

We now compose a matrix containing all of the FBX's preTranslation, preRotation and postTranformations.
2015-12-16 17:08:22 -08:00
Anthony J. Thibault
30480f126b Improved idle to walk forward transition
Hooked up a transition animation from idle to walk in the animation json.
Also fixed a bug in the AnimBlendLinearMove which was preventing the interpolation
into idle from being correct.
2015-12-15 17:26:17 -08:00
Anthony J. Thibault
ab85e2967a AnimExpression: support for unary not. 2015-12-15 13:18:30 -08:00
Anthony J. Thibault
22756d168b Changed grammar to support boolean and and or. 2015-12-15 10:35:35 -08:00
Anthony J. Thibault
2b0ed55077 Merge branch 'master' into tony/anim-expressions 2015-12-15 10:35:19 -08:00
Anthony J. Thibault
3f0cdb3c02 Merge branch 'master' into tony/js-avatar-default-pose 2015-12-14 11:19:24 -08:00
Atlante45
d3224bfde3 More warning fixes 2015-12-11 16:03:44 -08:00
Atlante45
da63357254 More warning fixes 2015-12-11 15:42:15 -08:00
Atlante45
ce51350b65 Fix warnings on windows 64bit 2015-12-11 15:42:15 -08:00
Howard Stearns
dfec222c81 Report animation triggers to normal javascript animationStateHandlers, and update away.js as an example. 2015-12-10 20:39:01 -08:00
Anthony J. Thibault
652ce5501f Expose Avatar default pose to JavaScript
New JavaScript API to get the avatar's default pose.

   MyAvatar.getDefaultJointRotation(index);
   MyAvatar.getDefaultJointTranslation(index);

See `examples/tPose.js` for example usage
2015-12-10 13:57:31 -08:00
Seth Alves
f99812a903 adjust method names to fit convention 2015-12-07 14:31:08 -08:00
Anthony J. Thibault
fd4ed29405 MyAvatar.clearJointData bug fix
MyAvatar.setJointRotation() now works properly after MyAvatar.clearJointData()
2015-12-07 09:03:40 -08:00
Seth Alves
a948ae5f19 children of avatar joints might be right, now 2015-12-06 10:48:00 -08:00
Anthony J. Thibault
7abfc93ff9 Avatar::getJointRotation and getJointTranslation is thread-safe
It can be called from script with minimal blocking,
because it inspects a copy of the joint values from the Rig, which is updated atomically.
This copy occurs in Rig::updateAnimations()
2015-12-04 16:16:17 -08:00
Anthony J. Thibault
ba001ef4b0 Rig: split Poses into internal and external sets.
In preparation for making some accessors thread safe.
2015-12-04 15:15:18 -08:00
Anthony J. Thibault
99223d0a3c AnimExpression: support for parsing simple expressions
supports parens, binary +, -, / and *.
/ and * have higher precedence then + and -
2015-12-03 15:02:00 -08:00
Anthony J. Thibault
710ce7e639 Merge branch 'master' into tony/anim-expressions 2015-12-03 09:56:28 -08:00
Anthony J. Thibault
9c0b4bc2a2 Fix for model entities with non-uniform scaled mesh
Logic which extracted rotations from a non-uniformly scaled matrices was sometimes incorrect.

This should fix the roads in Qbit as well as the blocks in toybox.
2015-12-02 14:09:47 -08:00
Anthony J. Thibault
e2d9e37eb8 Fix for head offset for models with no eyes
This was causing in correct body poses while wearing an HMD.
2015-11-30 14:08:21 -08:00
Anthony J. Thibault
5072339a22 Warning fix 2015-11-25 14:04:01 -08:00
Anthony J. Thibault
23def8d173 Merge branch 'master' into tony/remove-joint-states 2015-11-25 13:55:23 -08:00
Anthony J. Thibault
97a2eb62d4 Fix for incorrect avatar bounds after changing avatars 2015-11-25 12:06:50 -08:00
Anthony J. Thibault
868cf83b48 Fix for attachments and MyAvatar::getDefaultEyePosition() 2015-11-25 10:07:29 -08:00
Anthony Thibault
527199bc69 Merge pull request #1 from AndrewMeadows/fix-avatar-capsule
compute bounding capsule of avatars
2015-11-25 09:39:18 -08:00
Andrew Meadows
2cc1dfe819 getRootAbsoluteBindPoseByChildName() is deprecated 2015-11-24 20:39:26 -08:00
Andrew Meadows
3ae082f09c compute bounding capsule of avatars 2015-11-24 20:28:39 -08:00
Anthony J. Thibault
386dad7aff Fixes hand IK for some avatars
Specifically:

   https://hifi-content.s3.amazonaws.com/ozan/dev/avatars/hifi_team/ryan/_test/ryan.fst
   https://hifi-content.s3.amazonaws.com/ozan/dev/avatars/hifi_team/brad/brad.fst
   https://s3.amazonaws.com/hifi-public/tony/blackmery/blackmery.fst

These avatars have "Hips" joints that are NOT the root of the skeleton.
This would cause the getRootAbsoluteBindPoseByChildName() to return (0,0,0).
Causing the IK targets to be lower then they should have.
2015-11-24 18:57:35 -08:00
Anthony J. Thibault
76034d62d5 Eye tracking fixes 2015-11-24 16:57:26 -08:00
Anthony J. Thibault
f120e10ff4 Merge branch 'master' into tony/remove-joint-states 2015-11-24 15:00:05 -08:00
Anthony J. Thibault
e07e1c5c92 Fix for avatar eye tracking
When computing a full eye to world matrix, the translations need to be the geometry coordinate frame, not scaled into meters.
2015-11-24 14:01:01 -08:00
Anthony J. Thibault
14189ac909 Move Y_180 flip rotation out of Rig
This Y_180 flip is defined in skeletonModel not in the rig.
This is important if we wish to use the Rig for both Avatars (180 flip) and Entity models (no 180 flip).

We can hide this 180 flip from script, if we wish, by including it in all the accessors to and from
MyAvatar -> skeletalModel -> Rig.

Added Quaternions::Y_180 to GLMHelpers.
2015-11-23 19:31:27 -08:00
Anthony J. Thibault
8f46b8a765 Added USE_PRE_ROT_FROM_ANIM option to AnimClip
This will allow us in the future to pull preRotations from
animations instead of the model skeleton.  It is disabled
by default because our current animations preRotations are
not correct for the left hand.
2015-11-23 15:58:18 -08:00
Anthony J. Thibault
8252bbed9b AnimSkeleton: added pre rotation accessor methods 2015-11-23 13:50:14 -08:00
Anthony J. Thibault
db21db3cbc Rig.h: more coordinate space comments 2015-11-22 16:34:06 -08:00
Anthony J. Thibault
dc169dc0aa Rig.h: updated comments with coordinate spaces 2015-11-22 16:21:22 -08:00
Anthony J. Thibault
fe683edb66 Avatar Debug Draw Default Pose now works 2015-11-21 10:53:24 -08:00
Anthony J. Thibault
6cfd831a5a Menu: Added Developer > Avatar > Debug Draw Position
Also renamed "Debug Draw Bind Pose" to "Debug Draw Default Pose"
2015-11-21 09:50:56 -08:00
Anthony J. Thibault
995958a8f0 Rig: normalized index bounds checking. 2015-11-20 18:45:53 -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
Anthony J. Thibault
4f8cd6930d Rig: Fixes for initializing _absolutePoses during initJointStates 2015-11-20 15:13:16 -08:00
Anthony J. Thibault
2f37335d77 Warning fixes 2015-11-20 14:50:42 -08:00
Anthony J. Thibault
30087ef0bd Removed dead code 2015-11-20 14:37:53 -08:00
Anthony J. Thibault
cb89f09635 Removed EntityRig and AvatarRig. One Rig to rule them all. 2015-11-20 14:27:01 -08:00
Anthony J. Thibault
a77ea8da43 Removed JointStates! You won't be missed. 2015-11-20 14:15:37 -08:00
Anthony J. Thibault
a4116e633a Removed last consumer of JointState class
Removed option to render IK constraints used by old animation system
2015-11-20 11:26:54 -08:00
Anthony J. Thibault
df7ca3bc38 Rig: getJointRotation and getJointTranslation use _relativePoses 2015-11-20 10:36:40 -08:00
Anthony J. Thibault
923d60e452 Rig: Bug fix for copyJointsIntoJointData 2015-11-20 10:30:12 -08:00
Anthony J. Thibault
ad4b8e0001 Avatar transmission fixes, moved JointData into shared
* Moved JointData into shared library
* added methods to the rig to copy into and out of JointData
* JointData translations must be in meters this is so the
  fixed point compression wont overflow, also, it's a
  consistent wire format.
2015-11-20 10:24:24 -08:00
Anthony J. Thibault
27685e0425 Bug fixes for other Avatar root translation 2015-11-20 09:33:57 -08:00
Anthony J. Thibault
c2ae6f0c8e Fix for remote Avatar
Make sure to copy the correct data to and from AvatarData::JointData
2015-11-20 09:20:41 -08:00
Anthony J. Thibault
302b6f7e26 Mac and Debug build fixes 2015-11-19 18:28:15 -08:00
Anthony J. Thibault
9e36a79155 Rig: hooked up script overridePoses 2015-11-19 18:14:04 -08:00
Anthony J. Thibault
46d23a9f38 head IK and controller IK work again! 2015-11-19 17:30:56 -08:00
Anthony J. Thibault
982e2c06a9 Rig: Switched over to use AnimPoses instead of JointStates
* fixed debug rendering
* improved jointState/animPose diff detection code.
2015-11-19 12:14:04 -08:00
Anthony J. Thibault
721da29432 WIP checkpoint
* No longer normalizing scale in AnimSkeleton and AnimClip
  This means graph is animating in 'geometry' coordinates
  before unit scale is even applied.  This is necessary to
  properly work with both Avatar based models and ModelEntity
  based models

Many things are broken.
  * debug rendering (translations are x100)
  * IK hand targets
  * follow cam
  * I did not even dare to try HMD mode
2015-11-18 18:47:33 -08:00
Anthony J. Thibault
b054ef1488 Rig: fixes for rigs used for ModelEntities. 2015-11-18 16:04:34 -08:00
Anthony J. Thibault
3a74d188b0 AnimSkeleton: Added default poses 2015-11-18 16:03:28 -08:00
Anthony J. Thibault
5ffef7f41a AnimPose: bug fix for extracting rotations from matrices with large scale 2015-11-18 16:02:30 -08:00
Anthony J. Thibault
b481d7c73d Merge branch 'master' into tony/remove-joint-states 2015-11-18 09:38:21 -08:00
Anthony J. Thibault
9a39da9050 new absolutePoses work for avatars, but not for model entities. 2015-11-17 18:53:38 -08:00
Anthony J. Thibault
e93b5c5838 Bug fixes for avatars with no eyes
Changed default eye position to 1.9 meters because
the hifi_team avatars are 2.0 meters tall.

Also, prevent array access with negative indices when eye bones are missing.

ಠ_ಠ
2015-11-17 14:02:27 -08:00
Anthony J. Thibault
80eb247b9c WIP checkin
* AnimManipulator: added absolute and relative position and translation support
* Rig: added _overrideFlags and _overridePoses for script overrides.
2015-11-16 18:49:47 -08:00
U-GAPOS\andrew
6733767d8b use animation state to compute bodyInSensorFrame 2015-11-13 16:39:40 -08:00
Anthony J. Thibault
e698d3c1e8 Isolate JointStates within the Rig class
Except for SkeletalModel::computeBounds() JointStates are now completly
encapsulated by the Rig.  Now we can start using AnimPoses instead and
in parallel with the JointState implementation. Then we can assert that
they are identical, before removing JointStates.

This check in has many comments with the AJT tag.
Each one of these cases will need to be revisitied and fixed.
In particular // AJT: LEGACY will be used to enclose all code
in the Rig which manipulates the _jointState QVector.
2015-11-11 18:23:58 -08:00
Anthony J. Thibault
11440f92f4 Removed rig animations
* Deleted AnimationHandle class
* Removed enableAnimGraph and anableRigAnimations from Menu.
* Removed *some* references to old IK system.
  But it is still used when computing collision bounding volumes
2015-11-11 15:32:57 -08:00
Anthony J. Thibault
56e96ed24c Merge branch 'master' into tony/script-start-stop-anim 2015-11-11 11:33:24 -08:00
Anthony J. Thibault
e1d0a97807 Implemented MyAvatar.prefetchAnimation() JS method 2015-11-10 16:51:48 -08:00
Anthony J. Thibault
936c55a94e New MyAvatar animation JS interface
JavaScript changes:

* removed MyAvatar.playAnimation
* removed MyAvatar.stopAnimation
* removed MyAVatar.getGetAnimationDetails
* removed MyAvatar.startAnimationByRole
* removed MyAvatar.stopAnimationByRole
* removed MyAVatar.getGetAnimationDetailsByRole
* removed MyAVatar.clearJointPriorities

* added MyAvatar.overrideAnimation(url, fps, loop, firstFrame, lastFrame)
* added MyAvatar.restoreAnimation()
* added MyAvatar.getAnimationRoles()
* added MyAvatar.overrideRoleAnimation(role, url, fps, loop, firstFrame, lastFrame)
* added MyAvatar.restoreRoleAnimation(role)
* added MyAvatar.prefetchAnimation(url)

* update kneel.js with new api.
* added theBird.js to test role override api.

C++ changes:

* Added getParent() and replaceChild() to AnimNode
* Added findByName() and traverse() to AnimNode
* Changed AnimStateMachine to hold nodes by childIndex instead of smart pointer.
  This allows script to replace nodes dynamically via overrideRoleAnimation
2015-11-10 16:34:38 -08:00
Anthony J. Thibault
eacc2cae0c WIP checkpoint 2015-11-09 18:36:23 -08:00
Anthony J. Thibault
af2b3bb9d5 MyAvatar: removed priority, hold and maskedJoints from playAnimation js call 2015-11-09 16:56:49 -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
a0f21228f6 AnimGraph support for start and stop animation from JavaScript
Follows the same model as the existing startAnimation and stopAnimation calls.
See kneel.js for an example.
2015-11-09 12:19:01 -08:00
Howard Stearns
314c11e8d4 Make life easier for Sam. 2015-11-06 16:59:46 -08:00
Andrew Meadows
e410030dd9 Merge pull request #6320 from hyperlogic/tony/blender-avatar-ik-fix
IK fix for avatars exported from Blender
2015-11-06 15:00:25 -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
Howard Stearns
aef8b7639d Merge branch 'master' of https://github.com/highfidelity/hifi into away 2015-11-05 11:58:08 -08:00
Anthony J. Thibault
2318e48fa8 AvatarRig: fix for crash when index was -1 2015-11-05 09:43:41 -08:00
Anthony J. Thibault
431a108c35 Bugfixes to expression for !!x expressions
Added stub eval methods. only boolean not, boolean and, boolean or and unary minus
are implemented.
2015-11-04 20:13:17 -08:00
Anthony J. Thibault
04d8a598da First step toward evaluation
* added OpCodes
* added first parser rules
* removed mat4 support from AnimVariantMap
2015-11-04 16:56:34 -08:00
Anthony J. Thibault
a80ab0003c Removed vec literal values 2015-11-04 14:51:05 -08:00
Anthony J. Thibault
32c40d37c0 Removed vec literals tokens and renamed int and float token types 2015-11-04 14:51:05 -08:00
Anthony J. Thibault
4394083138 Added comma token 2015-11-04 14:51:05 -08:00
Anthony J. Thibault
7f0fc4f6eb Added limited floating point support 2015-11-04 14:51:05 -08:00
Anthony J. Thibault
340096d457 Initial version of AnimExpression class with minimal tokenizer 2015-11-04 14:51:05 -08:00
Howard Stearns
94ae1ef638 Fix accumulateTime 2015-11-02 20:37:57 -08:00
Anthony J. Thibault
e3e759248f Merge branch 'master' into tony/anim-sync-blend 2015-11-02 08:37:10 -08:00
Seth Alves
224aeea044 quiet compiler 2015-10-31 08:11:43 -07:00
Howard Stearns
eb9e54de41 Make AnimVariantXXX.xxx consistent. 2015-10-29 19:45:23 -07:00
Howard Stearns
d491ddc3d6 comment. 2015-10-29 19:43:57 -07:00
Howard Stearns
1918f1835c Tolerate AnimVars that are float when we want int, and vice versa. 2015-10-29 19:37:13 -07:00
Howard Stearns
f7d558a252 comment 2015-10-29 19:26:54 -07:00
Howard Stearns
dcc173c93a comment. 2015-10-29 19:21:24 -07:00
Howard Stearns
5d1ba90f1e More readable code. 2015-10-29 19:18:34 -07:00
Howard Stearns
502cc7f580 Don't copy while converting. 2015-10-29 16:44:01 -07:00
Howard Stearns
303491817b assert to get hard error in dev, warning and no-op in release. 2015-10-29 16:35:59 -07:00
Anthony J. Thibault
f7b6fab0c3 Merge branch 'master' into tony/anim-sync-blend 2015-10-29 11:35:48 -07:00
Howard Stearns
4083c5c71b Handle wrapping of very long-lived sessions. 2015-10-29 10:31:36 -07:00
Howard Stearns
d79d0bc5c5 Merge branch 'master' of https://github.com/highfidelity/hifi into expose-anim-vars 2015-10-29 08:25:41 -07:00
Howard Stearns
697b9fb60b Merge pull request #6205 from hyperlogic/tony/eye-lookat-fix
Fixes locally rendered eye gaze
2015-10-28 21:39:54 -07:00
Anthony J. Thibault
5e73af9272 Rig: Removed dt from updateFromEyeParameters() 2015-10-28 18:10:41 -07:00
Anthony J. Thibault
b3734b5ddb Rig: removed redundant method updateEyeJoints()
Instead we call updateEyeJoint() twice, once for each eye.
2015-10-28 10:46:09 -07:00
Anthony J. Thibault
f9dc05c989 Rig::computeMotionAnimationState better filtering of small dt velocities.
Only update _lastVelocity when dt is sufficiently large.
2015-10-27 18:59:02 -07:00
Anthony J. Thibault
ae8938cadc Fix for local eye tracking in AnimGraph
Also moved Rig::updateAnimations() now occurs after
Rig::updateFromHeadParameters() and Rig::updateFromHandParameters().
This should remove a frame of lag for head and hand IK targets.

Rig::updateFromEyeParameters() occurs after Rig::updateAnimations().
But now the eye JointStates are re-computed, this is the actual
fix for the local eye tracking issue.
2015-10-27 18:30:35 -07: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
Howard Stearns
4b4907c9ef Allow multiple scripts to register, and allow them to specify the specific anim vars they are interested in. 2015-10-26 10:04:55 -07:00
Howard Stearns
e11b0add9a Update safety trampoline with correct arguments. 2015-10-24 15:29:49 -07:00
Anthony J. Thibault
06de087802 Filter out velocities computed from position delta if dt is small
While in the HMD, updates can occur with very small deltaTime values.
These this makes the position delta method of computing a velocity very
susceptible to noise and precision errors.
2015-10-23 18:27:20 -07:00
Anthony J. Thibault
e639d53139 Use #include<> for headers not in current working directory. 2015-10-23 08:55:38 -07:00
Howard Stearns
84cfeaec13 Linux QT wants .h-less headers. 2015-10-22 17:01:06 -07:00
howard-stearns
92ddedd44b Make msvc happy. 2015-10-22 16:44:15 -07:00
Anthony J. Thibault
8689170415 Removed sync and timescale from AnimBlendLinear node.
AnimBlendLinearMove will now be used instead.
2015-10-22 16:40:53 -07:00
Anthony J. Thibault
a66f31bb20 Added AnimBlendLinearMove node
AnimBlendLinearMove is now in use by forward, backward and strafe movements.
Tuned rig moving average speeds to be more sensitive.
2015-10-22 16:33:31 -07:00
Howard Stearns
2b7ceffd64 Get rid of globalObject().property("MyAvatar").property("animationStateHandlerResult"). 2015-10-22 16:23:09 -07:00
Howard Stearns
913842ac30 Thread check, for consistency. 2015-10-22 15:31:17 -07:00
Howard Stearns
ecc920199d Return id suitable for use with remover, per comments. 2015-10-22 15:24:24 -07:00
Howard Stearns
1d0464ede5 Name change and thread checks per comments. 2015-10-22 15:15:10 -07:00
Howard Stearns
759e652506 Thread test per comments. 2015-10-22 15:13:14 -07:00
Howard Stearns
30429e8138 Don't use late-breaking results that got reported after the handler was removed. 2015-10-22 11:43:22 -07:00
Howard Stearns
b5ccd49959 Make ubuntu happy. 2015-10-22 11:42:50 -07:00
Howard Stearns
9fd61907f5 Call back to Javascript asynchronously, so that we don't block and the script's engine doesn't have thread conflicts. 2015-10-21 20:50:07 -07:00
Anthony J. Thibault
c83af43d0e Added strafe and backward blending 2015-10-21 17:34:09 -07:00
Anthony J. Thibault
41cce4320a Merge branch 'tony/anim-sync-blend' into test 2015-10-20 17:39:13 -07:00
Howard Stearns
3d2f00c609 Cleaner intgerface, including cleanup. 2015-10-20 17:01:45 -07:00
Anthony J. Thibault
5cd2786c1d First pass at Rig timeScaling and blending between slow, walk and run. 2015-10-20 16:37:05 -07:00
Howard Stearns
4c6867bb9c Merge branch 'master' of https://github.com/highfidelity/hifi into expose-anim-vars 2015-10-20 12:17:00 -07:00
Anthony J. Thibault
11f2d29bf8 AnimBlendLinear: bugfixes for sync flag added timeScale 2015-10-20 10:36:37 -07:00
Andrew Meadows
341bc3666f Merge pull request #6093 from sethalves/hold-action-changes
Hold action changes
2015-10-20 09:19:48 -07:00
Howard Stearns
2213a4bb02 Do not set (just rightHand) anim var if a script has done so. 2015-10-19 20:09:48 -07:00
Anthony J. Thibault
073cec41c4 AnimClip & accumulateTime smoother looping anims
Looping animations should have an extra frame of interpolation between the start and end frames.
2015-10-19 15:49:52 -07:00
Anthony J. Thibault
9b9bd7fe26 AnimNodeLoader: Fix for crash condition
When a node with children had an error loading, it would
lead to a nullptr dereference.
2015-10-19 15:49:50 -07:00
Anthony J. Thibault
2b4788929f AnimBlendLinear: Untested implementation of sync flag.
Move accumulateTime into AnimUtil.
2015-10-19 15:49:49 -07:00
Anthony J. Thibault
3716800b98 Moved AnimPose class into it's own set of files 2015-10-19 15:49:48 -07:00
Andrew Meadows
917bfbf64e hack to reduce hand influence of hips in HMD mode 2015-10-19 15:19:32 -07:00
Howard Stearns
38a967ac54 Allow compiler after someone broke things. 2015-10-16 16:28:11 -07:00
Howard Stearns
91c2d31118 Merge branch 'master' of https://github.com/highfidelity/hifi into expose-anim-vars 2015-10-16 15:51:09 -07:00
Howard Stearns
f25cc93936 Initial prototype of exposing anim vars to javascript. 2015-10-16 10:48:36 -07:00
Seth Alves
462918ffcf cleanups 2015-10-15 14:55:17 -07:00
Seth Alves
4903db45b1 give other avatars an anim-skeleton 2015-10-15 14:21:06 -07:00
Seth Alves
a70ba4cd5a add some accessors 2015-10-15 11:42:53 -07:00
Anthony J. Thibault
e484a904a2 Rotate the avatar to align with the HMD while moving
MyAvatar: refactored updateFromHMDSensorMatrix() a bit by splitting it into several methods, because
it was getting quite large and becoming hard to follow.

* beginStraighteningLean() - can be called when we would like to trigger a re-centering action.
* shouldBeginStraighteningLean() - contains some of the logic to decide if we should begin a re-centering action.
  for now it encapulates the capsule check.
* processStraighteningLean() - performs the actual re-centering calculation.

New code was added to MyAvatar::updateFromHMDSensorMatrix() to trigger re-centering when the avatar speed rises
over a threshold.

Secondly the Rig::computeMotionAnimationState() state machine for animGraph added a state change hysteresis
of 100ms.  This hysteresis should help smooth over two issues.

1) When the delta position is 0, because the physics timestep was not evaluated.
2) During re-centering due to desired motion, the avatar velocity can fluctuate causing undesired animation state fluctuation.
2015-10-13 17:36:00 -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
Brad Davis
6f5f6450df Cleanup CMake files 2015-10-11 00:01:03 -07:00
Anthony J. Thibault
1c2f86f8b7 Fix for sending translation for non-animated joints.
Only the JointState._defaultTranslation needs to be multiplied
by the unitScale in JointState::translationIsDefault().  This
was incorrectly flagging some non-animated joints as animated.
2015-10-08 17:50:22 -07:00
Andrew Meadows
6c2a94fddb remove unused method declarations 2015-10-07 14:17:21 -07:00
Brad Hefta-Gaub
7a85e5b7a7 rename frameIndex to currentFrame 2015-10-07 13:02:58 -07:00
Brad Hefta-Gaub
ef054ffc6d Merge branch 'master' of https://github.com/highfidelity/hifi into animationGroupSettings
Conflicts:
	libraries/networking/src/udt/PacketHeaders.cpp
	libraries/networking/src/udt/PacketHeaders.h
2015-10-07 11:27:50 -07:00