Commit graph

1331 commits

Author SHA1 Message Date
Atlante45
1d498af76e Merge branch 'master' of https://github.com/highfidelity/hifi into baseball 2015-12-04 15:18:25 -08:00
Brad Hefta-Gaub
f71d2d00d2 Merge pull request #6548 from jherico/threaded_present
Threaded present
2015-12-04 13:42:09 -08:00
Howard Stearns
a0a4f7d177 Merge branch 'master' of https://github.com/highfidelity/hifi into fix-anim-graph-preference-change 2015-12-04 11:08:44 -08:00
Brad Davis
b9ace94ff1 Prototyping threaded present 2015-12-04 10:28:16 -08:00
Howard Stearns
187c213f41 reset skeleton 2015-12-03 16:42:57 -08:00
howard-stearns
1b42c5a172 Make MyAvatar.get/setAnimGraphUrl take a url(!), and make setting it
actually do something.
2015-12-03 16:16:01 -08:00
Seth Alves
6eae98fb28 merge from upstream 2015-12-02 14:38:26 -08:00
Anthony J. Thibault
0b05a341a8 MyAvatar::reset() improvements
Body should not orient under the HMD body without changing the HMD view point.
It's more predictable and less likely to make you sick.
It also should reset the height of the character to cancel out squatting, if the HMD position is low.
2015-12-02 10:18:02 -08:00
Anthony J. Thibault
99065f10fa Avatar Warning fixes on linux 2015-12-01 18:12:01 -08:00
Atlante45
083205916f Merge branch 'master' of https://github.com/highfidelity/hifi into baseball 2015-11-30 18:25:53 -08:00
Seth Alves
b7ebe5b92b merge from upstream 2015-11-30 16:59:52 -08:00
Stephen Birarda
4573e5c59e resolve conflicts on merge with upstream/master 2015-11-30 13:32:38 -08:00
Seth Alves
ca75802b9c unmangle merge 2015-11-26 06:43:28 -08:00
Anthony J. Thibault
549a8f7130 Fix for avatars with no eyes
For example:

