Advanced Character Controller based on PhysX 3.2.4

Started by
1 comment, last by ibah42 10 years, 7 months ago

Hello, I'm Ivan Voinyi.
I'd like to show you Advanced Character Controller I've done based
on PhysX Kinematic Charcter controller (PhysX 3.2.4).
The key idea behind this library is to make character controller's
behavior more realistic, accurate and flexible.
Advanced Character controller is designed for 3-D games,
which use PhysX as physical library.

Axis aligned bounding box below named as "AABB"
Physx Kinematic Character controller below named as "PKCC".
Advanced Character controller below named as "ACC".

The main advantages are:
1) Inertia-controlled movement
2) Jumping presented (with some additional features)
3) Steep slopes movement limitation (prevent climbing on Dynamic bodies)
4) Steep slopes slithering down presented
5) Resizing while ducking, landing presented advanced
6) Interpolated update presented
7) Global/Local velocity system used
8) Footing shapes movement influence advanced (SIDES/UP shapes influence in development)
9) "Sticking to floor" feature is managed (while moving down the slope), realistic gravity (G-force) is used (not enlarged)
10) Small object with steep slopes climbing presented (disable movement limitations on *small* shapes or *small* patches of meshes/heightfileds)

Only possible ACC's shape is capsule, due to the PKCC AABB movement bug.

Recorded Demo (both links are the same video):


https://vimeo.com/74581370

You can see and download the source code from
https://bitbucket.org/ibah42/advanced-character-controller-physx-3.2.4-based
License included at source-flies

Built library on VS 2012 with Demo presented at:
https://www.dropbox.com/s/qqn08ecfbc5dsmi/ACC_Release_06.oct.2013.zip (Release)

Used PhysX 3.2.4 for ACC-library, OpenGL, Glut for PhysxDemo.
Built on VS2012 as 32-bit static library (64-bit under development)
Build guide presented in ReadMe.txt, in Sources.

For support, bug reporting, please contact: ibah.acc@gmail.com

Best regards

Advertisement

I haven't had a chance to download your code or study the video in detail (though with a brief look it seems good!), so please excuse me if I missed something you've already done/described, but here are a couple of features that aren't mentioned in your list, and are quite important:

1. Ability to push dynamic objects (optional)

2. Ability to be pushed by dynamic objects (optional)

3. Ability to step over small objects...

4. Without being able to climb really steep slopes (I'm not sure how it is at the moment, but I've certainly seen problems with vanilla PhysX CC where if you enable stepping the the slope limiting is badly broken)

5. Ability to enable a "stick to floor" mode for transition between slopes. So - if you're running along a flat surface approaching a slope down, then you shouldn't go airborne as you transition onto the slope - unless the transition is greater than some authored angle.

Anyway - I hope some of these might be interesting things to think about if you haven't done them already.

Cheers - Danny

1) pushing dynamic objects was presented, but now this feature is in development ( temporary disabled ),
because it's causes some *footing* bugs, would be done soon.
2) In demo presented such interaction( collisions from sides and above in development)
3) enabled.
4) enabled
5) This problem was solved, and there are parameters in API, that controls *airborne*. (G is used the same as in a scene)

This topic is closed to new replies.

Advertisement