Commit graph

44 commits

Author SHA1 Message Date
Anthony J. Thibault
1aae22f5a5 Optimized MyAvatar.getCharacterControllerEnabled()
Instead of doing a blocking queued invokeMethod, it just calls into CharacterController.isEnabled() which is now thread-safe.
2016-06-09 09:35:19 -07:00
Seth Alves
74520f5c92 Merge branch 'master' of github.com:highfidelity/hifi into no-fly-zones 2016-05-19 09:49:44 -07:00
Andrew Meadows
aab26c5089 disable DEBUG_STATE_CHANGE 2016-05-17 15:14:36 -07:00
Andrew Meadows
e4cb6e2b87 order-independent CharacterController motors 2016-05-17 14:02:49 -07:00
Seth Alves
c9c619916c Merge branch 'master' of github.com:highfidelity/hifi into no-fly-zones 2016-05-11 19:37:57 -07:00
Atlante45
bc6544a3c5 Fix MyAvatar's velocity change 2016-05-05 14:55:28 -07:00
Seth Alves
ef85cc7803 hook up zone flyingAllowed flag to character controller 2016-05-01 14:47:12 -07:00
Anthony J. Thibault
0b7a5c4df8 CharacterController: leak fix for btRigidBody and it's shape 2016-04-15 15:05:54 -07:00
Anthony J. Thibault
4a78300607 MyAvatar: Allow user to raise hands directly overhead.
Previously we were using a infinitely tall vertical cylinder
to push hand IK targets out of the body, this had the
side-effect of preventing the hands from being raised over
the head.  Now, we collide against the same 3d capsule
used by the physics system for avatar collisions.
2016-03-10 10:20:17 -08:00
Anthony J. Thibault
73ac47724a Rig: Prevent the hand IK targets from entering the body.
Use a 2d circle/circle intersection test to keep the hands outside of the body.
2016-02-17 16:23:18 -08:00
Anthony J. Thibault
97bcc54360 CharacterController: separate target velocity from parent velocity.
Also, disable damping on the rigidBody used by the CharacterController.
2016-02-08 16:01:36 -08:00
Anthony J. Thibault
8ca8550f26 MyAvatar: Standing Takeoff and In-Air Animations
Now there are two sets of of jump takeoff and in-air animations.
* Run - Used when the character jumps or falls with a small forward velocity.
* Standing - Used when the character jumps or falls in-place or backward.

CharacterController
* increased takeoff duration to 250 ms
* increased takeoff to fly duration to 1100 ms
* added standing jump and in-air animations
* added 250 milisecond delay between ground and hover, to prevent going into hover when walking over cracks.
* take-off to in-air transitions now use the new snapshotPrev interp type for a smoother tweening.
2016-02-04 17:56:07 -08:00
Anthony J. Thibault
c4e1509aa2 CharacterController: better debug support of internal state machine
Head is no longer visible when flying fast, in first-person HMD mode.
2016-02-02 11:26:18 -08:00
Anthony J. Thibault
8b5cf3e49a CharacterController: refined state machine. 2016-02-02 11:26:17 -08:00
Anthony J. Thibault
2936811484 Added takeoff animation, WIP
Character controller still has some jump/in-air bugs.
2016-02-02 11:26:15 -08:00
Anthony J. Thibault
61c55ebf6c Updated character controller with a state enumeration
Also, adjusted checkForSupport logic such that very slanted walls are not considered support.
2016-02-02 11:26:15 -08:00
Anthony J. Thibault
e9fd439ffd Added inAir animations 2016-02-02 11:23:46 -08:00
Anthony J. Thibault
c771c925c8 MyAvatar: copy body velocity + hmd follow velocity onto avatar
This was inadvertently removed in a previous PR.

https://github.com/highfidelity/hifi/pull/6895

