UDN
Search public documentation
ImportingSkeletalMeshTutorial
Importing Skeletal Mesh Tutorial
Document Summary: A tutorial on getting animated meshes and animations into the Unreal Engine. Document Changelog: Created by Chris Sturgill (Demiurge Studios?). Updated by Laurent Delayen.Introduction
This document serves as an introduction to the Unreal Engine 3 art pipeline, as it applies to skeletal meshes. Most attention will be directed toward features and procedures particular to the new engine. Features that have not changed in the new engine are discussed in detail elsewhere in UDN.Realtime Bump Mapping: Detail Meshes and Render Meshes
UnrealEngine3 provides the ability to utilize realtime bump mapping. This new technology calls for new modeling techniques. A normal map is generated procedurally by reading geometric detail from a very high poly "Detail" mesh. The Detail mesh need never run in a realtime situation – it exists to provide normal map information. Therefore polygon counts become much less restrictive, allowing for detail of cinematic quality.
The generated normal map is then applied in UE3 to a lower poly "Render" mesh, the end result being a mesh which looks much more polygonally complex than it actually is. The Render mesh will actually be rigged, animated, and exported to UE3.
Exporting Content
At this point you should have a Detail mesh and a Render mesh which are placed at the same point in space (probably the origin). The Render mesh should be unwrapped and it's UVs should be nicely laid out.
This is important because the SHTools process is based on the unwrapping of the Render mesh. This can also be accomplished with newer versions of 3D Studio Max.
A Few Words About UVs
The process of normal mapping requires special unwrapping considerations. For best results make sure UVs do not overlap. It is ok to stack UVs if the geometry involved is geometrically identical. For example, it is not a good idea to have different parts of a mesh overlap, like the following image:
It is fine to stack UVs, such as the case of mirrored geometry, as in the screenshot below:
These restrictions do not necessarily apply to the Detail mesh as it doesn't need to be textured at all for the SHTools process to function.
Exporting Animated Mesh and Anims
Exporting animated meshes and animations has not changed in UnrealEngine3. The process of exporting your rigged Render mesh and animations is covered in detail in the ActorXMaxTutorial. Note: Exporting normal maps via SHTools (covered immmediately below) for UE3 is not currently supported. However, as the animation pipeline has not changed, exporting animations from Maya is currently supported and is covered in detail in the ActorXMayaTutorial.Generating Normal Maps
The process of generating normal maps from the Detail mesh can be handled by the SHTools plugin, or by tools in 3DStudio Max, Maya or Softimage XSI. This tutorial will cover simple step-by-step instructions. Please note that the SHTools mesh processor and server were created before Max/Maya/XSI had their own normal mapping tools. We generally use those now for creating our normal maps. It is strongly suggested that you consider using a 3D Modeling package such as Maya to create normal maps.Getting Content into the Engine
Now we want to get our assets into the engine via the Unreal Editor. Here we will cover the process of creating packages and importing animations. For more information on the Generic Browser and the Package System, see the Generic Browser Reference.Materials
The order on export is defined by the materials themselves. See the ActorX pages for more details, including tutorials for Max and Maya. In Max, make your material a multi sub object material and name the sub materials skin00, skin01, skin02 etc. to define the order In Maya, perform the following steps:- Open up Hypershade.
- Double click on your shader node to open the attribute editor for that shader.
- At the top where the shader name is there is two arrows next to it, click the bottom one.
- This will take you to the shadingEngine properties, change the name to skin00, skin01, skin02 etc. to define the order.