https://hifi-public.s3.amazonaws.com/ozan/avatars/hifi_team/howard/howard.fst
https://hifi-public.s3.amazonaws.com/ozan/avatars/hifi_team/tony/tony.fst
2015-11-25 17:24:55 -08:00
Anthony J. Thibault
868cf83b48 Fix for attachments and MyAvatar::getDefaultEyePosition() 2015-11-25 10:07:29 -08:00
Anthony J. Thibault
f120e10ff4 Merge branch 'master' into tony/remove-joint-states 2015-11-24 15:00:05 -08:00
Brad Davis
5c2b980a45 Fixing avatar facial blendshapes and attachments in recordings 2015-11-23 22:36:07 -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
Seth Alves
ba30e01664 include global position in avatar-mixer protocol so server knows where avatars are in world-space 2015-11-23 14:12:49 -08:00
Brad Davis
64ba5b4f14 Cleaning up old recording files 2015-11-23 09:42:34 -08:00
Anthony J. Thibault
821264a031 Merge branch 'master' of github.com:highfidelity/hifi into tony/remove-joint-states 2015-11-22 16:15:03 -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
Seth Alves
f013f95e9b merge from upstream 2015-11-21 08:43:00 -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
30087ef0bd Removed dead code 2015-11-20 14:37:53 -08:00
Anthony J. Thibault
a77ea8da43 Removed JointStates! You won't be missed. 2015-11-20 14:15:37 -08:00
Clément Brisset
f4b0492b33 Merge pull request #6436 from birarda/ghost-avatar
fix for ghosted avatars thanks to check/add race
2015-11-20 11:41:20 -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
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
Stephen Birarda
22f5d4df6d change signature of copy return 2015-11-19 16:25:33 -08:00
Stephen Birarda
6398a922c6 leverage COW for AvatarHash 2015-11-19 15:43:29 -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
U-GAPOS\andrew
b7f501c0b3 use glm::quat_cast instead of extractRotation() 2015-11-19 10:42:53 -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
Brad Davis
5b8047ded4 Make recording and playback work in interface, playback in agent 2015-11-18 14:04:45 -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
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
Brad Davis
cb26fc67fc Move recording interface back to float/seconds 2015-11-16 14:44:22 -08:00
Howard Stearns
35f7a1cf10 Merge pull request #6391 from AndrewMeadows/sisyphus7
simplify MyAvatar::deriveBodyFromHMDSensor() take 2
2015-11-16 13:55:22 -08:00
U-GAPOS\andrew
df05a9c8aa fix bug: bodySensorMatrix constantly reset when walking 2015-11-16 12:02:16 -08:00
Seth Alves
36af315e5d Merge pull request #6383 from birarda/goodbye-packet
send a hopeful disconnect packet from ACs and Interface
2015-11-16 11:28:48 -08:00
Anthony J. Thibault
55adedcec8 Merge branch 'master' into tony/remove-joint-states 2015-11-16 11:22:44 -08:00
U-GAPOS\andrew
049fe4abee minor cleanup 2015-11-13 17:42:12 -08:00
samcake
8c21ac144e Fixing review comments 2015-11-13 16:45:19 -08:00
U-GAPOS\andrew
6733767d8b use animation state to compute bodyInSensorFrame 2015-11-13 16:39:40 -08:00
Stephen Birarda
e263453acb Merge branch 'master' of https://github.com/highfidelity/hifi into baseball 2015-11-13 14:48:26 -08:00
U-GAPOS\andrew
91bc7ca062 cleanup start/stop logic for HMD follow 2015-11-13 14:04:36 -08:00
Stephen Birarda
d932ba74fd remove the avatar kill packet from Interface 2015-11-12 17:58:12 -08:00
samcake
1fd37b51a2 trying to get somewhere.... 2015-11-12 17:54:35 -08:00
Brad Davis
ee1545f649 Cleaning up clip and transform 2015-11-12 11:48:47 -08:00
Stephen Birarda
ef778c554c Merge branch 'master' of https://github.com/highfidelity/hifi into baseball 2015-11-12 10:40:51 -08:00
Brad Davis
f521be10fe Avatar recording work in progress 2015-11-12 00:33:38 -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
533773d1cd Removed animationHandles section from Avatar prefs 2015-11-11 13:21:37 -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
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
Atlante45
ddf82c35e1 Merge branch 'master' of https://github.com/highfidelity/hifi into baseball 2015-11-10 14:18:49 -08:00
samcake
d3d5d3a19e Removing useless code 2015-11-10 12:02:20 -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
Stephen Birarda
b42dea4555 Merge branch 'master' of https://github.com/Atlante45/hifi into baseball 2015-11-09 14:38:24 -08:00
Atlante45
767a7a7f1e Fix warnings on OS X 2015-11-09 14:26:23 -08:00
Atlante45
55c6706f76 Merge branch 'master' of https://github.com/highfidelity/hifi into baseball 2015-11-06 13:31:39 -08:00
Atlante45
ffafd3194e Recording audio fixes 2015-11-05 16:46:59 -08:00
Seth Alves
4ab727c47c Merge branch 'master' of github.com:highfidelity/hifi into parents 2015-11-04 13:57:59 -08:00
Atlante45
d9cd986db2 Merge branch 'master' of https://github.com/highfidelity/hifi into baseball 2015-11-04 11:26:16 -08:00
Anthony Thibault
275b248547 Merge pull request #6302 from AndrewMeadows/fix-avatar-drift
fix slow drift of avatar when wearing HMD
2015-11-04 11:19:45 -08:00
samcake
ce5e89ce66 removing the pulsing mechanism in MyAvatar and making a new stadnard.json mapping file 2015-11-04 10:53:53 -08:00
U-GAPOS\andrew
9de5721a48 set _hmdFollowVelocity to zero when done following 2015-11-04 10:23:55 -08:00
Atlante45
55894f2eee Merge branch 'master' of https://github.com/highfidelity/hifi into baseball 2015-11-03 17:46:24 -08:00
Seth Alves
ffb0317a50 Merge branch 'master' of github.com:highfidelity/hifi into parents 2015-11-03 16:53:00 -08:00
U-GAPOS\andrew
d544b7a645 fix bug: avatar can't walking when HMD at rest 2015-11-03 13:59:15 -08:00
Seth Alves
dba9eb7046 merge from upstream 2015-11-03 13:35:17 -08:00
Andrew Meadows
e160e2a7ae the minimal fix 2015-11-03 11:37:30 -08:00
Andrew Meadows
12ff9734e0 init _bodySensorMatrix in ctor 2015-11-03 11:26:49 -08:00
Stephen Birarda
bbf5991f9a resolve conflicts on merge with huffman/baseball 2015-11-02 14:14:36 -08:00
Stephen Birarda
017cee6961 make shouldRenderLocally do the right thing 2015-11-02 11:59:09 -08:00
U-GAPOS\andrew
a77f888f15 more correct HMD offset correction velocity 2015-11-02 11:29:17 -08:00
U-GAPOS\andrew
a545d770d8 fix bug preventing avatar motion in 2D mode 2015-11-02 11:07:43 -08:00
Andrew Meadows
9799693135 remove extra whitespace 2015-11-02 11:07:41 -08:00
Andrew Meadows
fd557c4e52 route HMD-following through the physics simulation 2015-11-02 11:07:40 -08:00
Seth Alves
3ac0fef1ea merge from upstream 2015-11-01 15:22:57 -08:00
Brad Davis
ccbae81dad Merge branch 'master' into HEAD
Conflicts:
	interface/src/avatar/SkeletonModel.cpp
