Jump to content


Object Editor tutorial

3 replies to this topic

#1 Moreartillery

  • Members
  • 179 posts
  • Projects:Cinematic Battles

Posted 16 December 2019 - 02:25 PM

AKA the tutorial I wish I had when I was starting out. This guide assumes a passing familiarity with corsix mod studio.


Getting started



Install to C:\Program Files (x86)\THQ\Dawn of War - Dark Crusade\ModTools

Modtools archive



The OE uses .rsh textures in C:\Program Files (x86)\THQ\Dawn of War - Dark Crusade\ModTools\DataGeneric\My_Mod\art\ebps\races\race_name\texture_share  Textures used by the OE are automatically generated when you export from 3ds max.

Do not use textures from data generic in your mod as they have been reported to cause issues. Instead use IBBoards texture tool to convert textures in datasrc. Texturing is outside the scope of this tutorial.


Use DawnOfWarUnSGA to extract the games fx and sound folders in Dawn of War - Soulstorm\DXP2 then copy them to the locations below.

C:\Program Files (x86)\THQ\Dawn of War - Dark Crusade\My_Mod\Data\art\FX

C:\Program Files (x86)\THQ\Dawn of War - Dark Crusade\My_Mod\Data\Sound


File types, importing and exporting

The OE opens .ebp and .sgm files that must be in C:\Program Files (x86)\THQ\Dawn of War - Dark Crusade\ModTools\DataGeneric\My_Mod\art\ebps\races\race_name\troops Henceforth I’ll refer to this as Datageneric for brevity. Datageneric must have an .ebp and .sgm with the same name. The .sgm contains the model and animation data exported from 3dsmax while the .ebp has all the data OE adds such as the action tree and file paths for sounds and fx.


OE exports to C:\Program Files (x86)\THQ\Dawn of War - Dark Crusade\My_Mod\Data\art\ebps\races\race_name and automatically converts the .ebp to a .whe file while the .sgm becomes a .whm file. OE will only make a new .whm if the .sgm has changed. Note that My_Mod isn’t actually your mod folder but a special folder used only for the OE to export to. Name your mod folder something else.


Some units will crash OE when it tries to open the file, even if I haven't made any changes to the unit. Always open a model in OE before doing any work in 3ds max, there is nothing worse then spending hours on animation just to find out that OE can't open the exported file.


Action tree and hierarchy

To get started open a .ebp, then on the left side panel expand Anims / Motions / Actions then expand Action Tree then default. Default is where most of a models animations are organized. Animations are grouped into motions and motions are grouped into actions. Actions can also contain a list of actions. Highlight default in the action tree then expand Action Properties on the right side of the OE. Also expand the idle action.


Screenshot1 https://www.dropbox....kdpa/1.PNG?dl=0


As you can see the idle action has a motion group called idle_all and three idle motions, which each have one idle animation. The green film strip indicates a motion, the blue strip is a motion group and the purple film strip is an action. Animations have some 1s and 0s next to them.


When you select an action or motion in the action tree the OE will play all animations grouped under it. For example if I select default it will show all idle, moving, shooting and aiming animations depending on what variables are enabled in the bottom panel. If I select the idle action it will only play idle animations and so on.


Certain action names are automatically added the the top level of the action tree. Here is an incomplete list:





















The variables panel listed along the bottom lets you simulate various ingame conditions. For example if I have the default action group selected it will play an idle animation, but if I increase the velocity variable above 0 the unit will start to walk, assuming the unit has been set up correctly. This is your primary method of testing if motions and actions work as intended. Each variable has a drop down list to let you choose other variables, far more then the 8 visible here.


Some variables like velocity are always available while others require a clause to be set up(more on that below)


Conditions and Clauses

Clauses are simple tests to see if something is true or false. Clauses are grouped into conditions as shown below.


Screenshot2 https://www.dropbox....vdxz/2.PNG?dl=0

As you can see the idle action will only play if all clauses in the idle condition are true. Clauses come in three types, boolean is a simple true or false test, float compares two numbers. In the move clause, if velocity is greater then 0 the clause is true.


Below you can see how conditions and variables are connected.

Screenshot3 https://www.dropbox....ciu3/3.PNG?dl=0


String clauses are particularly important because they tell the game when to use each weapon animation. The hardpoint name and visibility of weapon upgrades are both set by string clauses as shown in screenshot4.


Screenshot4 https://www.dropbox....hxre/4.PNG?dl=0


Setting up hardpoints


