Currently, it is impossible to have things like elevators, trains, doors, rollercoaster carts, and other moving platforms that are both animated and affect the physics of other assemblies, without themselves being affected by physics.
For example, elevators are hard to implement because even with AnimationConstraint, the platform can be influenced by players and other assemblies, causing it to become unstable or break entirely. This makes it difficult to build reliable systems that require stable movement but still need to interact with other physical objects.
Setting IsKinematic property to true does not solve the problem as the assembly no longer participates in physics simulation entirely, including firing of Touched events.
I propose that new boolean property is implemented for AnimationConstraint that when true, allows an assembly to interact with other assemblies without itself being affected by physics simulation.
Prior Art:
- Godot has
AnimatableBody3DandAnimatableBody2D. - Unity has
RigidbodywithisKinematicproperty. - Unreal Engine has physics bodies which have “Physics Type” property with “Kinematic” option.
- GameMaker has physics objects which have “Kinematic” flag.
Related Issues: