Commit graph

154 commits

Author SHA1 Message Date
Andrew Meadows
9fa9784135 fix typo that broke build 2016-09-29 11:09:09 -07:00
Andrew Meadows
a443cd65f4 add comment for simple noise filter 2016-09-28 18:08:06 -07:00
Andrew Meadows
4e1c1aec0a less magic 2016-09-28 18:06:00 -07:00
Andrew Meadows
a10ae20bf7 measure avatar velocity while driving
and add to followVelocity for tighter tracking at high speeds
2016-09-28 08:29:12 -07:00
Anthony J. Thibault
9a804e19fc Fix for null gravity when falling off ledges 2016-09-27 18:44:54 -07:00
Anthony J. Thibault
961d262df1 Improved body follow behavior
* follow helper lean re-centering / reconciliation now modifies bodySensorMatrix, NOT the character controller.
* The character controller now always follows the bodySensorMatrix (in world space).

This decouples the lean re-centering velocity from the velocity used to move the character controller.
We can now independently tune these things separately.
2016-09-27 16:38:48 -07:00
Anthony J. Thibault
c327c5c6ce coding convention fix 2016-09-27 09:47:44 -07:00
Anthony J. Thibault
9567ec11af Prevent character from walking when pinned against collision.
This is fixed by using the pre-action velocity from CharacterController, which does not include any motors or follow velocity.
This pre-action velocity reflects the actual rigid body velocity after collision constraints are resolved.

This should prevent the character f
2016-09-23 15:22:52 -07:00
Andrew Meadows
819e1dc694 prevent avatars from walking up vertical walls 2016-09-22 16:12:35 -07:00
Andrew Meadows
06ff984f90 sky-hook for walking up steps 2016-09-22 09:48:59 -07:00
Anthony J. Thibault
9fa8fc11c9 More stability in hips offset calculation. 2016-09-21 18:20:35 -07:00
Andrew Meadows
3c5e13b34b final tuning of follow speeds 2016-09-20 13:45:31 -07:00
Andrew Meadows
3e02bac412 more velocity tuning 2016-09-20 10:45:13 -07:00
Andrew Meadows
55e1d05887 more follow velocity tuning 2016-09-20 10:11:25 -07:00
Andrew Meadows
0ef8ef4734 tune follow speeds 2016-09-20 09:37:51 -07:00
Andrew Meadows
59e6ca8f8d avatar follows HMD using velocity motor 2016-09-20 08:29:55 -07:00
Andrew Meadows
a8af8d6027 move code into CharacterController::updateState() 2016-09-20 08:29:55 -07:00
Andrew Meadows
8dd5c9b92b fix kinematic motion for ground and hover 2016-09-20 08:29:55 -07:00
Andrew Meadows
1db1295556 cleanup around CharacterController::_targetVelocity 2016-09-20 08:29:55 -07:00
Andrew Meadows
c77f6a7c16 Merge pull request #8614 from hyperlogic/out-of-body-experience
Turn and drive the HMD with linear velocity
2016-09-16 15:43:29 -07:00
Andrew Meadows
20418d5f58 fix hips sweep test 2016-09-15 18:39:57 -07:00
Anthony J. Thibault
c7caf9fe06 Turn and drive the HMD with linear velocity 2016-09-15 17:08:36 -07:00
Andrew Meadows
83157b573a measure max hips offset and clamp it in IK 2016-09-15 14:55:04 -07:00
Andrew Meadows
821570fa76 fix Windows build and minor format/namechange 2016-09-15 09:32:03 -07:00
Andrew Meadows
d444603a54 simplified Aabb management for GhostObject 2016-09-14 14:57:47 -07:00
Andrew Meadows
418271e06b ghost tracks the collision group 2016-09-14 11:49:00 -07:00
Andrew Meadows
f5c5c68937 adding kinematic character controller demo 2016-09-14 11:43:52 -07:00
Andrew Meadows
954d690b8a expose setting avatar collisionless 2016-09-12 16:24:08 -07:00
Andrew Meadows
bc56df0be1 out-of-body with reduced recovery speeds 2016-09-08 14:31:31 -07:00
Seth Alves
87dbfa7e47 add -Wsuggest-override to compile flags and deal with fallout 2016-08-18 09:51:41 -07:00
Seth Alves
aeadbda1e1 adjust ground-to-fly logic 2016-08-04 11:34:42 -07:00
Seth Alves
e1c7ced652 increase GROUND_TO_AUTOFLY_THRESHOLD 2016-08-04 09:54:26 -07:00
Seth Alves
78e59106b4 adjust threshold for how far above the ground will cause the avatar to auto-fly 2016-08-03 15:21:49 -07:00
Atlante45
3ca158265a Make sure getVelocityChange returns the velocityChange 2016-06-02 16:44:13 -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
9786c0bfd3 remove warning about signed/unsigned conversion 2016-05-17 15:34:09 -07:00
Andrew Meadows
2f39968a03 remove debug cruft 2016-05-17 14:32:20 -07:00
Andrew Meadows
e4cb6e2b87 order-independent CharacterController motors 2016-05-17 14:02:49 -07:00
Andrew Meadows
1749bfbc58 transition to InAir state when not thrusting up 2016-05-17 14:02:47 -07:00
Andrew Meadows
9b7bf97891 enable vertical thrust while walking 2016-05-17 14:02:46 -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
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
f13e31c7fc CharacterController: removed unnecessary code. 2016-02-05 10:53:58 -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
fff603e4e2 Removed comment 2016-02-03 10:21:27 -08:00
Anthony J. Thibault
6cc3b2b47f Fixed unused variable warnings on OSX and Linux 2016-02-02 15:04:28 -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
47f3ce3786 CharacterController jump is more reliable. 2016-02-02 11:26:16 -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
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
61b760038a Address feedback from code review 2016-01-22 11:54:28 -08:00
Anthony J. Thibault
ca8a832818 CharacterController: added hard limit to follow displacement
To prevent tunneling when the rigid body cannot reach it's target due to being blocked by a wall or some other obstacle.

