How to delay an actor rotation only once (not frame per frame)

Hi, I am kind of new to unreal and wanted to make a propeller for a plane. Therefore, I made the propeller rotate on himself with an AddActorLocalRotation. Everything works fine but I would like the plane propeller to wait a couple a seconds and then start spinning. I tried using a Delay node with a specific duration. Unfortunatly, the delay happens at every frame making the propeller spin weirdly the whole time instead of just delaying once and then rotating. Any solutions please? Thank you very much.

I assume you’re using this on Tick event? This event is triggered every frame.
The one-time delay should be used in BeginPlay event – thi event will be triggered only once per actor.

So, the simple solution will look like this:

  • In the blueprint, add a variable of type boolean (will be false by default)
  • make BeginPlay → Delay(5) → Set the bool variable to true
  • Tick → if (variable == true) → do rotation

But this is only good if you need a specific controls over the propeller rotation. If you just need it for an animation (just a visual effect) it’s not good to set rotation per tick.

Probably the best way in this case will be to set a fixed-rotation plane mesh as a propeller and make the animation via material, or maybe make an animated mesh with propeller, depends on your goals.

Thanks man ! I figured it out yesterday by just using the some booleans and it works likea char. I have a question though. How would it be possible for the propeller to start slowly and increase speed with time. I tried with Finterp, but didn’t seem to work very good .

Basically you can use the Timeline node with any custom float curve going from 0 to 1 at the required time.

Then, in the BeginPlay event, run the Timeline and from it’s Update pin Set the RotationSpeed variable with the value coming from Timeline * the_maximum_rotation_speed. The Tick event will be literally the same as now.
You will be able to control the speed change profile with the curve and it’s length.
I hope it’ll help, or later I can make the example graph (currently I’m on a pc without UE4 installed).

Here is the setup: first image is the BeginPlay graph, second is the timeline settings.