m (adding colour image list) |
m (image formatting and updates) |
||
| Line 1: | Line 1: | ||
== '''Overview:''' == | == '''Overview:''' == | ||
The tool is under development, as is the documentation. Here is a video update on the progress: | |||
<youtube>kvbzYAiFZLA</youtube> | |||
Please check back soon for more information. | |||
[[File:CharacterCreator Main.png|right|frameless|500x500px]] | |||
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. | 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. | ||
| Line 38: | Line 39: | ||
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. | 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. | ||
[[File:Blender settings 01.png|frameless]] | [[File:Blender settings 01.png|frameless|500x500px]] | ||
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. | 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. | ||
[[File:Blender settings 02.png|frameless]] | [[File:Blender settings 02.png|frameless|500x500px]] | ||
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. | 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. | ||
| Line 148: | Line 149: | ||
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. | 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. | ||
Also, in order to see any of the colour changes on the meshes, you will need to turn viewport rendering on, which is the fourth of four spheres in the top right of the viewport, just above the script. | |||
[[File:Colour render.png|frameless|500x500px]] | |||
== '''Panel 3: Civilian / Mercenary Options:''' == | == '''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. | 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. | ||
[[File: | |||
Any options where 'Col1, Col2, etc' are provided, a drop down menu will appear with a list of 20 colours. | [[?title=File:Colour_menu.png|alt=Drop down menu of colours.|frameless|500x500px]] | ||
Any options where 'Col1, Col2, etc' are provided, a drop down menu will appear with a list of 20 colours. | |||
== '''Panel 4: Imperial Options:''' == | == '''Panel 4: Imperial Options:''' == | ||
Revision as of 19:29, 8 April 2026
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.
Also, in order to see any of the colour changes on the meshes, you will need to turn viewport rendering on, which is the fourth of four spheres in the top right of the viewport, just above the script.
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.
alt=Drop down menu of colours.|frameless|500x500px
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.