WAX File Generator

From DF21 Wiki
Revision as of 19:00, 8 April 2026 by BenDansie (talk | contribs) (adding colour image list)

Overview:

The tool is under development, as is the documentation. Here is a video update on the progress:

Please check back soon for more information.


Enemies and other sprites in Dark Forces are in the WAX file format. Effectively they are a series of bitmap images, adhering to a set palette, with position data and ordered in to sequences - ie Walking Side Left, Ranged Attack Front, and so on. Editing these or creating a new one from scratch has generally been a very time consuming process. Especially with early tools available to the mod community. The goal of the Wax File Generator is to streamline that process with a purpose built collection of rigged 3D models, easy customisation options and templates for the various enemy types in the game, with added idle loop options for animated background characters.

While it is a Blender based tool, it has been created to be simple for users with no prior 3D knowledge required. All the core functionality is in a custom UI panel on the right hand side of the main 3D view-port. Switching enemy animations, randomising full outfits, selecting a specific alien species or Imperial armour type - it's all there.

Before we begin, there are a few things to download.

Download Requirements:

Before we get started, there are some tools to download:

1) Blender: https://www.blender.org/download/ - current version (4.4 at time of writing, multi platform)

           or if need be https://download.blender.org/release/ for any and all previous releases.

2) WAX/FME Convertor (by Jereth Kok): https://df-21.net/downloads/utilities/waxconverter/waxconverter.zip (Windows specific)

          Note: Requires .NET 6.0 - Version 3.2 - June 2024 Release

3) The template files, available here: (Insert link here when files complete)


The template files consist of one main Blender file and a 'Render' subfolder. Inside the 'Render' are a series of specifically named _***_Template folders. Please do not rename these as the folder naming structure is referenced by both Blender and Wax Convertor for this process to be as smooth as possible.

The general process is as follows:

  • Load the Blender file and use the script to create a character combination you want for your level
  • Render out the frames - the script should select which render sub folder for you automatically
  • Run the Photoshop / Gimp script to trim the images before loading Wax Convertor
  • Open the render sub folder - for example \Render\_TROOP_LH_Template - and open _TROOP_LH_Template.wproj in Wax Convertor
  • (Optional) Make any minor tweaks required to position / colour palette file selection, defaults should generally be fine
  • Click 'Create WAX!'

Initial Blender Setup:

First things first, install Blender on your machine. This can be as simple as downloading the .zip option and extracting to a folder on your desktop if you don't intend to use Blender often. Once that is done, there are two settings to check in the preferences to make the process smoother.

Go to 'Edit - Preferences' from the top menu bar. Select 'System' on the left, then choose a Cycles Render Device up the top if available. Cycles will run fine on a CPU only, but it's significantly faster if one of these options are available.

Select 'Save & Load' on the left, then check 'Auto Run Python Scripts'. If not selected, you will need to run the rig ui script and character ui script each time you load the Blender file.

Blender will automatically save these preferences for future use, so you can now load the Blender file.

Dark Forces "WAX File Generator" UI:

The core of what you will be doing to create a character for use in the game is in the Blender UI, with the custom scripted panel. If you don't see the custom panel on the right of the screen with the obvious Dark Forces Character Creator title art when loading the file, please see the above section about enabling auto run of Python Scripts, or manually set the script running from Blender's Text Editor.

The UI is split in to six main sections. Each can be collapsed or expanded with the arrow on the top left of the sub panel, next to the title. Each UI option has a tool tip written if you hover over with the mouse, but hopefully the buttons are pretty straight forward in most cases.

Panel 1: Character Animation Options:

First and foremost is the 'Select Animation Set' drop down menu. This changes the animation on the character (and importantly the frame range of the render) to give you an equivalent Dark Forces enemy type. Most options have a left handed and right handed (LH / RH) option, just for visual variety. Functionally they are the same. All animation sets now work with 8x view angles for melee attacks, ranged attacks, pain / hit reactions and idle animations. This is to support the newer 'teams' feature, where enemies can fight other enemies within a set of rules defined by the mod creator.

Current Animation Set / Enemy Type Options:

