Move an actor in his local axis orientation using blueprint

Hi,

I would like to craete an asset that I can re-use in my level, it’s an arrow.

I want to be able to place it where I want and rotate it to indicat a direction.
The problem I have is I don’t know how to move an actor along his local axis, the set location is always in world space or parent space, but not the actual actor space.

Just to make sure you understand, I want to animate it using a blueprint.
I’m sure it’s something easy to manage, but I can’t figurite out :confused:

Many thanks !

.

Hey there!

The way I’d do this is to simply calculate a new position for my object based on the forward vector which points along the local X axis of the object.

Simply multiply the forward vector by the amount you want to move the object, this will return a vector for you, now add this vector to the current position of your object and you’re done, you can now set your actors location to this new vector you just calculated. I’ve included an example that will move my object 4 units along it’s local X axis every second (So it moves in the direction it is facing).

I hope this helps! If you have any further questions please let me know.

2 Likes

Thank you so much Spider, I didn’t know we can get up/fowrad/right vector of an actor :slight_smile: So usefull !

Thanks a lot !

@Spiderhund Even though this is an old question just wanted to stop and say thanks because this is simple and great

You’re welcome, as long as it works I’m happy :stuck_out_tongue:

Spiderhund’s solution worked for something that I’ve bben trying to solve all day (it’s evening alread :))

now if only I could figure out how to do the transition over time…

Hey, sorry for the late reply, I don’t know if you have a solution to this yet but you can use a linear interpolation on the rotation of your actor to make it rotate over time. I’ve included an example that will rotate towards the player position over time.

Hi Spiderhund,.

I used a timeline. It works, but the movement is inconsistent (i.e. sometimes it will move slightly more, sometimes slightly less…)

I’ve given up on corner functionality for now and decided to build my runner without corners, with some curvature shader…just like subway surfers and the like.

I could send you some blueprint screenshots to take a look by e-mail or PM. I’m not even sure if this forum or board or whatever it is even lets you PM another user :slight_smile:

cheers

I’m not sure how your using the timeline, in that case it could be due to the interpolation type between beginning and end of a frame.

Otherwise, mite mention these people also missed an important well known step, where you multiply the intended change in value/speed, etc. by the elapsed time since the last frame update(delta time), since the amount of time in between each frame/tick changes with every running tick.

FYI was facing similar problem by coincidence, and so in this example I used a right vector instead of forward vector, which is similar concept but 90° to the right of the forward(front) facing direction.

I did this to correct the import orientation of my skeletal mesh, which faces the Y axis as its intentional front direction.


It would seem skeletal meshes are controlled by their bones and cannot be rotated on their own, unless they are not a root component and can instead follow a parent’s rotation.

Nice solution using vectors to move locally. I did this for moving an actor using a timeline to move along time. Hope will useful for you.