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
0.8.3:charactercontrolling [2021/08/13 10:02] – [Optional linkable components] admin0.8.3:charactercontrolling [2022/04/08 10:52] (current) – [Movement] admin
Line 437: Line 437:
 </file> </file>
  
-Next step: [[android|Android]]+==== 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: [[prefabs|Prefabs]]