2015-10-29 10:24:38 -07:00
Seth Alves
ac1055c3e0 Merge pull request #6214 from howard-stearns/goToPosition
Don't go to wrong position on startup/teleport.
2015-10-29 10:15:26 -07:00
Seth Alves
10717dc364 Merge pull request #6154 from howard-stearns/safe-avatar-list-access
Safe avatar list access
2015-10-29 10:12:34 -07:00
howard-stearns
62e56d3f13 Don't go to wrong position on startup/teleport.
This fixes one cause of being in the wrong place.
https://app.asana.com/0/32622044445063/61787931469907
2015-10-28 16:44:53 -07:00
Brad Davis
3c1a0930da Merge remote-tracking branch 'upstream/master' into HEAD
Conflicts:
	interface/src/avatar/MyAvatar.h
	libraries/script-engine/src/ScriptEngine.cpp
	libraries/script-engine/src/ScriptEngine.h
2015-10-28 13:38:22 -07:00
Howard Stearns
367175b8a6 Reduce lock time. 2015-10-28 10:49:19 -07:00
Brad Hefta-Gaub
19743c1f39 gak, build busters and more CR feedback 2015-10-27 16:16:03 -07:00
Brad Hefta-Gaub
eb19364129 CR feedback 2015-10-27 15:56:27 -07:00
Andrew Meadows
e35596428c cleanup comment 2015-10-27 14:43:18 -07:00
Brad Hefta-Gaub
5a42991e0c first pass at cleaning up MyAvatars use of PalmData 2015-10-27 13:51:42 -07:00
Andrew Meadows
8b285fd228 recover follow HMD behavior 2015-10-27 13:51:40 -07:00
Andrew Meadows
43aac813da more prep for shifting avatar during HMD motion 2015-10-27 13:15:38 -07:00
Andrew Meadows
a1f1e50431 split CharacterController btw phys and interface 2015-10-27 13:15:38 -07:00
Howard Stearns
7b0b77f4d1 getAvatarHash => withAvatarHash 2015-10-23 16:57:27 -07:00
Brad Hefta-Gaub
f90844449d fix angular velocity 2015-10-23 13:16:05 -07:00
Brad Hefta-Gaub
4a58eeb810 expose deltaRotation as part of MyAvatar.xxxHandPose 2015-10-23 12:14:33 -07:00
Brad Hefta-Gaub
71dfff7c35 first cut at adding MyAvatar.xxxHandPose 2015-10-23 12:00:40 -07:00
Brad Davis
afcec347ff Wiring yaw action to avatar 2015-10-21 21:35:19 -07:00
Brad Davis
044a28212d Wiring step yaw to the avatar 2015-10-21 20:44:38 -07:00
Brad Hefta-Gaub
68a2985b7a add tip position as well 2015-10-21 17:14:48 -07:00
Brad Hefta-Gaub
a3900a954b expose MyAvatar.leftHandePosition and MyAvatar.rightHandPosition to JS 2015-10-21 17:03:54 -07:00
Seth Alves
a78f2a9577 have avatar make use of SpatiallyNestable 2015-10-18 09:48:46 -07:00
Seth Alves
275e77d29e remove old-style avatar referentials 2015-10-18 07:51:00 -07:00
Seth Alves
c96f7562f2 Merge branch 'master' of github.com:highfidelity/hifi into groundwork-for-hold-action-changes 2015-10-15 09:28:57 -07:00
Thijs Wenker
8111432088 Merge branch 'master' of https://github.com/worklist/hifi into JS_Rotation_FIX 2015-10-15 14:50:20 +02:00
Seth Alves
698a4001a8 Merge branch 'master' of github.com:highfidelity/hifi into hold-action-changes 2015-10-14 06:18:02 -07:00
Anthony J. Thibault
1c1221597d Merge branch 'master' into tony/turn-hips-while-moving 2015-10-13 18:38:27 -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
073b019458 Merge pull request #6072 from howard-stearns/skip-some-reload-recenter-on-startup
Don't reload/recenter some avatar data on startup
2015-10-13 17:08:00 -07:00
Brad Hefta-Gaub
8a2e23cae4 CR feedback 2015-10-13 16:20:52 -07:00
Brad Hefta-Gaub
ad96d76921 implement comfort mode hack 2015-10-13 15:06:11 -07:00
Howard Stearns
93e908a592 Don't reload/recenter some avatar data on startup, when we don't necessarilly have all the required data initialized. 2015-10-13 12:15:13 -07:00
Seth Alves
7c52849740 change how hold action works 2015-10-13 11:36:58 -07:00
Howard Stearns
6cbeb6e7c3 Fix my bug, introduced in PR#6012, in which startup position goto got
cancelled out.
2015-10-12 15:40:16 -07:00
Thijs Wenker
7d3b300037 Fix set avatar rotations from scripts (different tread) 2015-10-11 14:51:12 +02:00
Anthony J. Thibault
0c489e3afd MyAvatar: Rename new instance variable after merge. 2015-10-09 14:46:05 -07:00
Anthony J. Thibault
b5ba621f78 Merge branch 'master' into tony/hmd-rest-detection 2015-10-09 14:36:18 -07:00
Howard Stearns
652376db8a Kill the stuff we can't do yet. 2015-10-08 21:44:45 -07:00
Howard Stearns
bd0d1eaef6 Merge branch 'master' of https://github.com/highfidelity/hifi into align-body-to-head-on-reset 2015-10-07 18:35:52 -07:00
Thijs Wenker
ad5a6fac62 - applying of new qApp accessing method.
- Some magic constant replacements with Helper "glm::vec3(matrix[3])" -> "extractTranslation(matrix)"
2015-10-07 15:10:40 +02:00
Howard Stearns
1fc305ca6b Update HMD-derived avatar stuff during reset, update position under head, and remove unused vars. 2015-10-06 20:51:53 -07:00
Anthony J. Thibault
2dabe69341 When HMD is at rest, re-center the body under the avatar.
This should help the case when a user avatar is stuck in an
uncomfortable pose for a long period of time.  If they stop
moving their head, the body should recenter itself and
appear more natural.

