"Forward" in unreal engine. Which is it?

I’m finding conflicting definitions of “forward” in unreal. It’s clearly said to be +X in the code:

Which seems to make total sense:

However, setting a viewport to “front” makes it point at -Y:

Importing a mesh from blender also changes it to -Y forward and +X right.

Which is correct?

X is forward in Ue4.

That’s what I thought, but then why are meshes imported with -Y forward?

They aren’t.

You sure about that? Did you even test it first?
I made a simple arrow facing “forward”:

In unreal, it’s pointing towards -Y:

I’ve found a comment hidden deep in the code explaining what’s going on here:

In you modelling software the arrow is pointing in the y axis but it should be x, ue4 won’t magically make your object point in the x axis.

There are different orientations for different situations. The animation system and stuff like PHAT expects Y so that’s why they import facing that direction. The gameplay stuff (like blueprints) expects X. That’s why there’s an arrow component in character blueprints, you need to match the direction of the mesh and the arrow. Usually you just need to rotate your skeletal mesh component by 90 degrees and it should be fine.

I think there’s even another difference regarding rendering/screenspace stuff but that should make more sense I guess.

I find that Epic is inconsistent with this as well with their own assets.

1 Like

Yeah I still don’t know why the editor says front is Y but the assets go to X as the docs

Aswell some assets made by Epic look to one side and other looks to other as you can notice in skeletal meshes