Also, added unit tests for physics/BulletUtil rotateVector and clampLength functions.
2016-01-21 17:27:45 -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
Andrew Meadows
2288d96868 fix CharacterController ray cast for floor 2016-01-12 15:11:27 -08:00
Andrew Meadows
e1ba4ff0a8 add CollisionMask entity property 2016-01-12 15:08:52 -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
Andrew Meadows
9e99bff250 fix avatar upward drift after shape change 2015-12-09 18:09:55 -08:00
Andrew Meadows
8c109fd623 move raw bullet code from interface to physics lib 2015-12-08 17:21:43 -08:00
Brad Hefta-Gaub
a149a2dd60 fix some warnings 2015-10-30 00:19:14 -07:00
Andrew Meadows
afec2a9771 fix whitespace 2015-10-28 09:42:55 -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 Meadows
27d6d9f720 add Bullet profiling hooks for physics simulation 2015-04-02 15:20:16 -07:00
Andrew Meadows
f4f219ca36 tweak jump velocity and hover transition 2015-04-02 09:03:33 -07:00
Andrew Meadows
f804b2311d remove hover-friendly behavior 2015-04-02 08:40:47 -07:00
Andrew Meadows
b37384d759 exit hover now not quite automatic when over floor
remove MyAvatar::jump() method for more general API
2015-04-01 15:13:27 -07:00
Andrew Meadows
0249b8c9c5 fix backwards comparison logic 2015-04-01 13:56:05 -07:00
Philip Rosedale
8114fdd1e2 move button locations, names some constants in avatar controller 2015-03-31 21:51:50 -07:00
Philip Rosedale
9635c6d248 Merge branch 'master' of https://github.com/worklist/hifi 2015-03-31 16:29:55 -07:00
Philip Rosedale
b7f0be761c gun buildings fall on creation, dice stops correctly 2015-03-31 16:27:09 -07:00
Andrew Meadows
9739d68370 fix typo that broke avatar motion 2015-03-31 13:20:06 -07:00
andrew
fdfb8bd1b4 fix intermittent crash on windows during login 2015-03-31 09:26:33 -07:00
Andrew Meadows
9b13f186e3 remove character from PhysicsEngine on shutdown 2015-03-30 15:51:58 -07:00
Andrew Meadows
2404fb126f Merge pull request #4527 from sethalves/valgrind
Valgrind told me to do it
2015-03-30 11:56:17 -07:00
Andrew Meadows
da9ceac9ae fix crash for bad avatar body on login 2015-03-30 11:06:02 -07:00
Seth Alves
1e166eef0f valgrind says _ghostObject is used before it's initialized 2015-03-28 17:12:55 -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
8a951e0dd3 minor cleanup 2015-03-26 15:16:57 -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
2440c47648 remove extra whitespace 2015-03-25 11:06:19 -07:00
Andrew Meadows
2128f21308 only set ADD bit with UPDATE_SHAPE when enabled 2015-03-25 11:02:48 -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
ab9d8eb345 reorder arguments to StepDownConvexResultCallback ctor 2015-03-20 08:42:35 -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