Added an AtRestDetector class.  That tracks the average and variance
of both position and rotation (quaternion logarithms), then
detects when the variance falls under a threshold.

Also, renamed variables with the straighting prefix to straightening.
2015-10-06 20:37:51 -07:00
Brad Davis
028935f831 Removing deprecated function usage 2015-10-06 20:36:55 -07:00
Brad Davis
19fb4e92a6 Enabling programmatic access to the IPD scale
Conflicts:
	interface/src/Application.cpp
	interface/src/avatar/MyAvatar.cpp
	interface/src/scripting/HMDScriptingInterface.cpp
	interface/src/scripting/HMDScriptingInterface.h
2015-10-06 19:08:17 -07:00
Howard Stearns
db955d894f Align avatar body to head on reset. 2015-10-06 14:52:53 -07:00
Atlante45
e9b7125894 Misc cleanup 2015-10-06 13:56:26 -07:00
Atlante45
5e9425d9eb Fix view frustum preference 2015-10-06 13:56:25 -07:00
Atlante45
35e2f8cd89 Removed _myAvatar from Application 2015-10-06 13:56:25 -07:00
Atlante45
34bba28775 More header cleanup 2015-10-06 13:56:22 -07:00
Atlante45
cf3b33a96b Replace Application::getInstance() with qApp 2015-10-06 13:56:19 -07:00
Brad Davis
8090bc8e8d Revert "Enabling programmatic access to the IPD scale" 2015-10-06 10:16:42 -07:00
Brad Davis
725ed26ac2 Enabling programmatic access to the IPD scale 2015-10-04 16:55:49 -07:00
Anthony J. Thibault
fa864d29f9 Merge branch 'master' into transmit-joint-translation 2015-10-01 16:55:24 -07:00
Anthony J. Thibault
d993d39718 Bug fix for deriveBodyFromHMDSensor calculations
The calculation that determined where the body position relative to the HMD
was incorrect, one of the components was in the wrong coordinate frame.

Now use the skeleton's bind pose to compute the proper avatar offsets for the eyes, neck and hips.
Use these offsets to calculate where the hips should be given a specific hmd position and orientation.

Also, added a bug fix for Rig, which would cause a -1 index deference when an avatar was missing
certain named joints, such as, "LeftEye", "Neck" and "Head".
2015-09-30 16:28:33 -07:00
Seth Alves
58d98d3ce4 Merge pull request #5932 from howard-stearns/default-animation-and-quieter
Set default animation and quiet state logging
2015-09-29 16:12:28 -07:00
Seth Alves
d554eb8db9 avatar collisions are off during a grab 2015-09-29 15:09:25 -07:00
Seth Alves
d0a1e206ca Merge branch 'master' of github.com:highfidelity/hifi into transmit-joint-translation 2015-09-29 13:55:13 -07:00
Howard Stearns
745a59af1c Default animation is anim graph.
Remove state change logging from animation graph state machine.
2015-09-29 12:48:57 -07:00
Anthony J. Thibault
c51ce79205 Updated comment on MyAvatar::updateFromHMDSensorMatrix() 2015-09-28 15:30:21 -07:00
Anthony J. Thibault
e32eb38c3b Fix for Oculus timewarp judder introduced by 20d784ba39
Moved myAvatar->updateFromHMDSensorMatrix from Application::update
back into Application::paintGL, so it occurs between
displayPlugin->preRender() and displayPlugin->display().

