Ace Combat 7: Skies Unknown

Custom Portrait Guide

By Calamitous, updated 10/16/2020


  • ACES07 2.0 Font - Font used on the portraits

  • UE4 Editor - Rythus’s custom lightweight builder of UE4 Editor.

  • u4pak Python script - For packing the assets into a format that Ace Combat 7 can read. Also includes directory template and .bat file for executing the script.

  • Python 3 - Required to run u4pak script. Any versions above 3 should work. Python 2 will not work with the script provided.

How The Portraits Work

First, I need to explain how the portraits work ingame, because they can be slightly confusing.

The textures are distinctly different from the ones used on the official website, which have a black backdrop. Indeed, the ingame portraits are extremely different from the website ones. They’re RGBA images - Red, Green, Blue, Alpha. The RGB channels contain both the portraits and dictates the color of the text. The alpha channel, on the other hand, seen below, dictates the transparency - it contains the name and affiliations of the portraits. I have replicated that in my template.

McOnie's radio portrait.The RGB channels for McOnie's radio portrait.The alpha channel for McOnie's radio portrait.

Editing Process

Download the template and the ACES07_Regular font above. Crop the character that you want to make a portrait of to about 188x188 pixels. You may downscale or upscale the image in order to include more of the character’s image in the portrait if need be.

        Open the template with Photopea. It’s free and can import/edit PSD just fine, unlike GIMP. It also has the tools necessary to pull off some of the stuff here exactly as it needs to be.

The template contains two parts: the RGB portion, and the Alpha portion.

For the RGB portion, center the character’s portrait with the horizontal/vertical guides, then place it in the “Place Portraits Here” folder. Turn on distances in Photopea if it helps. The correct distances for the image itself are as follows:

  • Distance from left border: 52 pixels
  • Distance from right border: 52 pixels
  • Distance from top border: 48 pixels
  • Distance from bottom border: 280 pixels

 Switch to the Sponge Tool (right click on the magnifying glass on the toolbar) and switch the settings to:

  • Size: 1000px
  • Hardness: 100%
  • Flow: 100%
  • Desaturate

Then, click the portrait once to lightly desaturate it (you may have to rasterize the image). Export the full image as a png.

Next, for the Alpha channel, simply copy and paste the text you want into the Name and Affiliation text layers. Make sure to do it for every text layer, though. Export that as a png as well.

Now, for compositing. Import the RGB image.

GIMP: After importing the RGB image, go to the top bar and click Color -> Components -> Decompose, and choose RGB. It’ll create a new grayscale image with 3 layers representing the red, green, and blue channels of the original image. Now, import the alpha channel image into this decomposition. Put it as the bottom-most layer. Then, go back to the top-bar and click Color -> Components -> Compose. Choose RGBA this time. If you put the alpha image as the bottom-most layer, it’ll automatically be selected as the alpha channel, but do make sure in the case that you made a mistake. Compose a new image and if you did the process correctly, you should get an image that looks like this.I recommend exporting this image as a tga for maximum quality, but a png is acceptable too.

Cooking and Packing

 Import the new image file into UE4 Editor and rename it to the appropriate name used in the files. A full list can be found here. Change its texture group to UI, change Mip Gen Settings to NoMipmaps. Generally, make your settings look the same as these. Above all, make sure sRGB is turned on. With it turned off, portraits will have a permanently bright effect.

Cook the files by clicking File, then clicking “Cook Contents for Windows”. Navigate to this filepath: “UE4 Projects\[Project Name]\Saved\Cooked\WindowsNoEditor\[Project Name]\Content”

Drag and drop all files (uasset, uexp) found in there to your Nimbus folder for packing. DO NOT rename the cooked files. It may result in broken textures or outright game crash when attempting to load the new texture. It is best to rename the assets in-editor and re-cook the files if needed.

The filepath to create for packing is Nimbus\Content\UI\HUD\SubtitleSpeakerPortrait.

Pack it up, put _P at the end of the filename to make sure it will work (“_P” filename suffix is required for loading DLC content. DLC content is essentially anything that came out after game release.), and then import into your AC7 mod folder, then enjoy!

Examples of exported portraits with this method: