Is there a way I can lock my character to only the Z axis, and not be moved by objects in the scene?
So right now the character (Ball in picture) will fall onto the rotating platform and start rotating with it. I want the ball to remain exactly where it is on the X and Y axes and fall through the missing part of the platform when it gets to the ball. I have tried constraining the planar movement on the character, but didn’t work.
Any insight/ideas on what i could try would be awesome!
By Default characters will include the movements of the actor they’re standing on. I took a look in blueprints and C++, and there isn’t a direct way to disable the behavior. (Not even in C++)
What you can do is tell your character to ignore an specific actor. You can’t set an actor to be ignored by other actors though, only way is for your character to add each actor you want to ignore to it’s own internal list.
If your character is pre-placed in the level you could create an IgnoreActor Array (Make it InstanceEditable) and fill it with all the actors you wish to ignore. You could also do a “get all actors of class” to fill it. Or any actor you overlap with instantly set the “ignore actor when moving” on it.
You can call it on begin play.
Thanks for the advice, unfortunately it didn’t work for what i needed. I ended up making a simple sphere actor that allowed me to constrain the x/y axis, so it moved only in z. Then made a “pseudo” character that was invisible that followed it. Odd work around but it worked :D.
Updated Answer: After playing with some settings, changing a characters capsule component to simulate physics, and locking the X/Y constraints and setting the mode to “Six DOF” will keep the player still without being affected by something moving below them