We should render with the most up-to-date camera position as possible,
and sample it at the same frequency as the display rate.
2015-09-28 14:38:03 -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
Anthony J. Thibault
fc9b270951 Merge branch 'master' into tony/gangsta-lean 2015-09-25 11:36:58 -07:00
Anthony J. Thibault
474c847ef1 Updated constants and units. 2015-09-24 18:00:59 -07:00
Anthony J. Thibault
20d784ba39 Threshold based walking while in HMD.
This is a blend of the previous 'sitting' and 'standing' HMD modes.
Basically, when you move your head within a small range (20cm) your
avatar will lean appropriately, however when you cross that threshold
your body will move underneath you, re-centering your head above the body.

While this occurs the avatar should play the appropriate walking animations.
2015-09-24 17:54:32 -07:00
Howard Stearns
266c69fc70 Disable the old-school Rig::inverseKinematics during reset. 2015-09-24 15:33:52 -07:00
Howard Stearns
426ccabba7 Merge branch 'master' of https://github.com/highfidelity/hifi into apostrophe 2015-09-24 14:19:58 -07:00
Brad Hefta-Gaub
d14820d3ef Merge pull request #5880 from thoys/20668
Worklist job #20668 - JS: Add option to listen audio from camera
2015-09-23 20:40:32 -07:00
Anthony J. Thibault
0d7eae2d64 Fix slight translation error when rendering debug animation skeleton. 2015-09-23 11:42:55 -07:00
Anthony J. Thibault
d04f4d4b2b Added shared DebugDraw singleton. 2015-09-22 19:57:23 -07:00
Howard Stearns
c8960e23ec Merge branch 'master' of https://github.com/highfidelity/hifi into apostrophe 2015-09-22 10:55:26 -07:00
Thijs Wenker
dfb9034b4e - delete new AudioListenerMode menu on script ending
- style fix (function naming)
2015-09-22 15:45:57 +02:00
Thijs Wenker
81932fe1d7 - added MyAvatar.audioListenerModeChanged signal , for registering changes.
- updated the developerMenuItems.js script to include AudioListenerMode menu options under Developer > Audio
2015-09-22 15:38:53 +02:00
Thijs Wenker
617f048883 Added JS interface to change audio listening position / orientation in Interface
- MyAvatar.audioListenerMode  change using:   MyAvatar.FROM_HEAD    , MyAvatar.FROM_CAMERA , MyAvatar.CUSTOM
- MyAvatar.customListenPosition   and  MyAvatar.customListenOrientation are for manual listening positions
2015-09-22 13:40:33 +02:00
Howard Stearns
71b7f9ee38 Apostrophe key resets animation state. 2015-09-21 19:14:24 -07:00
Howard Stearns
4dd95be8c4 Forgot to actually persist. 2015-09-21 15:06:11 -07:00
Howard Stearns
8b701b8a5b Provide a place in the advanced avatar section of preferences in which users can specify a different animation graph spec.
Takes effect when you save (if you have enabled the anim graph under developer->avatar).
An empty string gives you the default behavior.
2015-09-21 10:26:04 -07:00
Anthony J. Thibault
eadf212418 Updated avatar.json with talking idle animation. 2015-09-18 18:31:53 -07:00
Anthony J. Thibault
5aeebba90e Renamed AnimController to AnimManipulator, Removed offsets on IK targets 2015-09-16 15:49:47 -07:00
Anthony J. Thibault
70f5835278 Updated left hand point and grab State Machine and animations 2015-09-15 18:00:13 -07:00
Anthony J. Thibault
1948829ca8 Improved state machine for right hand.
The hand state machine has the following features

* There's a idle to point animation, followed by a looping point hold state.
* There's a point to idle animation.
* The grab state is composed of a linear blend between an open and closed pose.

Additionally the C++ code will ramp on the left and right hand overlays,
This allows the fingers to be animated normally when the user is not actively
pointing or grabbing.
2015-09-15 15:09:08 -07:00
Anthony J. Thibault
90f46ba2c8 Added hand state machines to AnimGraph.
* Application: Forward trigger values to the MyAvatar's PalmData
* SkeletonModel: Pass PalmData to Rig via updateRigFromHandData() this is more explicit then
  the Rig::inverseKinematics methods.
