Commit graph

279 commits

Author SHA1 Message Date
Andrew Meadows
d01c5d1ae5 fix crash bug 2015-09-11 15:01:31 -07:00
Andrew Meadows
2ba446d309 fix IK and constriants 2015-09-11 13:22:12 -07:00
Andrew Meadows
b0520acea9 remove warning about out-of-order-init 2015-09-11 13:22:11 -07:00
Howard Stearns
5314e0c744 Remove unused. 2015-09-11 13:20:56 -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
8e504e63b0 Removed unused variable, changed glm::vec3(0) to glm::vec3() 2015-09-11 10:43:49 -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
9a9838fd0d Clean up of AnimNodeLoader after merge from master. 2015-09-10 11:47:41 -07:00
Anthony J. Thibault
663e37da66 Merge branch 'master' into tony/ik-and-controllers 2015-09-10 11:37:47 -07:00
Anthony Thibault
e8ede3ad00 Merge pull request #5731 from ChristophHaag/master
build fixes
2015-09-10 11:36:45 -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
09b2d8e4a4 Seed AnimGraph with hand controller position and orientation. 2015-09-09 18:16:57 -07:00
Anthony J. Thibault
ad49d0dd59 AnimInverseKinematics: update _maxTargetIndex correctly. 2015-09-09 16:09:38 -07:00
Anthony J. Thibault
756eb54a0a AnimNodeLoader support for InverseKinematics node. 2015-09-09 15:28:21 -07:00
Anthony J. Thibault
c1d7287652 AnimController node now takes absolute rotation vars, instead of relative. 2015-09-09 12:24:32 -07:00
Howard Stearns
f818ac2b74 Merge pull request #5744 from hyperlogic/tony/enable-lean-flag
Added a flag to enable and disable lean.
2015-09-09 10:18:12 -07:00
Anthony J. Thibault
146836452f Merge remote-tracking branch 'andrew/europium' into tony/ik-and-controllers 2015-09-09 09:40:55 -07:00
Howard Stearns
74c92af8e0 Merge pull request #5741 from AndrewMeadows/brokenCapsules
fix for bad bounding capsules for avatars
2015-09-09 09:33:57 -07:00
Anthony J. Thibault
39aef6edc9 AnimController fix for crash if underPoses vector was empty. 2015-09-08 21:42:42 -07:00
Anthony J. Thibault
75ecf0020d WIP commit, added AnimController node. 2015-09-08 20:34:21 -07:00
Andrew Meadows
e86e760118 remove debug stuff and nerfed constriants 2015-09-08 19:14:31 -07:00
Andrew Meadows
381828dac3 remove hackery for bad length units in AnimSkeleton 2015-09-08 19:02:16 -07:00
Andrew Meadows
ee265aba4a add AnimInverseKinematics class 2015-09-08 18:20:22 -07:00
Andrew Meadows
3d661095dc fix some bugs in RotationConstraints 2015-09-08 18:20:03 -07:00
Andrew Meadows
b6cef3d1a9 fix Qt includes 2015-09-08 18:19:33 -07:00
Andrew Meadows
00c446d1b0 sort includes 2015-09-08 18:19:18 -07:00
Andrew Meadows
c3e16d33c1 add InverseKinematics type 2015-09-08 18:18:50 -07:00
Seth Alves
e06461ea15 Merge pull request #5724 from hyperlogic/tony/anim-debug-draw-improvements
AnimDebugDraw Improvements
2015-09-08 17:07:51 -07:00
Anthony J. Thibault
387d50c217 Added a flag to enable and disable lean.
This should help improve our idle and walk animations, because
animation on the "lean" joint was being lost, even when we did
not require procedural leaning.
2015-09-08 16:35:06 -07:00
Stephen Birarda
c670c9a0d5 fix for AnimNodeLoader use of Resource loaded 2015-09-08 15:31:37 -07:00
Andrew Meadows
4a40781e2f remove some commented out cruft 2015-09-08 15:11:19 -07:00
Andrew Meadows
281e4f21fc fix avatar bounding capsule calculations 2015-09-08 15:03:12 -07:00
Andrew Meadows
90fe54e6d6 remove cruft and minor cleanup 2015-09-08 15:03:12 -07:00
Anthony J. Thibault
6d5927c0c9 Now with less copies.
* AnimSkeleton now returns AnimPoses by const ref.
* AnimDebugDraw: uses references to Poses on the stack instead of copies
  within inner loops.
