ACE COMBAT 5: CUSTOM TEXTURE CONVERSION AND INJECTION
This tutorial will guide you on how to prepare your custom aircraft livery images and convert them to the texture format that Ace Combat 5 uses so they can be later injected into the game.
///REQUIRED FILES AND PROGRAMS:
- Have Python version 3.8.5 or newest installed on your computer.
- Any image editor of your choice (preferably Photoshop).
- A special/modified ISO file of Ace Combat 5: The Unsung War. You can obtaining it by following this tutorial.
- The following tools (included in the AC5 modding tools and files pack available here):
- AC5 TM2 to GIM converter
- AC5 GFP file generator
- AC5 GFP file injector
- OPTPiX iMageStudio 3 installed in your computer.
- Due to OPTPiX iMageStudio 3 being proprietary software that is still being distributed to this day and to comply with ModDB's ToS a link to it won't be shared in this tutorial.
- Your custom textures image files to process. You must have four of them and in the following image resolutions: 2 textures of 512x512 pixels each one, one texture of 256x256 pixels and one texture of 128x128 pixels.
- The reflection maps of your livery's target aircraft. You can find them in the AC5 original liveries > Multi folder with the "REFLECTION_MAP" filename.
- OPTPiX iMageStudio 3 requires to be installed before using it.
- OPTPiX iMageStudio 3 is a very old tool (released in 2001) so I don't guaranteed it will work on newest Windows OSes. If the program isn't compatible with your OS, well, tough luck.
- On Windows 10 OPTPiX iMageStudio 3 might require to be run with administrative rights.
- It goes without saying, always make a backup of your files.
For this tutorial I will be using BelkanLoyalist's Scarface livery mod for the Su-35, which you can download here. I'll be also using Adobe Photoshop CS6 as my image editor of choice. If you are using other image editor than Photoshop then it should be fine, but keep in mind that the names of some options and special effects used here will differ from yours.
///ACE COMBAT 5'S AIRCRAFT TEXTURES:
Before we start you will need to know how AC5 handles aircraft textures for all liveries available in the game. Every livery has a total of five textures files each one that are used depending of the situation.
1) 512x512 - gameplay/flight:
This texture is used exclusively by the player-controlled aircraft during flight. It's the best looking texture quality-wise since the aircraft model itself is also high-poly.
2) 512x512 - hangar:
This texture is used by the aircraft in the hangar during selection. It's almost the same as the 512x512 - gameplay/flight one but it's missing the aircraft number.
The reason for the missing aircraft number is that due to size constraints this texture is shared/reused between all planes that are present in the hangar (player plane included too). If we swapped this texture with the other texture that has Blaze's "016" number on it then the number would also show up on your wingmen aircraft too.
3) 256x256 gameplay/flight:
This texture is used by your wingmen during flight. It's the same texture as the 512x512 - hangar texture but resized down to half and with some extra parts.
The wingman aircraft model is a "mid-poly" version of the model used by the player. The wingman's aircraft model texture/UV mapping was reorganized to make up for the reduced amount of polygons, hence these extra parts being visible in this texture.
This texture is also shared/reused between your wingmen, hence the lack of aircraft numbers and some other minor details.
4) 256x256 hangar:
This texture is the as same as the 256x256 gameplay/flight one.
During aircraft selection when highlighting a player/wingman's aircraft the game will always use the "high-poly" aircraft model for display.
In order to keep the framerate stable the game will also force the player/other wingmen aircraft that are not highlighted to switch to the "mid-poly" models until they are highlighted again, which is when the their aircraft model switch to the high-poly model again.
This texture is also shared/reused between you and your wingmen planes, hence the lack of aircraft numbers and other details.
5) 128x128 flight:
This texture is exclusively used by your wingmen during flight. It's the same texture as the 512x512 - hangar one, but resized down to 128x128 pixels.
When your wingmen are very far away from your position their aircraft model will switch to a low-poly one one in order to keep the framerate stable.
Just like the 256x256px texture, this one will also gain an extra part (a black rectangle with a white highlight on it) that will become the aircraft's canopy when this model is in use.
This texture is also shared/reused between your wingmen planes, hence the lack of aircraft numbers and other details.
So when you are creating liveries for Ace Combat 5, keep in mind that:
- Every livery available in the game uses a total of five textures file each one.- Ther texture resolutions range from 512x512 to 128x128 pixels.
- Some of these textures are shared between player and wingmen aircraft so they will lack some unique details such as aircraft numbers.
- Some of the models that use these textures have less polygons so their texture/UV mapping was remade to make up for the loss of details. So when you compare them to other textures you will see that they have some extra mappings on them. Make sure you copy these extra mappings to your textures!.
To make a livery for AC5 you will need four textures:
- One for the player's aircraft for gameplay/flight (512x512 px).
- One for the aircraft in the hangar (without any unique details/markings) (512x512 px).
- One for your wingmen aircraft during flight. This texture will also be used for the aircraft in the hangar when they switch to their "mid-poly" models (without any unique details/markings) (256x256 px).
- And one for your wingmen aircraft when they are way far from your current position, when they switch to their low-poly models (without any unique details/markings) (128x128 px).
While the Scarface livery that will be used in this guide contains the aircraft numbers in the hangar/wingman textures I reccomend you to remove them in yours.
1) 512x512 - gameplay/flight texture:
Open your custom livery then open one of the reflection maps found in the folder of aircraft that you want to create a texture from (in this tutorial I'll be taking the reflection map from the Su-35 Super Flanker subfolder, located in the Multi folder inside the AC5 original liveries main folder.
The reflection maps can be identified by their [aircraft name]_[color]_REFLECTION_MAP naming pattern. They are grayscale images and are almost the same so you can use any of them.
With the custom livery open in your image editor, rename its layer to BASE TEXTURE and create a new layer above it, rename it as SOLID COLOR then with the Paint Bucket Tool fill it with the color #010101. Set this layer's blending mode to LIGHTER COLOR (or the equivalent of your image editor).
Create a new layer above the one filled with the solid color and rename it REFLECTION MAP. Copy the reflection map image that you opened previously and paste it on this layer.
Clone the layer with the #010101 color value above then set its blending mode to LIGHTER COLOR. You should have now four layers: the base texture, its reflection map and two solid color layers sorted in the following order:
The SOLID COLOR's layers blending mode must be set to LIGHTER COLOR (or the equivalent of your image editor)
Merge the solid color layers with the ones that are below them:
Select the BASE TEXTURE layer and create a layer mask/vector mask/alpha channel out from it:
Select the REFLECTION MAP layer and copy it. Switch to the layer mask in the CHANNELS tab and paste it there.
Switch back to the LAYERS tab, right-click on the little clip between the BASE TEXTURE layer and its layer mask and select APPLY LAYER MASK. The final result will be a semi-transparent image.
Export/save it as a PNG file with the 512_gameplay filename. The project we opened in Photoshop is not longer needed so you can close it without saving it.
Latest versions of PCSX2 can now replace directly game textures with a PNG file equivalent (similar to what PPSSPP does). You can read the tutorial here.
If you're creating custom liveries to submit, you could stop here but there are users that play the game in real hardware or use an older version of PCSX2 and they have requested the custom liveries to be added as GFP if possible.
Please consider continuing the tutorial so you can get a GFP file to include with the PNG files when submitting your custom livery. Thanks!
Image conversion - from PNG to TM2:
Run OPTPiX iMageStudio 3 and open (or drag into it) the image we previously saved:
You'll see that the image will be shown as a "flat" image instead of transparent but don't worry, the transparency is still there.
Go to the menu bar and click on IMAGE. Select the COLOR REDUCTION (CTRL+R) option:
A new window will pop up:
Configure the settings in yours to match the the ones in picture shown above. Now on the same window click on the ALPHA tab:
Configure your settings so it matches with the ones in picture shown above too. Click on the COLOR REDUCTION BUTTON then FINISH. A new window will be opened containing our livery with the reduced color palette in front of the original PNG one which you can close, by the way.
Save this new image by clicking the SAVE AS button on the tool bar (the icon has a image of a diskette on it) or just hit CTRL + SHIFT + S. Save this file as "512_gameplay.tm2". In the TYPE field select TIM2 FILE (*.TIM2) and click OK.
One last window will pop up, the FILE SAVING OPTION window. You'll be asked to set the attributes of the TM2 we're saving so configure yours to match the settings to the ones shown in the picture below:
Click ACCEPT and the TM2 file will be saved to the specified location.
2) 512x512 - hangar texture:
Repeat the process detailed in the 512x512 - gameplay/flight section section using your 512x512 image file and its reflection map, but this time export the file using the "512_hangar" filename (512_hangar.tm2).
3) 256x256 hangar/flight texture:
Repeat the process detailed in the 512x512 - gameplay/flight section using your 256x256 image file and its reflection map, but this time export the file using the "256" filename (256.tm2).
4) 128x128 flight texture
Repeat the process detailed in the 512x512 - gameplay/flight section using your 128x128 image file and its reflection map, but once you get to the COLOR reduction part click on the ALPHA tab and click on the Reduce color including Alpha value to disable it:
Click on the COLOR REDUCTION BUTTON then FINISH. Now export the image to the TM2 format using the "128" filename (128.tm2)
Note: after exporting the 128.tm2 file make sure you enable the " Reduce color including Alpha value" option again since the 512x512/256x256 textures require it.
If you have followed the tutorial correctly until now, you should have four PNG files and four TM2 files with you:
We do not need the PNG files for the next step but feel free to keep them if you feel like it.
Image conversion - from TM2 to GIM:
Copy the four TM2 files then go to the AC5 TM2 to GIM converter folder (located in the "AC5 livery modding tools" folder). Paste them inside the TM2_IN folder and run the AC5 TM2 to GIM converter Py script file. Once the files are processed you'll the files converted to the GIM format in the GIM_OUT folder.
Delete or move the TM2 files out from the "TM2_IN" folder and copy the converted GIM files.
Packing the extures into a GFP file:
Go to where the AC5 GFP file generator script file is located (in the "AC5 livery modding tools" folder) and create a folder with the name of your custom livery and paste there the GIM files we previously copied. Run the AC5 GFP file generator script and type the name of this folder.
The script will merge the 512_gameplay.gim, 512_hangar.gim, 256.gim and 128.gim files inside the folder you created into one single *.GFP archive that will be later injected into the AC5 ISO.
We do not need the GIM files or the folder containing them for the next step but I suggest you to keep them.
In the AC5 GFP file injector folder put the GFP file that was created and the modded ISO of AC5 together:
Run the AC5 GFP file injector and follow the instructions shown on the screen. For this tutorial we'll be modding one of the Su-35 liveries with Scarface's so if you open the AC5 aircraft livery ID text file and look for the Su-35 livery numeric IDs you'll see that they are 120, 121 and 122:
Type the ID number of the livery you want to change and the script will proceed to inject the GFP file into the ISO. Once the injection is done you'll asked if you want to continue to inject more GFP files. Since for this tutorial we are modifying only one livery just decline by typing the N key.
Now the moment of truth has come. Run PCSX2 then load the ISO file. If you did everything correctly then the custom livery will show up both in the hangar and during flight for both player and wingmen planes.
In the case you want to restore the liveries that come by default you can use the GFP injector and the GFP file of the aircraft whose livery you want to restore (which can be found in the Single GFP file subfolder inside the AC5 original liveries folder). The process of injection restoration is the same as detailed in the LIVERY INJECTION section.
If you wish to change the tint color of the canopy of your aircraft or want to learn how reflection maps can be manipulated to add an extra shine to the surface of the aircraft with your custom liveries check the ADDEMDUM section of the Ace Combat 04: Shattered Skies - Texture file creation and conversion tutorial.
Since the "Holy Trinity" of Ace Combat games (AC04, 5 and Zero) more or less share the same game engine and file formats bewteen them what is detailed in that section can be also applied alongside this tutorial.
And this concludes the Custom texture conversion and injection. For any correction, question or feedback you might have feel free to contact me through my ModDB profile.
A huge thanks to BelkanLoyalist for his -SCARFACE- livery for the Su-35.