Commit graph

1061 commits

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