Originally Posted By: tagimbul
slowly I understand it ...
with an ellipsoid and move_min_z I can choose, at what level he skips the stairs?
you mean this?



A = skip the stair. while the normal contact is okey
B = no skip . while the normal kontakt is to big?
and i can set it with move_min_z ?
Quote from manual:
Quote:
By default the ellipsoid can move up any slope, no matter how steep it is. To restrict this motion you can alter the global variable move_min_z. If the contact normal's Z axis is less than this minimum value no gliding along Z will take place at all. Hitting the ground plane will result in a normal.z value of 1.0 (pointing straight up). Hitting the ceiling will yield -1.0 (straight down) and a head on collision with a perpendicular wall will have a normal.z value of 0. The default value of move_min_z is -1 which allows gliding at all angles. If you were to set it to 0.5 instead all slopes steeper than 60 degrees (=acos[0.5]) would cause the entity to stop and not glide up. This example is valid only for a spherical hull. For an ellipsoid some trial and error is required to find the right value. Rather than relying on move_min_zit is recommended that you place invisible entities in front of steep walls to block them off.
It means that 'move_min_z' determines the angle of the slope entity can step on. You have to know, that those 'black' obstacles in your picture, will affect normal.z too, as you try to step on them they will return 0 (probably). So playing around with 'move_min_z' may help, but as the manual says it's not a thing to rely on. It will cause other problems anyway at the end, probably cause to get that 'normal.z' value, you have to collide with those 'obstacles' at first, and after that they are too steep entity won't step on them.. I tried to find german manual, to make quote from it (instead of english version), but I couldn't find it. Read more about collision engine, you'll find out that it's really tricky to get properly working movement code :<

I tried to explain how it works via this picture:

The red silhouette that goes down from the entity is the 'c_trace' with USE_BOX flag set on, you have to know that it's using ellipsoid as well. Also, to understand what 'move_min_z' sets you have to imagine a slope going more and more steeper from flat ground (pointing straight up) which has angle 0 to a vertical wall, that has angle 90 (let's say), in this situation setting 'move_min_z' to 0.5 will prevent entity from GLIDING (this is very important) up on the slope, which's angle is steeper than 60 degrees (as the manual says, you can convert those 'move_min_z' values (1-0) into the angle of the slope by 'acosv' function, f.e. acosv(0.5) will equal to 60). Prevent from GLIDING means, that it will get stuck on moving up on the slope, and that is something that will result to unwanted results at the end. I tried my best to explain grin Keep it up!


My best regards!


Looking for free stuff?? Take a look here: http://badcom.at.ua
Support me on: https://boosty.to/3rung