Every weapon upgrade has a vis file, and each vis file has a unique condition and clause that determines what the epb calls the vis file and aim animations. In corsix in the units .ebp file is the combat_ext that contains a list of hardpoints. Select hardpoint_01>weapon_table>weapon_01 and you will see name_for this weapon_choice which makes the weapon visible. Hardpoint_01 contains a list of motions that tells the game what animations to use for that hard point. The names of these motions are also set in the OE with string clauses, as shown in screenshot 5.


Screenshot5 https://www.dropbox....pdlm/5.PNG?dl=0


Every ranged weapon has muzzle and origin coordinates that define where the guns default position is, in its ebp under combat_ext. These determine where projectiles will spawn for artillery and where the guns will point when they have nothing to do. To find these coordinates look at the aim animation in OE when the gun is pointing straight ahead then in the top left click info>display markers, it will show the x, y and z values in that order.


Commander wargear

Wargear has a vis file and clause to put it on a hardpoint just like a weapon upgrade. However the wargear does no damage and may or may not have an animation. The research to enable the wargear upgrades the weapon hardpoint its associated with, and that enables its vis file. The wargear research contains the modifiers the wargear applies. If the wargear enables an ability, the wargear research will be listed as a requirement in the ability file.



Modifiers change the speed at which motions play. Having a modifier will make the motion automatically speed up or slow down to match the units movement speed or fire rate of the weapon. Its highly recommended to have a modifier on every walking and shooting motion to ensure that the units feet are not gliding across the ground and that the shooting and damage application remain in sync. Weapons that fire a continuous stream of bullets don’t need a modifier. Modifiers are very simple to set up, just do it.


Screenshot6 https://www.dropbox....evz0/6.PNG?dl=0


In the screenshot above, ref value is the speed the unit needs to play the animation at 100% speed. If I changed the hazard suits speed to 11 in corsix, the walk anim would play at half speed., because 11 is half of 22. To find the ref value observe the unit walk ingame, keep changing the units speed in corsix until its feet no longer glide across the ground, thats what your ref value should be.


To set up a weapon speed modifier choose the same variable the weapon uses in its firing clause, ie Weapon_Range_Firing_Main or similar, choose absolute time, and default 0. Give the modifier the name of the weapon. Now select the weapons firing motion, under Motion Properties>Timing add the modifier and check the 'Ignore Transitions' box.


Events and fx

Every motion has a list of events. An event can be a visual fx or a sound. Next to each event is the time in the animation that the event is played. In the bottom panel you can change frames to seconds and scrub through the animation to find the exact time you want the event to play, then add that time to the event in the events section of the motion properties.


Screenshot7 https://www.dropbox....cfpk/7.PNG?dl=0


In the top left I select Info>Display Markers and open event properties on the right. I also selected the burst cannon vis motion to make the gun visible in the window. I’ve now selected the marker parameter and I can change it with the drop down list above. The green line indicates the direction the marker is pointing and therefore the direction the tracer will go. Markers are set in the ref animation and they must be attached to a bone. Markers in other animations aren’t usable.

Screenshot8 https://www.dropbox....uoba/8.PNG?dl=0


This is the end of the getting started / ui tutorial.


Advanced uses / Extra features


Changing unit scale

In your_mod_name\Data\art\ebps\races\race_name\troops make a .lua that shares the .whe name, and add this code to it.

simvis_attributes =
melee_size = 1,
melee_block_ratio = 50,
melee_unsynced_damage_ratio = 5,
selection_volume = 1,
selection_ground = 1,

vis_scale_min = 2.40,
vis_scale_max = 2.40,

-- Shadow Types:
-- 0 = None
-- 1 = blob (rotated by light dir)
-- 2 = blob (rotated by object dir)
-- 3 = shadow map
-- 4 = stencil shadow volume
shadow_type = 3,
shadow_scale = 0.08,

occludee = 1,

simvis_attributes_strings =
shadow_texture = "Shadows/shadow_dir_blob-dot.tga"

vis scale min max is a multiplier of the model size. If min and max are different each instance of the model will be a random size between the two values. Good for making troopers of different heights!


However this won’t change the size of the fx on the model, for that you must go into event properties in OE and add fx_length and fx_scale params to each event that needs a size adjustment. fx_scale really means width.


On the left side of the OE is a menu called 'Selected UI' that changes the size and shape of the green border around the unit. It also lets you change how close the cursor has to be to select the unit ingame, represented by the red box around the unit.


Finally you should adjust the collision radius in the units .ebp -> entity_blueprint_ext. Adjust the scale_x and y values so it doesn't clip or leave too much space around it.


Jump actions and teleporting

Each jump action must have vis_master and vis motions for weapon upgrades.

