How to move an actor in a certain direction and velocity?

Hi, I would like to know how to set a Blueprint actor (in this case with a static mesh and a particle system) so whole actor moves in a certain direction and at a certain velocity. I’ve tried MoveTo, Move To Actor, etc. but it’s not moving at all, and I don’t see how to control velocity. If there were already tutorials or documentation on this I would not be this, it must be pretty simple.

#Moveable

Step 1 is that static mesh actor must be set to Mobility Moveable, select your SMA and press F4 or look at properties window if it is loaded already

#Tick Event

Step 2

Use tick event of level blueprint to incrementally move your mesh over time.

amount you move per tick is speed

Choose from available actor move BP nodes to find one you prefer for this purpose.

#Timer Functions

Ultimately you should move your BP setup into a function that you put on a timer

so that you can start and stop continous movement whenever you want

timer update frequency should be looping, and set to something like 0.01 seconds

Look up on this UDN for info on BP functions and timer functions in BP

#Level Blueprint

Start playing around in level blueprint where Tick Event is guaranteed to work

#Enjoy!

Hi, , thanks for information. problem will be better shown in an image:

As you can see controller node in “Simple Move to Location” is preventing whole thing to work, I’ve tried linking it to “Get Instigator Controller” and to “Get Player Controller”, but it doesn’t work, in fact I don’t know why this would require a controller as this is a Blueprint actor without controller.

Do you know how to solve this?

#Set Actor Location

Simple move is for AI navigation, that will not work!

Use Set Actor Location instead :slight_smile:

You will want to convert actor’s rotation or controller’s rotation into a Vector and multiply by some amount like 10, per tick.

Hi,

Actually you need something more to achieve your goal. I’m attaching also asset itself for you to play with :wink:

-Pino

2 Likes

Hi, thanks a lot for that capture, I’ve understood many things analizing it. fun fact, though, is that when using my own one, really similar to yours (mine is in image below) object rapidly becames smaller and smaller (and at same time gets slower and slower) until it’s invisible or destroyed somehow.

Do you know what might be making it lower down velocity and scale?

My custom variable are:

  • “Rocket_mesh”, name of static mesh component of actor, from Components section of Blueprint.
  • Rocket_distance, a vector with X=10, Y=0, Z=0.
  • Rocket_speed, a float set to 10.0.

Hi again, I set my direction and speed variables to be “Exposed at Spawn”, and it works now. Thanks a lot!

EDIT: Actually, what possibly made it work was removing a SceneComponent of Blueprint.

1 Like

You’re welcome :slight_smile:

Hi, just as a reminder, once a question is answered and you mark it [SOLVED] you should also chose answer that was solution :wink:

Good point, I didn’t know I could do it, I’ll do it from now on.

Actually, please don’t bother with [Closed] or [Answered] tags. They were a temporary solution to an internal reference problem that has since been solved.Thanks for effort, though!

OK, nice; orange “resolved” mark is more efficent.

Hi guys,
I have similar problem. Please have a look on my issue. I tried you solution but not working… please share your views…

HI,
I’m trying to use that script to move my character to place I clicked on a given surface, so I can’t use event tick, since I want character to move only after click. I’ve tried to use a while loop condition by a “is different” node comparing character location and click impact location but i get an infinite loop…
Here’s blueprint. It would be a great help if someone could check this or simply throw ideas at it.

Cheers !!

https://www…com/watch?v=THCR9p5mIz0
i found this hope it can help you.