Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
0.8.3:charactercontrolling [2021/08/13 10:02] – [Optional linkable components] admin0.8.3:charactercontrolling [2021/08/13 10:20] – [Movement] admin
Line 436: Line 436:
 end;     end;    
 </file> </file>
 +
 +==== Movement ====
 +
 +Since the latest version of Gorilla3D (v0.8.3.1995) we support kinematic character movement.
 +While previous versions worked completely on physics computation, the latest change added a more stable way.
 +
 +The true physics collision detection for characters works, but has bad sideeffects.
 +The most serious problem was stuttering characters which bounced off the terrain.
 +Also it was impossible to "climb" up steep hills because physics always dragged you down again.
 +Even if this is more realistic, the usability was horrible for classic character movement.
 +
 +So in the latest component state the "UseRayCasting" property is activated. This changes the character controller from a dynamic rigid body to a kinematic body.
 +Here we now cast a ray to detect the current position on objects instead of letting physics do the job.
 +Nevertheless interaction with static or dynamic objects is still available.
 +
 +__Remark:__ In case you need the old behaviour, just switch "UseRayCasting" to FALSE.
 +
 +Control you raycast-movement by some properties like Slop, RayDirection and RayOffset.
 +Especially the slopping value allows you to control f.e. the max. height of stairs to be able to walk.
 +
 +^Property^Description^
 +|Slop|This only affects computation if UseRayCasting is enabled. The slop value is the maximum height a movement ray direction. Adjust this value to your specific scene, especially when walking of stairs or similar static objects. Default value is 0.5.|
 +|RayDirection|The RayDirection defines in which direction the controller will be adjusted. Default direction is (0, 1, 0), which means downwards.|
 +|RayOffset|Get or set ray offset from where the raycasting is started. The offset will be computed from current physics character controller position.|
  
 Next step: [[android|Android]] Next step: [[android|Android]]