* AnimNodeLoader & AnimOverlay: add support for LeftHand and RightHand bone sets
* Rig::updateRigFromHandData() read the triggers and set stateMachine trigger vars
* avatar.json - udpated with new hand state machine with temporary animations
2015-09-14 18:54:12 -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
9c6060160a Merge pull request #5784 from howard-stearns/rationalize-rig-settings
Rationalize rig settings
2015-09-11 16:56:44 -07:00
Brad Davis
e458eb7ae9 Merge pull request #5734 from sethalves/octree-shared-pointers
octree uses shared pointers
2015-09-11 16:00:04 -07:00
Andrew Meadows
c589f0e58e fix logic around rendering of hand targets 2015-09-11 13:42:17 -07:00
Andrew Meadows
8d5106b072 improved debug render of hand coordinates
also cleaned up includes in Hand.h
2015-09-11 13:22:11 -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
3149baeefc Merge branch 'master' into tony/ik-and-controllers 2015-09-10 11:04:31 -07:00
Anthony J. Thibault
68076ccf45 updated anim graph url to use ik-avatar.json 2015-09-10 10:57:30 -07:00
Howard Stearns
da6444a776 Start anim graph in the right saved state on startup. 2015-09-09 17:02:55 -07:00
Howard Stearns
bcf16e52af Merge branch 'master' of https://github.com/highfidelity/hifi into animGraph-cleanup 2015-09-09 16:04:15 -07:00
Howard Stearns
c1d68e058e Reduce interconnection between AnimGraph and SkeletonModel by removing init and having MyAvatar:initAnimGraph go directly to rig (just like destroyAnimGraph does). 2015-09-09 15:02:11 -07:00
Howard Stearns
73a5714d66 Merge branch 'master' of https://github.com/highfidelity/hifi into decouple-avatar-updates 2015-09-09 10:37:11 -07:00
Anthony J. Thibault
75ecf0020d WIP commit, added AnimController node. 2015-09-08 20:34:21 -07:00
Seth Alves
9c4fdfd653 merge from upstream 2015-09-08 18:01:07 -07:00
Howard Stearns
2c856e4b08 Work around animation cache misbehavior wrt threads. 2015-09-08 16:22:06 -07:00
Seth Alves
31fcd55d47 octree uses shared pointers 2015-09-08 11:59:48 -07:00
Howard Stearns
efeaf21305 Checkpoint smoother. 2015-09-07 16:32:51 -07:00
Howard Stearns
0065c64b31 Snapshot of no-judder, before cleanup. 2015-09-07 09:57:05 -07:00
Anthony J. Thibault
69e463bbfd AnimDebugDraw Improvements
* Now always works, regardless of whether or not Rig or AnimGraph animations
  are enabled.
* Changed joint radius to 1 cm.
* Changed xyz axis length to 4 cm.
2015-09-04 16:01:05 -07:00
Howard Stearns
d3106de7c1 Merge branch 'master' of https://github.com/highfidelity/hifi into decouple-avatar-updates 2015-09-04 14:32:58 -07:00
Anthony J. Thibault
df28c7bf1a Merge branch 'master' into ajt/new-anim-system 2015-09-04 09:27:02 -07:00
Brad Hefta-Gaub
2eb3d90ac2 Merge pull request #5708 from howard-stearns/new-default-avatar-collision-sound
Change default avatar collision sound
2015-09-04 08:48:30 -07:00
Anthony J. Thibault
3716d5612b Merge branch 'master' into ajt/new-anim-system 2015-09-03 19:20:06 -07:00
Anthony J. Thibault
85cb503152 Made Enable Anim Graph menu option dynamic.
It will load the anim graph when enabled and destroy
the anim graph when disabled.
2015-09-03 14:46:44 -07:00
Seth Alves
36ca789d92 fix differential avatar-joint sending to work if more than 2 avatars are in the domain 2015-09-03 14:08:04 -07:00
Howard Stearns
d53c1d0fba Change default avatar collision sound.
Note that this only used when Interface.ini does not already have a setting, and the empty string is a valid setting.
To reset to default, either delete Interface.ini or the line in it that begins with collisionSoundURL=, or just set
Interface|Edit->Preferences->Avatar collision sound URL to
https://hifi-public.s3.amazonaws.com/sounds/Collisions-otherorganic/Body_Hits_Impact.wav
2015-09-03 13:22:04 -07:00
Anthony J. Thibault
30264e9c3d Added animation debug draw items to menu.
* Debug Draw Bind Pose - used to display the current avatar's bind pose
* Debug Draw Animation - used to display the current avatar's AnimGraph animation.
  Currently does not work with old animation so it's only valid when Enable Anim Graph is true.
