Hi, relative beginner here. I am having a hard time with controlling interactions between my character and objects, and with the variety of collision settings in Unreal.
I’ve created a level that consists of a set of tubes that the character navigates through. Inside the tube are objects (sphere static meshes) that block the character’s way. To move an object out of the way the character has to be near the object (I’ll call that the overlap trigger) and activate an additional input (I’m using voice activation - I’ll call that the voice trigger), and then the object begins floating upward. I’ve created an object blueprint in which the character’s presence is detected by the “Is overlapping Actor” function.
Otherwise the objects should be static, i.e. not move when the character just bumps into them.
Here is where I get mixed up:
If I uncheck “Simulate Physics” on the objects, they are static when the character touches them. But they stay static even when the voice trigger is given. I’m using “Set all Physics Linear Velocity” with a positive Z value to activate the upward movement, but also tried “Add Impulse”. Both require physics.
If “Simulate Physics” on the objects is set, then when the character bumps against the objects, they move. I tried raising the objects’ mass to the maximum value, but they still move enough to make the scene messy.
So I tried playing with collision presets. But, if I set the character to “No Collision” or “overlap all” then they pass through the objects and the tube surroundings.
If I set the character to “Spectator” then they are blocked by the objects, but then the overlap trigger stops working (although “generate overlap events” is checked).
I also tried playing with collision presets on the objects, with no success.
Inside the character blueprint’s character movement component, I tried unchecking “enable physics interaction”. Doesn’t matter. I can still move objects by bumping into them.
Is there a combination of settings that will make the objects respond selectively, i.e. not move in response to random collision, but move in the desired direction when the desired input is given?