Enemy Notes
TROOP Standard Stormtrooper replacement. There is an added melee rifle butt attack as an option if using custom logic.
REEYEES Gran (Ree-Yees) logic replacement. Includes both melee and Thermal Detonator attacks.
IDLE 1-4 Four options for Idle animations, for use with static NPC characters. This also includes hit reactions, acknowledging the player (ie, attack with no damage through custom logic) and death if the level author chooses. Otherwise use 'ANIM' in the level editor as in existing / older levels.
PROBE DROID Template for flying enemies. Best with a custom logic, but can be a replacement for vanilla Probe Droid. Also largely works for the Dark Trooper Phase 2, but may cause some hitbox / projectile alignment issues.
BOBA FETT Speaks for itself - animation to work with Boba Fett vanilla logic, but with more frames for an animated jetpack and a large rocket launcher that is somewhat more believable than a pistol with infinite rocket ammo.
GAMGUARD Replacement for Gamorrean Guards with an animated shock stick. There is an added ranged pistol attack as an option.
UNARMED WALK Through custom logics, you can create an NPC that casually walks around the area without really acknowledging the player. Logic example included in the files.
FUSION CUTTER Similar to 'TROOP', but with the Fusion Cutter visibly used as the weapon. This includes a melee attack with the weapon.
MORTAR Similar to 'TROOP', but with the Mortar visibly used as the weapon. This includes a melee attack with the weapon. There is a sprite replacement included for WSHELL.WAX to work both directions, as the vanilla Mortar was only ever fired from the player's view.
CONCUSSION (BOSSK) Replacement for the BOSSK logic, with an added option for a melee attack with the weapon. There is a sprite replacement included for CONCEXP.WAX as well as a concussion rifle projectile. There is also a custom projectiles.json to make use of the custom projectile.
PISTOL (OFFICER) Officer logic replacement. There is an added melee animation as an option.
REPEATER Similar to 'TROOP', but with the Repeater visibly used as the weapon. This includes a melee attack with the weapon. Mod makers may want to make use of the 'Burst Fire' options with the custom logics.

The next drop down menu for 'Select Shorter Animation Set' is for certain animations to be rendered with less frames. This is faster to render and more in line with Vanilla sprites, because secondary attacks (except REEYEES) and animated idle states are left off.

'Generate Random Alien' was the base of the whole script initially. It keeps the animation type and randomises all the visual elements of the character. This is generally spilt to head, torso, legs, armour and the respective colours for each. Given how many expanded colour palette options are now available, true 'random' can generate some pretty stark colour combinations, so some further tweaking is expected by the user. (Mostly found later in the 'Civilian Mercenary Options' panel). Random heads and random colours only should be self explanatory.

Humanoid Head options are for humans and aliens with human heads but for example - blue skin tone like the Chiss. This allows for shared hair and facial hair options between them. This will disable any other alien heads or headgear / helmets for other options when generating a whole head, but beard options on an Imperial officer can be changed without losing the hat. Random Imperial Enemy is included in this panel as a quick option, further Imperial options are located later in their own panel.

Current Species Head Options:

Twilek Duros Rodian Sullustan Twilek (Alt) Ithorian
Mon Calamari Gran (Ree-Yees) Quarren Bith Devaronian Arcona
Trandoshan Kubaz (Garindan) Pyke (Syndicate) Bothan Chagrian Gand (Zuckuss)
Wequay Togruta Aqualish (Ponda Baba) Yarkora Human Falleen (Xizor)
Mirialan Chiss (Thrawn)

Panel 2: Rendering Options:

By default - you don't need to touch any of these, but they are there if needed.

NOTE - Render Character Animation will lock up the UI until the render is done. Using the normal render animation option in the Blender UI won't and you can view a progress bar per frame. It's only an ease of use option so you don't need to know any of Blender's native UI. Either way works, just know that Blender isn't broken while it's rendering.

Render quality should be on 100 by default. More samples means less noise and higher render times. This can be set in the regular Blender UI, but I have included some easy presets. Rim light is on mid (50) by default and is purely an aesthetic choice to help certain characters stand out more against the background. Barrel Glow means a glowing point inside the weapon visible at all times, defaulted to off.

Panel 3: Civilian / Mercenary Options:

It's the bulkiest panel of options, but hopefully it's pretty easy to understand. For working with aliens and humans that are not Imperial or Rebel. Random Clothes keeps the same colour scheme and changes the body meshes. Clothing Colours does the reverse - keeps the body meshes and randomises the clothing colours. Because there are quite a variety of colours in the extended palette (included in the download) and it is a true random, many of the colour combinations don't work too well. Options to specifically dial in the colours have been added.

Drop down menu of colours.

