Ace Combat 7 - Texture Modding Guide

https://superostrich.xyz/ac7.html#guides


Table of Contents

Required Tools

Extracting Textures

Working with .ubulk files

Importing and Exporting DDS

GIMP

Photoshop

MREC Overview

Baking the .pak file

Acknowledgements

Required Tools

Python 3 - required to run python scripts

DDS Import/Export Plugins for your preferred image editor

Photoshop

https://developer.nvidia.com/gameworksdownload#?dn=texture-tools-for-adobe-photoshop-8-55

GIMP

https://code.google.com/archive/p/gimp-dds/downloads

ac7tools.zip - For your convenience this archive contains the following scripts and utilities;

  • uModel - windows utility used for unpacking game assets
  • u4Pak.py - python script for re-packing game assets
  • Header7.py - python script for easily adding and removing headers from textures

Extracting Textures

  1. Open Umodel.exe

  1. Browse or type your Ace Combat 7 install path
  2. Leave all options on the defaults, press OK

  1. Enter AES Key: https://ace7.acecombat.jp/special/   
  2. Press OK
  3. Browse to All Packages\Game\Vehicles\Aircraft
  4. Right click on the folder for the aircraft you wish to extract, and ‘Save folder packages

  1. The directory containing umodel.exe should now have a umodel_saved folder with the package contents extracted;  

In this example we have now extracted all of the F-2A textures from Ace Combat 7.  Each numbered folder represents one of the playable aircraft colors, starting with 00 = Color 1.  The .ubulk files are your textures.  

Folder Examples;

Path

Skin

\UmodelSaved\Game\Vehicles\Aircraft\f02a\00

F-2A Color 1 - Osea

\UmodelSaved\Game\Vehicles\Aircraft\f02a\01

F-2A Color 2 - Erusia

\UmodelSaved\Game\Vehicles\Aircraft\f02a\02

F-2A Color 3 - Special

Folders with letters in them (eg ..\f02a\01a ) are textures used by NPC & Enemy aircraft.

Working with .ubulk files

Ubulk files are DDS textures without headers.  Aircraft will have two textures, continuing with our F-2A Color 3 example;

f02a_02_D.ubulk = diffuse texture, this is the paintjob and surface details of the aircraft

f02a_02_MREC.ubulk   = metallic, reflective, emissive, custom; this how light interacts with the diffuse texture.

In order to edit these textures, you will need to add a DDS header as follows.

  1. Drag and drop your .ubulk file onto header7.py 

  1. Select the appropriate header to add to the .ubulk file, and a new .DDS file will be created.
  1. Most of the Diffuse textures are DXT1 4K 
  2. Some MREC files are DXT1, others have an alpha channel and are DXT5, and some are 2K, if the .DDS image is garbled, try again with a different header.
  1. Open the DDS file(s) in your favorite editor, and ensure it looks correct.
  1. Diffuse Texture
  1. MREC Texture (without alpha channel)
  1. You now have texture file(s) that can be edited.  

Importing and Exporting DDS

GIMP

  1. When importing a DDS file into GIMP, uncheck ‘load mipmaps’.

  1. The GIMP DDS export plugin will only export the active layer, so either flatten the image, or create a new layer from visible before exporting.
  2. When exporting to DDS from gimp, choose the appropriate compression method, and enable mipmap generation.

Photoshop

  1. When opening a DDS file into Photoshop, ensure load MIP maps is unchecked

  1. When saving a DDS file from Photoshop, choose the appropriate Compression method, and ensure mipmap generation is enabled.

  1. Open the Image Options dialog, and choose highest under compression quality

MREC Overview

In MREC textures, each RGB channel controls a different property. The values of each property can be referenced in the table below.  

Not all colors have a discreet MREC file.   For example; Color 4, 5, and 6 will use Color 1’s MREC file.  

In most cases, you won’t need to edit the MREC texture or include it in your mod.

Channel

Effect

White

Black

Red

Metal

Metallic

Non Metallic

Green

Reflect

Matte

Glossy

Blue

Emit (night refueling)

Light Emitting

Non Emitting

Alpha

Custom

Formation Lamp

N/A

Baking the .pak file

Once you have finished editing your texture, and have saved it as a DDS file, you’re ready to bake!

  1. Drag and drop your edited DDS file onto header7.py ; this will remove the DDS header and spit out a new .ubulk file.
  2. Create a folder for baking, and place the following items inside;
  1. pack.bat  (download here)
  2. u4pak.py
  3. A new folder named Nimbus

  1. Inside ..\Nimbus\Content\ you must re-create the original folder structure, with the ubulk file(s) you created in step 1.

Continuing with our F-2A Color 3 Example;

New Path :

\Nimbus\Content\Vehicles\Aircraft\f02a\02\f02a_02_d.ubulk

If you wish to replace a different Color Slot, adjust your path and filename(s) accordingly.  

For example if you want to overwrite Color 2 instead of Color 3, the path would be;

\Nimbus\Content\Vehicles\Aircraft\f02a\01\f02a_01_d.ubulk

  1. Run pack.bat, it will spit out a file named rename-me.pak
  2. To load this into the game simply give this .pak file a meaningful name (or not) and copy it into

..\steamapps\common\ACE COMBAT 7\Game\Content\Paks\~mods 

Acknowledgements

This guide wouldn’t have been possible without the research done by @rythusomega , and draws heavily upon this guide made by @dapperdapperdan 

Thank to the namefriends and anonymous buddies, don’t let it die.


@superostrich

https://superostrich.xyz