Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Document Summary: Guide to creating custom characters for the third generation Unreal Tournament game. Document Changelog: Created by Paul Jones; updated by Chris Mielke and Aaron Herzog. Maintained by Richard Nalezynski.
Overview Skeletons
Exporting Importing Adding Sockets to the Mesh Configuring the Mesh for Use In-Game
Overview
This document discusses the UT3 Character skeletons, as well as how to import the mesh content into the engine and configure it to run in-game.
Skeletons
In UT3 there are 4 different main skeletons used:
Each skeleton type has a master skeleton file which contains all bones used by every character of that type. It is not necessary for a character mesh to make use of all the bones; however it is necessary that the master skeleton have every bone for every character. For example, if one wants to create a character with a new cloth type that doesnt exist yet, like cloth hanging from each wrist, those bones need to be added to the master skeleton so that each mesh works correctly during the character creation process. Because the master skeleton has every bone that exists, it is a good idea to use the master skeleton max file for skinning a new mesh since it is easy to see all the bones available for use. Download the master skeleton max files here:
UT3_Male.max (3D Studio Max 9) UT3_Female.max (3D Studio Max 9) UT3_Krall.max (3D Studio Max 9) UT3_Corrupt.max (3D Studio Max 2009)
NOTE: A Biped rig is included with some of the skeletons. The Biped rig is just an additional skeleton that's easier to animate. When an animation is done, we bake the animation onto the original skeleton, delete the biped, and export the animation. Additionally, the following first person skeleton is available for reference:
SK_WP_1P_Arm_Bones.max
For simplicitys sake, this document is going to go over getting characters imported using bones that already exist. For more information regarding editing of the master skeleton and corresponding phat asset read the Creating Custom Skeletons for Characters in Unreal Tournament 3? document.
Merge in the bones from the UT3_Male.max file, delete the bones that arent needed, and then weight the mesh to the skeleton. In this case, Malcolm doesnt have any use for the cloth bones so those can be deleted.
Exporting
Next is to export your character and get it into the engine. Each mesh piece will be exported separately as its own skeletal mesh using ActorX. Download ActorX plugins here: ActorX Malcolms boots will be used as an example for getting mesh pieces into the engine. Use the same process for the other pieces. To export Malcolms boots, first load up ActorX. Then make sure the Skin Export settings are correct.
The all skin-type setting ensures that weighted meshes in the scene will be exported. The all selected setting is an easy way to export each piece one at a time. If for some reason all selected isnt working or isnt available in a version of ActorX, simply delete the meshes you do not wish to export, but DO NOT delete any part of the skeleton. Just make sure to save your scene before deleting any meshes, so you have a complete version to go back to; and remember not to overwrite that file after deleting meshes. Fill in the output folder and mesh file name fields in ActorX, and with the boot mesh selected, press the Save mesh/refpose button to create a skeletal animation (.psk) file. If there is any animation on the skeleton, ActorX will use the first frame of the timeline (usually frame 0), as the export pose.
Importing
Open up the editor and in the Generic Browser window, go up to file -> import. Navigate to the psk file that your export created and click open.
After you select Open, another window will come up asking what you want to do with your animation file. The Package field in this window lets you import into an existing package or create a new one. To create a new package, type the name of a package that doesn't already exist. The new package will be created and your mesh will be imported into it when you select OK. To import to an existing package, type the name of an existing package or select it from the drop-down list. In this window, you can also create a group within the package via the Group field, as well as change the mesh name via the Name field.
Once the mesh has been imported, save the package in the following directory:
\My Documents\My Games\Unreal Tournament 3\UTGame\Unpublished\CookedPC\CustomChars
Sockets are created by selecting New Socket, choosing which bone the socket will be attached to, and then creating a name for the socket. Here is a list of sockets needed: Mesh Name Socket Name Bone Name Arm Mesh WeaponPoint b_RightWeapon DualWeaponPoint b_LeftWeapon Boot Mesh L_JB b_LeftAnkle R_JB b_RightAnkle Torso Mesh HeadShotGoreSocket b_Neck Boot meshes need two sockets to give a place for particles to emit from when using jump boots. These socket names are L_JB for the left foot and R_JB for the right foot. For example, to add the L_JB socket, select New Socket, choose the bone b_LeftAnkle, then for the socket name type L_JB. Sockets can be translated and rotated so they can be placed in the correct place relative to the mesh. Upon creation, these sockets appear at the origin of the ankle bone. But the particles need to emit from the bottom of the foot. In the Socket Manager window, the first two icons are translate socket and rotate socket. With translate socket on, move the socket to the bottom of the foot. Some sockets may need rotating as well to make sure that particles emit the correct direction or that objects attach with the correct orientation. You can open the Socket Manager window on other skeletal meshes that shipped with the game to get an idea of how and where these sockets should be placed.
All that is left is configure the custom character to let the game know where your skeletal meshes are and how to use them. This is done by editing a configuration (.ini) file:
\My Documents\My Games\Unreal Tournament 3\UTGame\Config\UTCustomChar.ini
To add Malcolms boots to the UT3 Character Creation menu, a line needs to be added to the configuration file indicating that there is another pair of boots to be used. Malcolm looks like an Iron Guard character so the piece would fit best there. Scrolling down in the configuration file you come to where all the Boots are located, and narrowed down further by which family they are located in in this case, the ironguard family (shown as IRNM).
Parts=(Part=PART_Boots,ObjectName="CH_IronGuard_Male.Mesh.SK_CH_IronG_Male_Boots01",PartI D="A",FamilyID="IRNM") Parts=(Part=PART_Boots,ObjectName="CH_IronGuard_Male.Mesh.SK_CH_IronG_Male_Boots02",PartI D="B",FamilyID="IRNM") Parts=(Part=PART_Boots,ObjectName="CH_IronGuard_Male.Mesh.SK_CH_IronG_Male_Boots03",PartI D="C",FamilyID="IRNM")
The naming convention for the Objectname is: Package.Group.Subgroup.Mesh (note the periods between each section). For example, if the new mesh was named Malcolm_Boots, and existed in a package called Malcolm, with no group, the Objectname would simply be Malcolm.Malcolm_Boots. The naming convention for the Objectname is: Package.Group.Subgroup.Mesh (note the periods between each section). For example, if the new mesh was named Malcolm_Boots, and existed in a package called Malcolm, with no group, the Objectname would simply be Malcolm.Malcolm_Boots.
Parts=(Part=PART_Boots,ObjectName="Malcolm.Malcolm_Boots",PartID="D",FamilyID="IRNM")
Save the configuration file and run the game. Your new piece should now show up in the UT3 Character Creation menu.