* Draw Mesh - used to hide or display the avatar mesh.
2015-09-02 21:04:29 -07:00
Anthony J. Thibault
46b3a7fd23 Improved default avatar.json state machine.
Now triggers 7 states.
Idle, WalkFwd, WalkBwd, StrafeLeft, StrafeRight, TurnLeft & TurnRight.
As well as variable speed walking to match current velocity.
2015-09-02 17:28:06 -07:00
Anthony J. Thibault
4a749a0403 Updated MyAvatar to use animGraph from gist instead of local host. 2015-09-02 10:41:04 -07:00
Anthony J. Thibault
d151474446 Merge branch 'master' into ajt/new-anim-system 2015-09-02 10:00:36 -07:00
Anthony J. Thibault
7b4cb8655c First pass integration of new anim system into rig. 2015-09-01 17:57:01 -07:00
Howard Stearns
8cf71f285d Merge branch 'master' of https://github.com/highfidelity/hifi into decouple-avatar-updates 2015-09-01 16:03:40 -07:00
Seth Alves
76923583ee Interface only sends joint data to avatar-mixer if they have changed enough since the last send 2015-09-01 13:31:34 -07:00
Anthony J. Thibault
0d98ab3365 Normalize scale on AnimSkeleton bind pose. 2015-08-31 17:27:23 -07:00
Anthony J. Thibault
9786954585 Added support for onDone and onLoop triggers. 2015-08-31 12:13:05 -07:00
Anthony J. Thibault
54aa0677f6 Merge branch 'master' into ajt/new-anim-system 2015-08-31 10:47:50 -07:00
Anthony J. Thibault
9d983e0614 Bug fix to AnimNode::setSkeletonModel and AnimNodeLoader.
Also updated avatar.json to test nested graphs under a SM.
2015-08-28 17:16:32 -07:00
Brad Davis
b7dd47efcb Merge pull request #5674 from birarda/master
cleanup of some warnings
2015-08-27 23:34:43 -07:00
Anthony J. Thibault
19e91bb392 Added basic interpolation support to AnimStateMachine 2015-08-27 21:26:31 -07:00
Anthony J. Thibault
3286a32afc Initial version of AnimStateMachine.
No interpolation support, but basic avatar.json is working
with two states and two transitions between them.
2015-08-27 20:41:53 -07:00
Stephen Birarda
1d6f43e0d0 cleaned up some warnings 2015-08-27 18:26:55 -07:00
Howard Stearns
96c74ebbd5 Enable Rig Animations is now a developer menu item (rather than requiring javascript to set). Also turning it off resets you to bind pose and deliberately throws away old animations.
Default animations are the new ones for our standard T-pose. (Had been for the double-A pose fightbot.)
Rig state machine now does "backup", and doesn't apply strafe while turning.
2015-08-27 12:25:40 -07:00
Anthony J. Thibault
b7a9b54628 Better AnimDebugDraw rendering 2015-08-26 16:42:08 -07:00
Howard Stearns
0e18395fd0 Merge branch 'master' of https://github.com/highfidelity/hifi into decouple-avatar-updates 2015-08-26 12:04:28 -07:00
Anthony J. Thibault
46c1e008bc Merge branch 'master' into ajt/new-anim-system 2015-08-26 10:37:39 -07:00
Anthony J. Thibault
0c02a338f2 Added support for setting Variants in the json file.
For example: the avatar.json file was updated to use the "sine" Variant
to drive the Overlay alpha parameter.
2015-08-25 20:57:01 -07:00
Anthony J. Thibault
4abf0cbd63 AnimVariantMap is used in eval, MyAvatar loads avatar.json via url 2015-08-25 20:28:17 -07:00
Brad Davis
d311e4f2ea Fixing problems reported by static analysis tool 2015-08-25 19:18:55 -07:00
Anthony J. Thibault
496c706bba Added AnimVariantMap argument to evaluate. 2015-08-25 11:59:24 -07:00
Howard Stearns
828509e8eb Merge branch 'master' of https://github.com/highfidelity/hifi into decouple-avatar-updates 2015-08-24 15:01:46 -07:00
Anthony J. Thibault
9457794d9e fix whitespace offset due to merge conflict 2015-08-24 14:50:02 -07:00
Anthony J. Thibault
fa5256eefd Merge branch 'master' into ajt/new-anim-system 2015-08-24 14:32:28 -07:00
Howard Stearns
b579b996c3 There was a hidden (and inappropriate) dependency on face model loading. 2015-08-21 15:07:39 -07:00
Howard Stearns
ae3e052e72 Merge branch 'master' of https://github.com/highfidelity/hifi into decouple-avatar-updates 2015-08-21 08:13:44 -07:00
Howard Stearns
642e569033 Uncomment code that was commented out to simplify debugging. 2015-08-20 17:38:49 -07:00
Howard Stearns
ea02583875 Cleanup. 2015-08-20 17:33:10 -07:00
Howard Stearns
05f4145acb Checkpoint. Working? 2015-08-20 16:28:40 -07:00
Howard Stearns
f26849c7e1 Proper HMD scaling. 2015-08-20 12:34:50 -07:00
Howard Stearns
dc75b238a8 Merge branch 'master' of https://github.com/highfidelity/hifi into decouple-avatar-updates
And update with current code.
2015-08-18 15:35:37 -07:00
Howard Stearns
0f6c0a3117 Merge branch 'master' of https://github.com/highfidelity/hifi into recapitate 2015-08-13 15:56:13 -07:00
Howard Stearns
2756a00638 Get default avatar url from resources. 2015-08-13 14:23:34 -07:00
Howard Stearns
4dae01a69c Provide a consistent avatar default for the empty string. 2015-08-13 12:54:16 -07:00
Howard Stearns
62941c0914 Remove dead code. 2015-08-13 12:39:30 -07:00
David Rowe
6a0a08eafb Consolidate identical code paths 2015-08-12 15:25:34 -07:00
David Rowe
8f376247f0 Fix calculation of corrected look-at position in HMD view 2015-08-11 20:25:02 -07:00
David Rowe
0f56285283 Fix HMD look-at positions and lines 2015-08-11 18:54:55 -07:00
David Rowe
3e8d0ad712 Fix to use new HMD methods 2015-08-11 13:40:08 -07:00
David Rowe
e6473fc8b9 Merge branch 'master' into 20639
Conflicts:
	interface/CMakeLists.txt
	interface/src/Application.cpp
	interface/src/Menu.h
	tests/ui/src/main.cpp
