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