(version 1)
Here are some notes on getting a custom character into UT4.
We assume that:
Notes - Adding custom character:
-Start up the UT4 editor.
Main class for defining a character is UTCharacterContent.
For an example, see:
-Import the third person mesh (FBX format)
-Import the first person mesh (FBX format), set skeleton to base_1p_Skeleton

-Navigate to '/Game/RestrictedAssets/Character/', and right click 'Duplicate' on one of the *Base files:
It does not matter which one is duplicated, as they are just presets and can be modified later.
-Duplicate Blueprint'/Game/RestrictedAssets/Character/HumanMaleBase.HumanMaleBase' and rename it,
for example to TESTCHAR, then double click on it to edit properties.
Properties of interest(all skeleton):
-Once the properties have been set up make sure to save the UTCharacterContent, or else it might not load.
(may need to close and restart the editor to get it to load)
-For the next step, press 'Play' to start a session.
-At this point the character should be working in both first and third person. Press ESC to return to the editor.
-To package the character, go to:
-Name of the bot ingame is the same as the name of the asset
-Make sure that 'Requires online item' and 'Proto Bot' are unchecked
-Packaging a bot with UTCharacterContent:
-Bot testing console commands, only seems to work in the client (not editor):
Notes - Setup 1st person character mesh:
Notes - Materials setup:
Example of a basic material setup for UT4 with teams:
Panini projection setup:
Assets of note:
Here are some notes on getting a custom character into UT4.
We assume that:
-There is a character mesh already rigged with the UT4 skeleton and exported.
-The character's textures and materials are already setup for Unreal Engine 4.
-The character's textures and materials are already setup for Unreal Engine 4.
Notes - Adding custom character:
-Start up the UT4 editor.
Main class for defining a character is UTCharacterContent.
For an example, see:
Blueprint'/Game/RestrictedAssets/Character/Malcom_New/Malcolm_New.Malcolm_New'
-Import the third person mesh (FBX format)
-Set PhysicsAsset to base_3p_PhysicsAsset
-Set skeleton to base_3p_Skeleton
-Set skeleton to base_3p_Skeleton
-Import the first person mesh (FBX format), set skeleton to base_1p_Skeleton
-Navigate to '/Game/RestrictedAssets/Character/', and right click 'Duplicate' on one of the *Base files:
HumanFemaleBase
HumanMaleBase
NecrisFemaleBase
NecrisMaleBase
RobotCharBase
SkaarjMaleBase
HumanMaleBase
NecrisFemaleBase
NecrisMaleBase
RobotCharBase
SkaarjMaleBase
It does not matter which one is duplicated, as they are just presets and can be modified later.
-Duplicate Blueprint'/Game/RestrictedAssets/Character/HumanMaleBase.HumanMaleBase' and rename it,
for example to TESTCHAR, then double click on it to edit properties.
Properties of interest(all skeleton):
Transform
Rotation - set this if the 3rd person mesh is not aligned correctly.
Scale - set this if 3rd person mesh is too large/small. (note: does not scale weapon size)
Scale - set this if 3rd person mesh is too large/small. (note: does not scale weapon size)
Mesh
Skeletal Mesh - set this to our 3rd person mesh
UTCharacterContent
Display Name - name of the character in the menu
Hide in UI - set to false(unchecked)
Requires Online Item - leave unchecked
Requires Offline Achievement - leave as 'None'
Entitlement - leave blank
Skeleton Mesh - this is the mesh when gibbed by the Link Gun
Gibs - these meshes are spawned when gibbed
DMSkin Type - if set to 'EDMSkin Base' team materials will not be applied in DM;
otherwise, red team materials are applied(even for 'EDMSkin Blue')
Team Materials - overrides the materials used by 3rd person 'Skeletal Mesh' parameter above
Team Materials 1p - avoid adding materials here; this seems to be unused by the official meshes
in the current UT(build 3525360), and has some issues(see Team Materials below).
Hide in UI - set to false(unchecked)
Requires Online Item - leave unchecked
Requires Offline Achievement - leave as 'None'
Entitlement - leave blank
Skeleton Mesh - this is the mesh when gibbed by the Link Gun
Gibs - these meshes are spawned when gibbed
DMSkin Type - if set to 'EDMSkin Base' team materials will not be applied in DM;
otherwise, red team materials are applied(even for 'EDMSkin Blue')
Team Materials - overrides the materials used by 3rd person 'Skeletal Mesh' parameter above
Team Materials 1p - avoid adding materials here; this seems to be unused by the official meshes
in the current UT(build 3525360), and has some issues(see Team Materials below).
Character Voice - defines various spoken lines
1p Skeleton Mesh
Skeleton Mesh 1p - set this to our 1st person mesh(arms)
Relative Scale 1p - seems to have no effect
Relative Rotation 1p - seems to have no effect
Relative Scale 1p - seems to have no effect
Relative Rotation 1p - seems to have no effect
-Once the properties have been set up make sure to save the UTCharacterContent, or else it might not load.
(may need to close and restart the editor to get it to load)
-For the next step, press 'Play' to start a session.
Press ` to open the console
Type 'behindview 1' for third person view
Type 'setchar TESTCHAR' (or the custom character name)
Type 'behindview 0' to switch back to first person view
Type 'behindview 1' for third person view
Type 'setchar TESTCHAR' (or the custom character name)
Type 'behindview 0' to switch back to first person view
-At this point the character should be working in both first and third person. Press ESC to return to the editor.
-To package the character, go to:
Share -> Share A Character
and select the UTCharacterContent that was created.
Notes - Adding bot -Bots are defined by UTBotCharacter
-Examples can be found in '/Game/RestrictedAssets/Character/Bots/'
-Examples can be found in '/Game/RestrictedAssets/Character/Bots/'
-Avoid using UTBotCharacter in '/Game/RestrictedAssets/Character/Bots/Proto/' as reference;
these have non-standard configuration (for example they might move faster than the default UT Character)
these have non-standard configuration (for example they might move faster than the default UT Character)
-Name of the bot ingame is the same as the name of the asset
-Make sure that 'Requires online item' and 'Proto Bot' are unchecked
-Packaging a bot with UTCharacterContent:
-This method probably unintended/unsupported, but it seems to work.
-Open a UTCharacterContent and click on 'Open Full Blueprint Editor', if it is not already in the Blueprint window.
-Create blueprint variable in UTCharacterContent - type: Object Reference, compile,
and set default value to the custom UTBotCharacter.
-To check if the UTBotCharacter is properly packaged, run in Windows command line:
UnrealTournamentEditor\Engine\Binaries\Win64\UnrealPak.exe [pakname].pak -test
-Open a UTCharacterContent and click on 'Open Full Blueprint Editor', if it is not already in the Blueprint window.
-Create blueprint variable in UTCharacterContent - type: Object Reference, compile,
and set default value to the custom UTBotCharacter.
-To check if the UTBotCharacter is properly packaged, run in Windows command line:
UnrealTournamentEditor\Engine\Binaries\Win64\UnrealPak.exe [pakname].pak -test
-Bot testing console commands, only seems to work in the client (not editor):
KillBots - removes all bots from current match
ForceAddNamedBot [botname] [team]
ForceAddNamedBot [botname] [team]
-There is a bug with this command; it does not increment the number of players
which makes the bot leave the match so we instead use:
ForceAddNamedBot botname 0 | SetBotCount 1
which makes the bot leave the match so we instead use:
ForceAddNamedBot botname 0 | SetBotCount 1
Notes - Setup 1st person character mesh:
--The 1st person skeleton, base_1p_Skeleton is the same as the base_3p_Skeleton except
that there is an additional bone fp_camera. fp_camera has root as parent and is located roughly
on the nose and behind the ears. Not sure if it is used for anything.
--As a result, we can get the 1st person mesh from the 3rd person mesh by just deleting everything but the arms.
--The first person meshes are also slightly smaller than third person meshes, so some scaling is needed.
that there is an additional bone fp_camera. fp_camera has root as parent and is located roughly
on the nose and behind the ears. Not sure if it is used for anything.
--As a result, we can get the 1st person mesh from the 3rd person mesh by just deleting everything but the arms.
--The first person meshes are also slightly smaller than third person meshes, so some scaling is needed.
To convert 1p to 3p scale by ~1.15
To convert 3p to 1p scale by ~0.87
To convert 3p to 1p scale by ~0.87
--The transforms of the skeleton bones are important; moving the head or tail of a bone will
cause animations to become misaligned.
--Note that 1p meshes must use materials with Panini projection in order to appear correct;
otherwise the hands will appear to be moved forward, out of alignment with the weapon handles
(see materials setup below).
Example of 1p mesh without Panini projection enabled:

Comparison of default UT4 meshes:

cause animations to become misaligned.
--Note that 1p meshes must use materials with Panini projection in order to appear correct;
otherwise the hands will appear to be moved forward, out of alignment with the weapon handles
(see materials setup below).
Example of 1p mesh without Panini projection enabled:
Comparison of default UT4 meshes:
Notes - Materials setup:
Materials should use these MaterialFunctions:
MF_GameplayCharacterFX - for various gameplay effects such as spawning or hit highlight
MF_1stPersonVertexShader - for the Panini Projection option
MF_1stPersonVertexShader - for the Panini Projection option
To setup materials for teams:
-Create a Static Bool Parameter
-Create a Static Bool Parameter
Parameter Name - "Use Team Colors"
Group - None
--Not sure if this is actually used yet(build 3525360), also the spacing in the name might be important
Group - None
--Not sure if this is actually used yet(build 3525360), also the spacing in the name might be important
-Create a ScalarParameter
Parameter Name - "TeamSelect"
Group - TeamColors
--TeamSelect is 0 for red, 1 for blue, and 255 for FFA with third person meshes
--Potential bug(build 3525360): TeamSelect is set to 0 for blue, 1 for red for first person meshes
--Since this value is set by the game, the 'default value' in the material editor is ignored
Group - TeamColors
--TeamSelect is 0 for red, 1 for blue, and 255 for FFA with third person meshes
--Potential bug(build 3525360): TeamSelect is set to 0 for blue, 1 for red for first person meshes
--Since this value is set by the game, the 'default value' in the material editor is ignored
Example of a basic material setup for UT4 with teams:
Panini projection setup:
Assets of note:
Skeleton'/Game/RestrictedAssets/Character/Base/Mesh/base_1p_Skeleton.base_1p_Skeleton'
Skeleton'/Game/RestrictedAssets/Character/Base/Mesh/base_3p_Skeleton.base_3p_Skeleton'
AnimBlueprint'/Game/RestrictedAssets/Character/Base/Blueprints/base_1p_AnimBP.Base_1p_AnimBP'
AnimBlueprint'/Game/RestrictedAssets/Character/Base/Blueprints/Base_3p_AnimBP.Base_3p_AnimBP'
PhysicsAsset'/Game/RestrictedAssets/Character/Base/Mesh/base_3p_PhysicsAsset.base_3p_PhysicsAsset'
SkeletalMesh'/Game/RestrictedAssets/Character/Base/Mesh/base_1p.base_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Base/Mesh/base_3p.base_3p'
SkeletalMesh'/Game/RestrictedAssets/Character/Skaarji/Meshes/skaarj_1p.skaarj_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Skaarji/Meshes/skaarj_3p.skaarj_3p'
SkeletalMesh'/Game/RestrictedAssets/Character/Robot/Mesh/robot_1p.robot_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Robot/Mesh/robot_3p.robot_3p'
SkeletalMesh'/Game/RestrictedAssets/Character/Necris_Female/Meshes/necris_female_1p.necris_female_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Necris_Female/Meshes/necris_female_3p.necris_female_3p'
SkeletalMesh'/Game/RestrictedAssets/Character/Necris_Male/Mesh/necris_male_1p.necris_male_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Necris_Male/Mesh/necris_male_3p.necris_male_3p'
-Use one of the meshes as reference to create a custom character; they can be exported as FBX and imported into Blender, Maya, etc.
-Avoid using meshes with ut4_base_Skeleton; it is mostly the same as base_3p_Skeleton but is missing some bones,
which could cause problems with animations. Additionally, the scaling might be off.
1st/3rd person material example:
Skeleton'/Game/RestrictedAssets/Character/Base/Mesh/base_3p_Skeleton.base_3p_Skeleton'
AnimBlueprint'/Game/RestrictedAssets/Character/Base/Blueprints/base_1p_AnimBP.Base_1p_AnimBP'
AnimBlueprint'/Game/RestrictedAssets/Character/Base/Blueprints/Base_3p_AnimBP.Base_3p_AnimBP'
PhysicsAsset'/Game/RestrictedAssets/Character/Base/Mesh/base_3p_PhysicsAsset.base_3p_PhysicsAsset'
SkeletalMesh'/Game/RestrictedAssets/Character/Base/Mesh/base_1p.base_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Base/Mesh/base_3p.base_3p'
SkeletalMesh'/Game/RestrictedAssets/Character/Skaarji/Meshes/skaarj_1p.skaarj_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Skaarji/Meshes/skaarj_3p.skaarj_3p'
SkeletalMesh'/Game/RestrictedAssets/Character/Robot/Mesh/robot_1p.robot_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Robot/Mesh/robot_3p.robot_3p'
SkeletalMesh'/Game/RestrictedAssets/Character/Necris_Female/Meshes/necris_female_1p.necris_female_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Necris_Female/Meshes/necris_female_3p.necris_female_3p'
SkeletalMesh'/Game/RestrictedAssets/Character/Necris_Male/Mesh/necris_male_1p.necris_male_1p'
SkeletalMesh'/Game/RestrictedAssets/Character/Necris_Male/Mesh/necris_male_3p.necris_male_3p'
-Use one of the meshes as reference to create a custom character; they can be exported as FBX and imported into Blender, Maya, etc.
-Avoid using meshes with ut4_base_Skeleton; it is mostly the same as base_3p_Skeleton but is missing some bones,
which could cause problems with animations. Additionally, the scaling might be off.
1st/3rd person material example:
Material'/Game/RestrictedAssets/Character/Malcom_New/Materials/M_Malcom_Body.M_Malcom_Body'
1st person material example:
MaterialInstanceConstant'/Game/RestrictedAssets/Character/Malcom_New/Materials/M_Malcom_Body_Panini.M_Malcom_Body_Panini'
Team material example:
MaterialInstanceConstant'/Game/RestrictedAssets/Character/Malcom_New/Materials/MI_TC01_Body01_Team.MI_TC01_Body01_Team'
Comment