2015-08-11 12:34:28 -07:00
David Rowe
b54c2526c1 Fix rendering own look-at vectors in HMD mode
Vectors now originate at user's physical eyeballs rather than at user
avatar's eye separation.
2015-08-07 16:13:25 -07:00
David Rowe
b70c1a4960 Merge branch 'master' into 20639 2015-08-07 12:33:13 -07:00
David Rowe
e37fd956ed Fix look-at target position getting stuck when avatar moves out of range 2015-08-06 22:51:25 -07:00
David Rowe
551c00dc23 Fix look-at position calculation when in HMD display
Calculate look-at target from camera position and orientation.
Render own look-at vectors from camera eye positions.
Draw other avatar's look-at vectors from their eyeballs.
With and without eye trackers.
2015-08-06 16:41:06 -07:00
Sam Gondelman
54f64b62eb Merge remote-tracking branch 'upstream/plugins' into sam/input-plugins 2015-08-06 14:45:26 -07:00
Bradley Austin Davis
7e60aee1bf Merge branch 'master' into plugins
Conflicts:
	interface/src/Application.cpp
	interface/src/Application.h
	interface/src/avatar/Head.cpp
	interface/src/avatar/MyAvatar.cpp
	interface/src/avatar/MyAvatar.h
	interface/src/avatar/SkeletonModel.cpp
	interface/src/avatar/SkeletonModel.h
	interface/src/devices/3DConnexionClient.cpp
	interface/src/ui/overlays/Overlays.cpp
2015-08-06 11:03:37 -07:00
Anthony J. Thibault
c3fc37df18 Added true boneSets to AnimOverlay. 2015-08-05 18:07:56 -07:00
David Rowe
d7b42e264e Merge branch 'master' into 20639
Conflicts:
	interface/CMakeLists.txt
2015-08-05 16:49:06 -07:00
Atlante45
3dc8bd47ae Fix warning and remove unused headers 2015-08-05 16:46:44 -07:00
David Rowe
e8eac7db34 Render look-at vectors and target in first person view 2015-08-05 13:40:57 -07:00
Sam Gondelman
113c4ea28b exposing palm velocity and angular velocity to js 2015-08-05 12:17:15 -07:00
Anthony J. Thibault
2154f76202 Added some comments to AnimNode, AnimClip & AnimBlendLinear. 2015-08-05 12:03:20 -07:00
Anthony J. Thibault
5d83976e2a Added AnimBlendLinear + tests.
MyAvatar now does a sine wave blend between a walk
and a walk animation.
2015-08-04 18:14:50 -07:00
Anthony J. Thibault
559367db4a Got to the bottom of the bind pose question.
When TRUST_BIND_TRANSFORM is defined in AnimSkeleton, the bind pose is taken
from the FBXJoint::bindTransform field, which is correct for all joints
bound to actual geometry.  Basically it's not trust worthy for bones NOT bound to anything.

When TRUST_BIND_TRANSFORM is not defined, the bind pose is taken from the other
FBXJoint fields.  Unfortunatly these poses are NOT the bind pose, but instead
are taken from the FBX files 'resting' pose. i.e. frame 0.
2015-08-04 18:14:49 -07:00
Anthony J. Thibault
69cc270802 removed scale for fight club model 2015-08-04 18:14:48 -07:00