Importing vertex meshes into Unreal

From Oldunreal-Wiki
Jump to navigation Jump to search

Part 1) Intro

Unreal Engine 1 is one of the older engines which seems to be user unfriendly when it comes to importing new animated meshes into the game. In this tutorial I would like to share my workflow of how I prepare and export meshes from blender and get it into Unreal / Unreal Tournament.

I will use my new RocketCan mesh which I made for Unreal Redux as an example.

Part 2) File Formats And Blender Plugin

Unreal's vertex mesh format requires two different files for the import.

A _a.3d which stores the vertex animation timeline and a _d.3d which stores the mesh data like the UV Map and materials / poly flags.

Thankfully Skywolf wrote an exporter for Blender which allows exporting meshes in the right formats!

Link to the thread + downloads: Skywolf's Blender Vertex Mesh Importer / Exporter Plugin

For this tutorial I will be using Blender 2.80. The plugin for blender works flawlessly in this version I don't know if there will be future updates for the plugin for newer Blender versions.

Part 3a) Preparing Your Mesh - Boundary Box


The most important part is that your mesh is inside of a boundary box with a size of 256 x 256 x 256 Unreal units.
BoundaryBox.jpg

If the mesh leaves that box caused by an animation or if it is bigger, your mesh will get cut and vertices will merge during the import progress.

To check the right sizing and maximize your animation range you can download this Cube.obj

File:256Cube.7z
In case you don't want to download the file you can convert the default Cube Builder Brush from Unreal to a static mesh - export it as .obj and import it into blender.

Part 3b) Preparing Your Mesh - Timeline Animation


I setup an simple armature system for the mesh which includes an "Open" and "Close" animation.

  • Frame 1 is the "default" position or the "Still" position the mesh.

Frame1.jpg


  • Frame 3 is the "Open" position

Frame3.jpg


  • Frame 5 the "Close" position.

Frame5.jpg


TIP: If you have looping animations make sure the last frame of an animation is the same frame as the start frame.

Part 4) Exporting Timeline Animationset.

Make sure your mesh is not split into different objects. It's important that all animated parts are stored in one object. Otherwise you will export only one part of it.
If your mesh is only one object select it in Object Mode.
Then go to file → export and select Unreal Engine Vertex Mesh (_a.3d, _d.3d)
ExportImage.jpg

Then choose a name for your Mesh and select under the point "Source:" Scene Timeline
I also recommend checking "Exporting to UCC folder Structure". This generates for you a preset for the import information which I will explain later in Part X)
ExportOptions.jpg

If no error occurs after hitting export your mesh have been exported successfully.


IMPORTANT: Before you export your mesh, make sure you deleted the Boundary Box if you used it.

Part 5a) Preparing The Import

Create a new folder in your Unreal directory and name it like your package will be named. In this tutorial I will name it "NewRocketCan"
PackageFolder.jpg

Open that folder and create new folders named "classes", "models", "sounds" and "textures".
Paste the generated .uc in the "classes" folder and the exported _a.3d and _d.3d files in to "models".
If your mesh has a custom skin put it into "textures" and new sound effects into "sounds"

FolderStructure.jpg
Then go to the System folder in your Unreal installation and open the Unreal.ini and add a new EditPackages line under [Editor.EditorEngine]. I choose EditPackages=NewRocketCan.
Packageini.jpg

NOTE: The .ini entry and the new folder in your Unreal directory must have the same name!


Now navigate to the folder in which you have exported your mesh and copy the .uc and the _a.3d and _d.3d in the new folders you have created in your Unreal installation

5b) Preparing The Import - The .uc File

Skywolf's vertex mesh exporter plugin generates for you a ready to use .uc file which includes all important information which Unreal needs.

I tried to mark and describe some parts in the code so you can customize it to your uses.
DefaultImportUC.png

The changes I will apply to my inport information are:

  • Changing the parent class to "RocketCan"

TO BE CONTINUED!!!!