* AnimDebugDraw: Removed unnecessary universal refs in range based for loops.
2015-09-08 10:51:23 -07:00
Christoph Haag
ddcee763ca extend macros to take return value if necessary 2015-09-08 19:10:15 +02:00
Stephen Birarda
25aeda2e18 Merge branch 'master' of https://github.com/highfidelity/hifi into protocol 2015-09-08 08:40:51 -07:00
Christoph Haag
fa221fa7e3 In gcc5 nullptr can't be directly used as bool
See https://gcc.gnu.org/gcc-5/porting_to.html
"Converting std::nullptr_t to bool"
2015-09-08 10:07:06 +02:00
Anthony J. Thibault
bb5d061d78 linux and mac compile fixes.
Removed "friend MyAvatar" from Rig and JointState.
This was only there for debugging, but I accidentally committed it.
2015-09-04 16:17:35 -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
086afc47b1 Avatar animations on by default. (Using the now old animation machinery.)
Default robot avatar consistent with the animations.
Don't require all the bones to be present.
2015-09-04 14:24:37 -07:00
Stephen Birarda
ed19987b7d resolve conflicts on merge with upstream/master 2015-09-04 12:31:46 -06:00
Anthony J. Thibault
3f258c89b4 Fix transition from AG+Rig to AG only. 2015-09-04 11:03:59 -07:00
Anthony J. Thibault
dcecd7b73a Added hysteresis to the state machine for turning and moving states.
This should help a bit with the jerkiness, as state transitions
occur less often due to noise or the user straddling the boundary
between two states.
2015-09-03 19:13:39 -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
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
471400e595 Fix for jerky behavior when positionDelta is zero.
This can occur with vsync disabled.  Possibly due to two avatar updates occurring
within a single physics time-step.
2015-09-02 19:59:05 -07:00
Anthony J. Thibault
de31b92fd5 Merge branch 'master' into ajt/new-anim-system 2015-09-02 17:53:56 -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
Howard Stearns
389e752b6e Merge pull request #5695 from AndrewMeadows/dysprosium
avoid bad joints when computing avatar bounding capsule
2015-09-02 15:58:42 -07:00
Anthony J. Thibault
99586f259c Renamed bindTransformIsValid to bindTransformFoundInCluster 2015-09-02 13:44:34 -07:00
Anthony J. Thibault
91fbbf7d4e Updated copyright boiler plate. 2015-09-02 13:35:26 -07:00
Anthony J. Thibault
df26f18222 Fix for compilation errors on linux 2015-09-02 13:29:29 -07:00
Anthony J. Thibault
fea030b9a0 Compile and warning fixes for MacOSX. 2015-09-02 12:18:17 -07:00
Anthony J. Thibault
1ae22268ac Added comment to AnimStateMachine header. 2015-09-02 11:04:52 -07:00
Seth Alves
3e11852845 Merge pull request #5685 from howard-stearns/standing-hmd-animations
Standing hmd animations
2015-09-02 10:57:45 -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
Andrew Meadows
4a7a384c65 avoid bad joints when computing bounding capsule 2015-09-01 14:12:14 -07:00
Stephen Birarda
33f6933544 Merge branch 'master' of https://github.com/highfidelity/hifi into protocol 2015-09-01 14:36:16 -06:00
Andrew Meadows
7410baedf0 merge highfidelity/master into andrew/copernicium
Conflicts:
	interface/src/avatar/SkeletonModel.cpp
	libraries/animation/src/Rig.cpp
	libraries/animation/src/Rig.h
