as you mentioned there are two kinds of character controller, dynamic and kinematic, each with different pros and cons. The cry physics controller was dynamic, and PhysX uses a kinematic controller. PhysX uses that approach because of its advantages in terms of more precise control over movement and avoiding some unwanted effects, but it’s a bit trickier to handle interactions with dynamic objects, taking dynamic qualities like mass and momentum into account.
From the point of view of the kinematic controller, it receives a requested movement vector and objects in that path can either completely prevent its motion (e.g. solid walls) or not impede it at all. Any objects in its way which do not stop its movement altogether will be pushed out of the way when it moves, and they can be pushed arbitrarily hard.
However, there are various ways to build effects into the gameplay logic which decides the character’s movement, in order to take dynamic objects into account. For example, the ScriptCanvas graph I attached does an overlap query to find objects in the character’s path, and uses their mass to reduce the velocity requested from the character in the Try Relative Move node.
Could you give us a little more detail about the specific effects you’d like to achieve?
We do have plans to add more example gameplay components to work with the character controller component to provide more functionality out of the box (e.g. gravity, pseudo-impulses from dynamic bodies colliding with the character, exposing more callbacks - including collision callbacks which would allow modifying behaviour for objects collided with by the controller, etc), but those improvements are still some way in the future.
I hope that helps and please let me know if you have any further queries or suggestions.