Jumping has four actions that occur in this order:

jump_setup the unit crouches and prepares to jump

Jump_goup the units leaves the ground and transitions into its flying pose

Jump_flying the units in its flying pose, optionally may have shooting and aim anims to allow the unit to fire from the air.

Jump_godown the unit descends until its feet touch the ground

Jump_breakdown the unit flexes its legs to absorb the impact and transitions back to the idle pose as the animation ends


The length of these animations must be entered into the .sbps for them to transition smoothly. Note that not all units need a unique animation for each of these actions. If you're feeling lazy a teleporting unit can reuse its vis_master animation in the jump_setup and jump_breakdown actions. Likewise an aircraft could use its vis_master animation with some fx for vertical thrust or skip the setup/breakdown with a one frame vis_master anim.


Teleporting units only need the setup and breakdown actions.


Its also possible to add a unique death animation for dieing while jumping. In the die action group add a new action called die_jumping with the compare type 'if' and condition 'is_jumping' and give the ground death action the compare type 'else'.


Aftermath_Ext extension and how to add it (victory poses), by HorusHeretic

Aftermath is an extension in the AE (you'll have to copy and past the code from somewhere for corsix mod studio) that tells the game engine to play a victory animation after utterly destroying a squad, vehicle or building in melee combat. that's not all what's required though. the model will need to have it coded in to its model code also. that will be simple enough if you've dabbled around with the OE before.


Here's the run down.
Create a new motion. This can be called anything you want.
Create a new action. This HAS to be called "Melee_Aftermath". Now just link up your created motion (or shared motion if you have multiple and want it to be randomised) and add any visuals and events to complete it.
Open up the AE and find the EBP code for your unit. Add the Aftermath_ext extension to the code, set the chance of it happening and how long the animation lasts for.

That simple.

Some units have it coded into the model already, like the normal chaos space marines for example.
you can do a quick experiment and see what happens when they win a melee combat.



Wrapping up

When your done making changes remember to copy the .whe and .whm files from my_mod to your mod folder to see them ingame.


Troubleshooting crashes

The OE has a bad tendency to crash without giving any error messages, possible causes include:

3ds max didn't export the file correctly. Always open a model in OE before doing any work in 3ds max, there is nothing worse then spending hours on animation just to find out that OE can't open the exported file.

Bad events/fx, can cause a crash when playing the motion or action that contains the fx.




Q: I’ve made a new unit but I don’t know where to start in OE!

A: In 3ds max xref a unit that has a similar action set. ie if you made a new tank xref another tank so you don’t have to start from scratch. Rename the .epb to match your new unit.


Q: "Unable to burn ebp" error message.

A: Your missing a file called _default.burn that should be in ModTools\DataGeneric/My_Mod          You can get this file from the modtools archive linked below



Edit: updated installation instructions and added section about weapons speed modifiers.

Edit2: added info about setting up hardpoints and muzzle coordinates.

4/21/2020 added section about aftermath_ext

6/02/2020 added troubleshooting crashes section

Edited by Moreartillery, 17 June 2020 - 06:15 AM.

Developer of the Cinematic Battles mod.


#2 thudo


    Wacko AI Guy!

  • Division Leaders
  • 12,130 posts
  • Location:Lemonville North, Canada
  • Projects:DoW AI Scripting Project
  • Division:DoW
  • Job:Division Leader

Posted 16 December 2019 - 02:53 PM

Oh this could be quite good..


Maybe someone like Kekoulis can vet the above also to add/remove/sign-off on that as we need something like this for new OE devs.

Advanced Skirmish AI Team Lead for the coolest Warhammer40k PC RTS out there:

Dawn of War Advanced AI Headquarters

Latest DoW Advanced AI Download!

#3 Moreartillery

  • Members
  • 179 posts
  • Projects:Cinematic Battles

Posted 22 January 2020 - 05:40 AM

Bumped for significant additions to original post.

Developer of the Cinematic Battles mod.


#4 Moreartillery

  • Members
  • 179 posts
  • Projects:Cinematic Battles

Posted 14 September 2020 - 04:27 AM

I've been following your guide and i cant seem to open any ebp files that ive god by converting whe to an ebp. The object editor keeps crashing

Do you have the .sgm file with the same same in the same folder? e.g. wraithlord.ebp and wraithlord.sgm should be in the same folder.

Also what is the file name your trying to open?


btw if you post in the thread you'll get a faster response, I don't log in every week.

Edited by Moreartillery, 14 September 2020 - 04:37 AM.

Developer of the Cinematic Battles mod.


Reply to this topic


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users