Also, renamed Velocity stat to Speed.
2016-01-27 11:20:32 -08:00
Anthony J. Thibault
bc9621baab CharacterController: Improve ground support detection
In addition to the existing line probe ground check, also check if the bottom sphere of the capsule is contact with any geometry before going into hover mode.
This should prevent going into the fly animation when standing or walking on collision shapes with small gaps between elements.
2016-01-25 21:54:35 -08:00
Anthony J. Thibault
a91c181a89 MyAvatar: Recenter when the head turns away from the hips
Compute HMD facing moving average.
When the moving average diverges from the hips by more then 45 degrees, recenter the body.

Also, the follow code has been changed, instead of a follow velocity being passed to the CharacterController
a desired target is passed.  The CharacterController homes toward it's target based on the time remaining.
Any follow deltas applied to move the avatar's position closer to it's target is stored and re-applied
to the bodySensorMatrix.  This centralizes the moving/homing code to one place, the CharacterContoller.

A new FollowHelper class was also introduced, it groups together the data and logic necessary to perform the
re-centering/follow procedure.  This "hopefully" makes it easier to maintain.
2016-01-21 16:38:42 -08:00
Seth Alves
d3c57821c0 call a method on actions before each physics simulation step. use this to attempt to dejitter held objects 2015-12-16 14:00:04 -08:00
Atlante45
a07d7494f0 More OS X warning cleanup 2015-12-11 14:20:36 -08:00
Andrew Meadows
8c109fd623 move raw bullet code from interface to physics lib 2015-12-08 17:21:43 -08: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
Andrew Meadows
2ccc25e380 remove old kinematic CharacterController 2015-04-07 16:29:52 -07:00
andrew
fdfb8bd1b4 fix intermittent crash on windows during login 2015-03-31 09:26:33 -07:00
Andrew Meadows
bee8c0e237 "hover" if the "jump" key is held down long enough 2015-03-27 13:56:03 -07:00
Andrew Meadows
be5fdbf217 enable avatar collisions by default
also remove old gravity features
2015-03-27 13:36:20 -07:00
Andrew Meadows
821ac605f5 smoother motion on steps
faster motion when "flying"
cleanup of MyAvatar::updatePosition()
2015-03-26 19:48:52 -07:00
Andrew Meadows
0ef4022e94 tweak gravity and step heights of controller 2015-03-26 15:14:46 -07:00
Andrew Meadows
429a258df0 enable hover when far above floor 2015-03-25 14:38:27 -07:00
Andrew Meadows
674b2c97a2 added comments to zlib license 2015-03-25 08:53:33 -07:00
Andrew Meadows
430158c109 updateShapeIfNecessary() is a more correct name 2015-03-24 23:35:09 -07:00
Andrew Meadows
d497620976 avatar can jump with E key when walking 2015-03-24 23:05:46 -07:00
Andrew Meadows
44eca08fa4 PhysicsEngine doesn't need AvatarData
MyAvatar now owns its CharacterController
fix for bug of phantom collision obj when avatar's physics are disabled
2015-03-24 17:38:35 -07:00
Andrew Meadows
49f5de2b94 make character's "up" axis depend on orientation 2015-03-20 16:39:38 -07:00
Andrew Meadows
0164de80fe apply coding standard to CharacterController 2015-03-20 13:19:24 -07:00
Andrew Meadows
6454149536 formatting and comments 2015-03-20 12:45:29 -07:00
Andrew Meadows
3cd2ce82d4 tuning character so it can walk up ledges 2015-03-19 15:31:34 -07:00
Andrew Meadows
8eec83c144 comments and formatting 2015-03-17 22:28:38 -07:00
Andrew Meadows
b4263cd2eb allow objs to collide agains char controller
but char controller only responds to penetration when enabled
2015-03-16 17:10:49 -07:00
Andrew Meadows
78b614f855 move avatar details into CharacterController 2015-03-16 16:24:32 -07:00
Andrew Meadows
a1a12465da able to update avatar controller in PhysicsEngine 2015-03-12 16:36:41 -07:00