Isometric Movement UE5 (3D)

Dear all,

I’m currently struggling with the character movement for an isometric game I’m working at.
I have changed the 3D Character Blueprint to work with the isometric view, but its movement it is not getting the correct rotation.
I’m working with the keyboard only for now, so when I hit ‘W’ to move forward, it goes ‘right’. Here is a picture to show my current problem. (The red arrow is the location the character is moving and the green arrow is the desired location I wish it went when hitting ‘W’).

3 Likes

Hey @elanvirmond

I don’t know how you set up your character but you could do it it like this:

The character will use the right and forward vector of your camera as its directon. Only use X and Y for the forward vector because otherwise you will run into the ground.

2 Likes

hi @elanvirmond

The reason W goes forward as that is the default “Forward Vector” of the character.
And the default ThirdPerson blueprint uses this as its movement default.

Simplest way to be very honest is remap the controls but only if you are locking the camera as that will change the forward vector if you do not

Change W for D, S for A,

tho what @L1z4rD89 suggested looks sound

1 Like

Hey High500, thanks for the feedback, but sadly if I do this, the movement is still not correct.
Changing the mapping will do the following movement when W is pressed (in red arrow) and I needed the movement as the green arrow below:

image

@L1z4rD89 I’m so sorry but since I’m new to UE I could not understand well on how to change.
I have checked the standard 3D character blueprint, but could not find the correct changes to work as what you mentioned.

Hey @elanvirmond

so let’s say you start with a new project and open up the BP_ThirdPersonCharacter blueprint from Content/Thirdperson/Blueprints

image

You will see this:

On the left side you can see the Components in this blueprint:
image

The events used inside Graphs, here only EventGraph, as a list:
image

The Functions, here only ConstructionScript (gets executed when this blueprint is constructed):
image

The Macros:
image

And the Variables:
image

And all the events and their functionality used in this blueprint:

The Components list shows you all components of the blueprint and allows you to drag and drop them into the EventGraph:
image

The Graphs list allows you to double click an event to jump to this event inside the EventGraph:

So, these are the things we will need for your movement. For your isometric movement we need to adjust

  • The camera
  • The move event

First, the camera:
To get a fixed camera you can uncheck these settings in the Details tab of the CameraBoom):
image
So now the camera won’t follow your mouse input and won’t follow your characters direction. Its rotation is fixed in the world/map but it will still follow your character.
Next, change the rotations of the CameraBoom like this:
image
If you do not find these settings or you do not see the Details tab: You must first select the CameraBoom in the Components list:
image
And check that the Details tab is visible:
image

Second, the move event:
We want to use the forward and right vector of our camera. So we drag the FollowCamera from the Components list inside the EventGraph and do this:


You can get the GetRightVector or GetForwardVector like this:


In this video you will also see how to split a StructPin.
These vectors will be the new direction for your character:

Why do we normalize the ForwardVector and why do we not use the Z component you may ask. Well, we only need the X and Y component because otherwise the vector would point into the ground and the character would move into the ground. So now that we just have the X and Y component we need to normalize it. Usually the direction vector has a length of 1. This is calculated with :

X^2 + Y^2 + Z^2 = 1

If we do not use Z in this equation the sum will be smaller than 1 and your character will be slower in this direction. You can test it with this:

Third, character and mouse input:
If you do not want to rotate the character with your mouse, you can just break this link:

6 Likes

Oh wow! It worked perfectly! Thanks for all your explanation! :smiley:
I could not be happier! For sure when I finish this game you will be mentioned, credited and worshiped! <3

Thanks a lot!

1 Like

I have tried this configuration on the thirdPerson template and works nice but when you get behind one of the walls of the scenario or somewhere where the cam doesn’t see you it does a weird zoom till your character. Any way to avoid this behaviour and that even if the cam doesn’t see you that stays at the right distance and still moving? Thanks a lot!

Epic Instructions Lizard!

Hi Nilo,

Try disabling ‘Do Collision Test’ on the CameraBoom(Spring Arm Component) in BP_ThirdPersonCharacter

1 Like

If the camera rotation is fixed, could just skip getting its forward/right vector and throw fixed vectors at move input.

Ignore the “stop furniture” call, that’s just to force character to stand if sittting.

I’ve just come upon this and I would love to use this blueprint, but I’m afraid I’m a bit stuck. I’ve applied everything, but now when I turn right or left the character just turns in circles?

Hey @Bartfliet

This could be caused by

  • Wrong direction vectors
  • Moving camera with the character, camera rotation not fixed
  • GamePad or DrivingWheel connected