# What exactly is "forward" in UnrealEngine?

**URL:** <https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082>\
**Category:** Character & Animation\
**Tags:** forward-vector, unreal-engine, question\
**Created:** [June 5, 2014, 2:24pm UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082 "2014-06-05T14:24:26Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![kat0r](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@kat0r](https://forums.unrealengine.com/u/kat0r)\
**Post date:** [June 5, 2014, 2:24pm UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082/1 "2014-06-05T14:24:26Z")

</div>

Hi,  
when I add an Mesh to UE4, it looks like +Y is forward, like in this picture:

 ![7806-front+1.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/b/4/a/b4aeca62fed29c8b066cb0db11ec3bc805a4059c.png)

On the other hand, in code/blueprints, +X is the forward axis. Which means that if I use FindLookAtRotation(), my model will be rotated 90° to the right of where it should point.  
Am I doing something horribly wrong, or does UE4 use two different definitions for forward?

---

<div class="post-metadata">

**Author:** ![AnadinX](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/anadinx/32/1008648_2.png) [@AnadinX](https://forums.unrealengine.com/u/AnadinX)\
**Post date:** [June 6, 2014, 10:37am UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082/2 "2014-06-06T10:37:17Z")

</div>

I am pretty sure it is X but agree it is not always that clear. The new vehicle stuff uses X, unfortunately meshes from Cinema4D come in with Y forward and if you use Y-Up in Maya I think you get the meshes import with Y Forward too.

---

<div class="post-metadata">

**Author:** ![FLS-Eugene](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@FLS-Eugene](https://forums.unrealengine.com/u/FLS-Eugene)\
**Post date:** [July 6, 2014, 10:53pm UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082/3 "2014-07-06T22:53:07Z")

</div>

I tested this with Modo 801 and Maya 2014.

It keeps importing as Y forward, but look-at for example changes X.

Eugene

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_3221808d](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_3221808d](https://forums.unrealengine.com/u/anonymous_user_3221808d)\
**Post date:** [July 7, 2014, 12:18am UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082/4 "2014-07-07T00:18:36Z")

</div>

I think this may be a mistake as i can’t find a reason for it but skeletal meshes will import with Y forward. Notice though that even in their examples they make sure to rotate the mesh to face X forward in the character blueprint.

So skeletal meshes import Y forward but the controller expects the pawn/character to be X forward. Correct this in the blueprint or by using an offset of your own in C++ i guess.

---

<div class="post-metadata">

**Author:** ![AnadinX](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/anadinx/32/1008648_2.png) [@AnadinX](https://forums.unrealengine.com/u/AnadinX)\
**Post date:** [July 12, 2014, 1:03am UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082/5 "2014-07-12T01:03:51Z")

</div>

Except it breaks vehicles and would have implications with root motion, ideally UE4 needs to do the rotation internally so our meshes end up X Forward

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_3221808d](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_3221808d](https://forums.unrealengine.com/u/anonymous_user_3221808d)\
**Post date:** [July 12, 2014, 1:39am UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082/6 "2014-07-12T01:39:24Z")

</div>

I totally agree. This is a very odd issue. I can only guess this is a left over from UE3 where Epic engineers did some funky rotation on skeletal meshes to accommodate their artists wanting to work Y forward.

---

<div class="post-metadata">

**Author:** ![VRDave](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@VRDave](https://forums.unrealengine.com/u/VRDave)\
**Post date:** [March 25, 2015, 12:24am UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082/7 "2015-03-25T00:24:17Z")

</div>

Forward is in the +X direction in Unreal coordinate system terms.

You can find out how the engine defines “forward” simply by looking at the ForwardVector constant on FVector class (there may be a way to inspect this through blueprints, but I haven’t tried).

FVector::[ForwardVector](https://docs.unrealengine.com/latest/INT/API/Runtime/Core/Math/FVector/ForwardVector/index.html) = FVector(1,0,0); // X is forward

Similarly, you can look at the UpVector constant to get a feel for “up”:

FVector::[UpVector](https://docs.unrealengine.com/latest/INT/API/Runtime/Core/Math/FVector/UpVector/index.html) = FVector(0,0,1); // Z is up

In terms of importing models, I’m not sure how the pipeline handles models made in a different coordinate system, but I would imagine the Engine would somewhat respect/convert it to the right rotation based on the file. But if you are building out your blueprint or construction, you should definitely point the ‘front’ in the +X direction.

---

<div class="post-metadata">

**Author:** ![AnadinX](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/anadinx/32/1008648_2.png) [@AnadinX](https://forums.unrealengine.com/u/AnadinX)\
**Post date:** [March 25, 2015, 1:00am UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082/8 "2015-03-25T01:00:53Z")

</div>

Yup it is X Forward, Z Up, which is different to everything else (Blender is -Y Forward, +Z Up, Maya (in z-up mode) is +Y Fwd, +Z Up etc.) but now we have the import translate, scale, rotate it has got to be less of a problem, be nice to be able to make those settings a preset though.

---

<div class="post-metadata">

**Author:** ![glaucobacchi](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@glaucobacchi](https://forums.unrealengine.com/u/glaucobacchi)\
**Post date:** [August 22, 2018, 9:38am UTC](https://forums.unrealengine.com/t/what-exactly-is-forward-in-unrealengine/285082/9 "2018-08-22T09:38:48Z")

</div>

Meshes provided by Epic (eg “SK\_Mannequin”) seem to always face along the +y axis.

Characters provided by Epic (eg “ThirdPersonCharacter”) seem to always have the Mesh component rotated 270 degrees around the z-axis so it faces along the +x axis. This then works with the concept that forward means along the +x axis.

Strangely, when using the UnrealEditor .fbx import tool with default settings it orients the imported mesh to point along the +x axis.

To work around this I change the import settings when using the fbx import tool to add a rotation of 90 around the z-axis so my imported mesh faces along the +y axis.