2015-09-01 11:08:01 -07:00
Anthony J. Thibault
2401e6cc4b Merge branch 'master' into ajt/new-anim-system 2015-09-01 10:58:38 -07:00
Andrew Meadows
47c18fa18a reduced gravity effect in IK 2015-09-01 09:51:14 -07:00
Andrew Meadows
0e5b357362 revert unintended change to "gravity" term in IK 2015-09-01 09:51:14 -07:00
Andrew Meadows
bdcc68ce36 fix bug: allow IK to iterate more than once
also changed name of parentTransform to be rootTransform
for more correctness
2015-09-01 09:51:14 -07:00
Andrew Meadows
bb63267e30 fix hand IK rotations or all models 2015-09-01 09:45:14 -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
Howard Stearns
2dbfa5ce9f Be more uniform in deciding animation movement, and incorporate HMD standing mode (which sets position, but not velocity). 2015-08-31 11:10:05 -07:00
Howard Stearns
a907c5757b Do not reset animation frame when restarting while we're fading out.
Keeps it smooth if we're oscillating on some theshold between running and not.)
2015-08-31 11:09:28 -07:00
Anthony J. Thibault
77b857031b Take timeScale into account during interps & setCurrentFrame() 2015-08-31 11:01:15 -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
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
Andrew Meadows
d3f06af892 remove PhysicsEntity class 2015-08-27 18:22:12 -07:00
Stephen Birarda
80cf7b6c76 resolve conflicts on merge with upstream/master 2015-08-27 14:50:04 -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
637e3b0a15 Added triggers to AnimVariantMap. 2015-08-27 10:41:01 -07:00
Anthony J. Thibault
a04f356857 Merge branch 'master' into ajt/new-anim-system 2015-08-27 09:32:53 -07:00
Anthony J. Thibault
b7a9b54628 Better AnimDebugDraw rendering 2015-08-26 16:42:08 -07:00
Ryan Huffman
aa7d8678e1 Merge branch 'protocol' of github.com:birarda/hifi into atp-server 2015-08-26 12:26:11 -07:00
Seth Alves
695ffa29c7 call setup_memory_debugger from common macros rather than from every CMakeLists.txt file 2015-08-26 11:09:59 -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
Anthony J. Thibault
62f86e6a46 Added AnimVariant, renamed AnimClipTests to AnimTests.
* Added test for AnimVariant.
2015-08-25 11:33:57 -07:00
Anthony J. Thibault
4bdb00bbc5 Added setCurrentFrame interface to AnimClip.
This will recurse the tree and call setCurrentFrameInternal on each node.
This method can be overriden, currently the only meaningful implementation is AnimClip.
2015-08-25 09:58:36 -07:00
Anthony J. Thibault
7a2ca047cb Added network resource download support to AnimNodeLoader. 2015-08-24 19:00:12 -07:00
Anthony J. Thibault
5a73aef1f8 AnimSkeleton more accurate bind pose generation. 2015-08-24 16:19:16 -07:00
Anthony J. Thibault
fa5256eefd Merge branch 'master' into ajt/new-anim-system 2015-08-24 14:32:28 -07:00
Anthony J. Thibault
80d3ae68c2 Removed redundant ends with ‘fbx’ check. 2015-08-21 22:11:53 -07:00
Anthony J. Thibault
b7009b4631 Fix for animation resources
The problem was that the invokeMethod between the AnimationReader thread
and the main thread was failing, because FBXGeometry* wasn't a registered meta type.

So, I ended up normalizing the AnimationReader class to be more like GeometryReader,
in that it uses singles and slots to communicate success and failure, rather then
invokeMethod.
2015-08-21 16:09:06 -07:00
Brad Davis
c3991dbb8c Merge pull request #5622 from hyperlogic/ajt/network-geometry-refactor
ResourceCache, NetworkGeometry and Model refactoring and optimizations.
2015-08-20 23:57:16 -07:00
Anthony J. Thibault
1b3d7fabc8 ResourceCache, NetworkGeometry and Model refactoring and optimizations.
* Removed validation logic from Resource class, Qt does this internally and is more
  standards compliant.  This should result in more accurate caching and faster resource
  fetching when cache is stale and validation fails.
* Added loaded and failed slots to Resource class, so it does not have to be polled.

* NetworkGeometry now uses multiple Resource objects to download
  the fst/mapping file and the fbx/obj models.
* NetworkGeometry is no longer a subclass of Resource
* NetworkGeometry now has signals for success and failure, you no longer
  have to poll it to determine when loading is complete (except for textures *sigh*)

Some functionality was removed

* NetworkGeometry no longer has a fallback
* NetworkGeometry no longer loads LODs or has lod logic.
* The number of FBXGeometry copies is greatly reduced.

* Model::setURL no supports fallback URL, delayLoad or retainCurrent option.
  This can result in a pop when switching avatars, and there's no longer a default
  if avatar loading fails.
2015-08-20 18:59:51 -07:00
Seth Alves
c25082d86f use -fsanitize=address in all code rather than just the top-level links 2015-08-20 10:14:16 -07:00
Ryan Huffman
5884fcb17b Merge branch 'ordered-sending' into atp-server 2015-08-19 12:23:31 -07:00
Ryan Huffman
51d4cf84da Fix AnimationReader to work with new ResourceCache updates 2015-08-19 12:10:47 -07:00