Skeletal Mesh Correct Orientation?

i don’t think animation blueprints should rely on the orientation of the mesh, they usually just deal with the physics state of the movement component, and the orientation of the player controller. i try not to use “get forward vector” on meshes, and more generally, i try not to let code make any assumptions about art assets. if i want to use the orientation of a skeletal mesh in some kind of vector math, i will usually use a socket attached to the mesh. i consider sockets to be tech art glue, which gives programmers an interface to communicate with art, without making any assumptions about the underlying art. so whether you want to do vector math for moving IK limbs, or shoot a projectile towards the front of a skeletal mesh, you can use a socket to get your transforms just how you need them.


but i would love to know why epic doesn’t follow their own content standards. im guessing its due to a lack of communication between a maya tech artist making awesome rigging tools, while Tim Sweeney was deciding on engine standards like Z = up, X= forward. i think Epic is split between max and maya, with modellers using max, and animators using maya, and they have different world coordinate swizzles.

Hi,
in the documentation Content standards is says that Skeletal meshes should face down “positive X-Axis” however both new and old project mannequins face down positive Y in addition to this the “ART” rigging tool-set creates its rigs in negative Y (in Maya). id like to know if there is a standard that epic uses and what the trade offs are, it would be frustrating to get too far down the line and have to change something so fundamental, i also dont want to run into orientation problems in my animation blueprints.
any help would be grand,
Thanks,
ivy

i can see your point of view but i guess for me having no foreseeable problems is still not a good reason to have no consistency… after all i’d be trying to avoid problems i haven’t thought of yet. for instance there could be repercussions for a -90 to +90 rotation system. anyhow i guess ill just go with positive X in Engine as correct as that makes the most sense as forward from a pragmatic point of view. thanks for the insight, i found your comment really helpful. i hope you dont mind if i leave this as unanswered in case an epic dev can give me an insight on what standard they use currently.

yeah, the only problems it could cause, is if you rely on the orientation of the mesh in code, but i suggest never doing that, and using socket transforms instead.

maybe it could cause some kind of gimbal lock, but if you are rotating a mesh in odd enough ways to cause gimbal lock, you should probably be using quaternions, instead of Euler angles. given that this engine is designed for first person shooters, the order they multiply matrices probably relies on the idea that most things wont roll, and most things rotate in yaw more than pitch, so starting with a messed up yaw offset should be the least likely axis to cause gimbal lock.

but i agree, i would love to hear from Epic staff, why they don’t follow their own content standards with their example content. i have a feeling that its because their rigging software makes axis assumptions for bone/pose mirroring in Maya, but that’s just a guess.

Yes, I find it weird that the default Third Person Character skeletal mesh is oriented facing the positive Y-axis instead of positive X. And then when it’s place in the Third Person Character blueprint it’s just rotated 90 degrees… but you can run into some major headaches as soon as you try to do any rapid prototyping with follow cam setups using the default character.

ttt for a response from epic

1 Like

Replying to the main branch because I’m a Blender user who has continually struggled with importing my meshes into Unreal. There is definitely a transform issue between the two which only seems to be fixed if using the ‘blender to Unreal’ addon that seems to detect the transform issues better than the default fbx importer in Unreal which by side effect, will generate massive bones that will break the physics asset and control rig functionality. Currently I am working on fixing orientation issues on a custom character that is not using the UE mannequin skeleton. The last issue I have now is with a strange twisting of my mesh when applying IK through control rig. I’m assuming it’s bone roll so I’m commenting on this topic since it seemed relevant but there isn’t a big response.