Commit graph

204 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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