Blending player location into sequence through sequencer transform?

Hey all, I’m having an issue right now with a project I’m working on, before the project was a 2D sidescroller with locked movement in one lane- HOWEVER- we are now updating it to allow a little movement into other lanes.

The cutscenes beforehand smoothly transitioned from gameplay to cutscene since the player would always be in the same lane but now it’s jumping around since it could be triggered from many different points.

Is there any way to make the cutscene start with the players transform from the level? (like the ‘keep state’ transform option for after the cutscene?)

I’m not the most advanced at Unreal Engine so please explain it to me like I’m an idiot please ahaha-

Here’s a video of the problem + my sequencer keyframes/ transforms:

Any help or ideas at all would be greatly appreciated! :smile:

Okay, I made a little progress but there’s still a few issues (however, much less than before!)

I used the simple Move To node in a blueprint with a trigger box to place right before the cutscene. This makes the player walk into a certain position before the cutscene!
My thoughts were that if this position was 0 in the Y axis, it would match the premade cutscenes.

In game it works a little different, since the ‘Location’ Vector is relative location not world location, I can’t exactly match it up- however- I did record the location of the player before and after the little jump to be as minimal as possible.

Because of the multiple lane of movements, the player doesn’t actually walk to y = 0 from the initial position for some reason?
(Here’s a little video to try and explain it better :sob:)
But basically, depending on where the player starts- they end up in a slightly different end location and jump a little (for some reason??)

I have no idea why this is happening, but it is a lot of progress from yesterday so I’m leaving this here in case anyone else is having this same issue!

Hello @WillMead13, I’ll try to help you with your issue!

First of all, why is your Target Location in local space? Is it just a variable you created? Aren’t you able to use the Get Actor Location node to directly get the world location or your object?

If not, you could use a node called Transform Location to convert it from Local to World space by feeding it a reference transform (from your object, probably). That way it should give you an exact match for the position, even if you connect the Y as well. Let me know if that works!

Hi, thanks so much for your reply!
It is a variable I created just so I can move it around in the level- is there a better way to do this without a variable?
Also I am not super experienced with Unreal Engine to be completely honest so I’m not 100% sure what you mean sorry- is this right so far converting the variable to World location through the Transform Location node? (I’ve got an error though?)

Thanks again for trying to help me!

Assuming you want to get the position of the MoveToTarget component, you could just drag and drop it to the Event Graph, then use the Get World Location node to get the exact location of that component. This would allow you to move that component in your scene so you can better control the final position you want your character to be in!

Regarding the Transform node, you need to connect a Transform to the orange T, so you could type Get Actor Transform and feed that Blueprint transform so it converts it to World Space. But, if you could do what I suggested above, I think it’s a better solution as it would give you more control and allow you to reuse that BP in all cinematics that require that type of system. You would just need to move the Scene component to the final location you want.

I hope that helps! :slight_smile:

Hi! I got rid of the variable and am now just using the ‘get world location’ of the MoveTo scene component and that’s working well!
The only issue still is that the player isn’t actually ending up at the right point (y=0) it’s different depending on which lane they’re in,
it’s kinda hard to explain so I made another video to show it (I hope this is okay!) :smile:

Hey @WillMead13, sorry for the delay! Were you able to figure it out?

It could be the Simple Move to Location precision, but I believe there are not many options for controlling the player character…

Have you checked if the BP_MoveTo is in the correct position as well? The MoveToTarget component is in 0, but that’s its relative location, not world location. If the parent BP (BP_MoveTo) is 15 in Y, for example, the final position of your character will be 15. It would be 0 if the parent is 15 and the component is -15, if that makes sense.

Also, I believe you are changing the character position in Sequencer too, so just make sure that the final position in sequencer match exactly the position you have for the MoveToTarget component!

Hi there!
The MoveTo actor is in the y=0 lane and the sequencer player location should be the same as where the player walks to?

If there’s limitations in moving the player, is there anyway just to set the player’s current location for the first sequence key frame? Basically all I need is for the player to be in the same location at the end of gameplay and beginning of the sequence-
I couldn’t figure out how to do this, this is the only reason I resorted to moving the player into the correct location ahaha

Hey @WillMead13! Yes, the trigger location (at least in Y) should also match the position you’re trying to move the player to, that way the Y=0 in the MoveToTarget component will match the actor position.

But if you don’t really need to move the player to that specific point, it’s much easier! You can use dynamic binding to control the player character (if you’re not already doing so) and just delete the transform track of the actor in sequencer. That way it’ll retain the player’s last position. Here’s the documentation for it, in case you’re not familiar with it: Dynamic Binding in Sequencer | Unreal Engine 5.5 Documentation | Epic Developer Community

Or, if you don’t actually need the player in the sequence (if you don’t need to play an animation or do anything with it), you can just remove it from that sequence. It’ll continue in the world as the sequence plays, just make sure to disable the input - and possibly stop the enemies from attacking, if that’s possible in your game.

I hope that works, let me know how it goes!

With the dynamic binding, do I use an object that isn’t the player in the sequencer and bind that object to the player?
Or is there a way just to make the first transform inherit the player’s current location?

I think this way will be much less hassle than moving the player, so thanks for the help! :grinning_face_with_smiling_eyes:

Hey, mini update!
I removed the transform keyframes from the player so they can walk into the cutscene from any lane and still trigger it without jolting back into position-

My only issue now is how do I key frame the walking section/ just make the player walk to a point- WITHOUT key framing it? should I use the MoveTo actor I created or would that not work being triggered through a sequence?

You can still use the same actor you have in sequencer, you just need to right-click it and set up the dynamic binding.

And yes, in that case, you can continue using the MoveTo BP you created and the character will remain in the position you have your MoveToTarget component! I hope all is clear and you’re able to achieve good results! :slight_smile:

Hi! I managed to get an effect that looked good using the MoveTo blueprint in the sequencer and calling the move event at the time I wanted!

(I’ll leave a video showing how in case anyone else with this issue stumbles across this thread!)

Thanks so much for your help! :grinning_face_with_smiling_eyes:

1 Like