Any options where 'Col1, Col2, etc' are provided, a drop down menu will appear with a list of 20 colours.

Panel 4: Imperial Options:

Many options.

Current Imperial Personnel Options:

ATAT Pilot Imperial Army Trooper Imperial Navy Commando Imperial Officer Juggernaut Transport Driver
Patrol Trooper Sandtrooper Scout Trooper Shore Trooper Snowtrooper
Stormtrooper (Standard) Swap Trooper Tie Pilot

Female variations are planned, but not yet included.

Panel 5: Rebel Options:

Many options.

Panel 6: Droid Options:

Many options.

IMPORTANT - Trimming frames in Photoshop / Gimp:

If you skip this step, your character will be broken in .

Wax Convertor Template:

Many options.


Wax Convertor Template:

Wax Convertor is the program that will take the sequence of png images rendered out of Blender, give them placement coordinates and assign images to sequences, and sequences inside actions. This should already be set up and ready to go for you! However, some background information on how it all works in case you need to make minor adjustments.

TROOP Replacement Template - Frame Ranges:

Sequence Frames Action Sequence Frames Action
0 0-7 Walking Front 34 132-135 Dying v2
1 8-15 Walking Front Angle Left 35 136 Idle (single frame) Front
2 16-23 Walking Side Left 36 137 Idle (single frame) Front Angle Left
3 24-31 Walking Rear Angle Left 37 138 Idle (single frame) Side Left
4 32-39 Walking Rear 38 139 Idle (single frame) Rear Angle Left
5 40-47 Walking Rear Angle Right 39 140 Idle (single frame) Rear
6 48-55 Walking Side Right 40 141 Idle (single frame) Rear Angle Right
7 56-63 Walking Front Angle Right 41 142 Idle (single frame) Side Right
8 64-66 Ranged Attack Front 42 143 Idle (single frame) Front Angle Right
9 67-69 Ranged Attack Recoil Front 43 144-146 Melee Attack Front
10 70-71 Ranged Attack Front Angle Left 44 147-149 Melee Attack Recoil Front
11 72-75 Ranged Attack Recoil Front Angle Left 45 150-152 Melee Attack Front Angle Left
12 76-78 Ranged Attack Side Left 46 153-155 Melee Attack Recoil Front Angle Left
13 79-81 Ranged Attack Recoil Side Left 47 156-158 Melee Attack Side Left
14 82-84 Ranged Attack Rear Angle Left 48 159-161 Melee Attack Recoil Side Left
15 85-87 Ranged Attack Recoil Rear Angle Left 49 162-164 Melee Attack Rear Angle Left
16 88-90 Ranged Attack Rear 50 165-167 Melee Attack Recoil Rear Angle Left
17 91-93 Ranged Attack Recoil Rear 51 168-170 Melee Attack Rear
18 94-96 Ranged Attack Rear Angle Right 52 171-173 Melee Attack Recoil Rear
19 97-99 Ranged Attack Recoil Rear Angle Right 53 174-176 Melee Attack Rear Angle Right
20 100-102 Ranged Attack Side Right 54 177-179 Melee Attack Recoil Rear Angle Right
21 103-105 Ranged Attack Recoil Side Right 55 180-182 Melee Attack Side Right
22 106-108 Ranged Attack Front Angle Right 56 183-185 Melee Attack Recoil Side Right
23 109-111 Ranged Attack Recoil Front Angle Right 57 186-188 Melee Attack Front Angle Right
24 112-113 Pain Front 58 189-191 Melee Attack Recoil Front Angle Right
25 114-115 Pain Front Angle Left 59 192-203 Idle (animated) Front
26 116-117 Pain Side Left 60 204-215 Idle (animated) Front Angle Left
27 118-119 Pain Rear Angle Left 61 216-227 Idle (animated) Side Left
28 120-121 Pain Rear 62 228-239 Idle (animated) Rear Angle Left
29 122-123 Pain Rear Angle Right 63 240-251 Idle (animated) Rear
30 124-125 Pain Side Right 64 252-263 Idle (animated) Rear Angle Right
31 126-127 Pain Front Angle Right 65 264-275 Idle (animated) Side Right
32 128-130 Dying v1 66 276-287 Idle (animated) Front Angle Right
33 131 Dead (Corpse frame)

(Note: If making animations to be compatible with the original game, avoid re-using individual frames.)

Using in game with custom logics:

Many options.