Materials - Stellar-Blade-Modding-Team/Stellar-Blade-Modding-Guide GitHub Wiki

Overview

[!IMPORTANT] This section was written by our member peek6 and improved by Lady-420. In this document we will be introducing how to import MIs(Material Instance) and dummy MMs(Master Material) in Unreal Editor for Stellar Blade.

Appreciate Modder peek6 for providing source document and tips.

If you are beginner of Unreal Editor and want to have a ground understanding of material usage in Unreal Engine games such as Stellar Blade, Follow this page for more details.

Previewing and exporting

We will be mainly using FModel to extract MI JSONs.

Workflow in UE

[!NOTE] This workflow is based on having Json2DA plugin installed for your Uproject.

Required Plugin

Json2DA

Step 1: Installing plugin

Move the (branch = ff7rebirth_ue426) into your Content/Python directory. Create a folder named Python if there isn't.

Screenshot_1617

Step 2: Uproject setting

[!NOTE] First make sure you have finished the step of Creating UE Project for your mod.

In Unreal editor we need to enable the Python script editor plugin and Editor scripting utilities plugin for running Json2DA.

Screenshot_1618

Step 3: Creating Dummy Materials & Material Instances

OPTION 1 - Use for MIs which have static flags:

image

https://github.com/user-attachments/assets/40e3d514-6af9-41ef-a8dc-e86a731c95e8

  1. In UE, right-click inside a folder -> create a Material (NOT a Material Instance / MI), and name it with the same name as the original game's MI whose properties you want to inherit. Let's call it MI_Source, but its name and directory must exactly match the original game MI whose properties you want.

  2. Right-click on the MI_Source material, and select scripted actions -> Import MI JSON 2 MM -> select your MI JSON.

  3. Right-click again on the MI_Source -> Create Material Instance. Keep the generated name if this instance, let's call it MI_Target, is not supposed to replace a different material. But if you want to change the material of Eve's costume then give it the name of the MI you want to replace.

  4. Double-click on the MI_Target and in the "Global Texture Param" section, enable ONLY the assets you modified and save. You will also notice if you scroll down at the bottom that the parent is selected to be the MI_Source. You can safely close the menu now.

  5. Double-click on the mesh and in the "Material Slots" section, choose the MI_Target. You could also simply drag and drop them into the slot.

[!WARNING] Do not put MI_Source into the material slots of skeletal mesh. Do not enable texture slots for the textures you dont replace in the created Material Instance. Enable only texture slots for the texture you imported and assign it in the Material Instance setting.

  1. Save all.

  2. Only include MI_Target and your textures in your chunk/label by following the instructions of Packaging Mods. DO NOT INCLUDE THE DUMMY MATERIAL (i.e., MI_Source) in your chunk.

OPTION 2 - It should work without modifying any meshes, but may have issues if the MI has static flags:

image2

  1. Create the parent master material for your MI, and make an instance of it. Name them as in the original game.

  2. Right-click on the master material asset, select scripted actions->Import MI JSON 2 MM and select your MI JSON.

  3. Right-click on the MI asset, select scripted actions->Import JSON 2 MI and again select your MI JSON.

You can now change the textures or other params of your MI and include the modded MI in your chunk by following instruction of Packaging Mods

Never include any dummy MMs in the chunk for your mod:

The dummy material hooks up all the parameters in the instance as nodes which feed into an adder, so that you can create instances of that material (e.g. MIs), which have those fields available for you to mod.

*example MA_CH_P_EVE_09

Screenshot_1619

[!NOTE] It's a dummy material created by Scripted Actions->Import MI JSON 2 MM and selecting MI_CH_P_EVE_09_Suit.json .

Since it's a dummy, If you include it in your mod's chunk, it will crash the game. But now, you can create an instance from it (e.g., an MI) called MI_CH_P_EVE_09_Suit and now run scripted actions->Import JSON 2 MI> again selecting MI_CH_P_EVE_09_Suit.json, which will populate all those parameters with specific textures etc. You can now modify that MI and point it to your own custom textures and include the MI in your chunk.

You can also replace an MI with your own custom MI which points to a different parent (e.g., a different dummy MM) having different properties. For example, if you have an MI for an opaque material and you want to make it semi-sheer. You can find a sheer material and corresponding MI, create a dummy MM and MI from it, and use that sheer MI instead of the original opaque one, pointing it to whatever textures you want.

As long as you can find a different MI to instance off which has the properties you want to inherit, then the best approach is to create a material, give it the name of that MI (whose properties you want to inherit), create an instance of it, and name the instance the same as the MI you want to replace (e.g., the one the mesh already points to). Then only include the instance in the chunk .

For stocking material (by Lady-420)

Stocking_Material_Result

Here's a video showing how to replace skin with stockings material in UE.

https://github.com/user-attachments/assets/1fa2b735-491f-468f-9297-83a8af00b1cc

In this example, we will use the stocking material CH_P_EVE_46_TypeB_M01 of "Silver Kunoichi" costume to replace the skin material MI_CH_P_EVE_61_BB of "Midsummer Alice" costume.

*example MI_CH_P_EVE_61_BB

Skin_Material

example CH_P_EVE_46_TypeB_M01

Stocking_Material

  1. In UE, import the model/mesh of the outfit you want to have the stokings on (follow Models page)

  2. Create a folder in the PC folder for the outfit from which you want to use the stocking materials, in this case folder CH_P_EVE_46 and follow the OPTION 1 from Step 3. But remember, we will replace something here.

  3. When the model/mesh was imported, some materials were imported as well, and one of them is the skin material of that model which we want to replace.

  4. Open the MI_Target, which is our stocking material now, by double-click and in the "Global Texture Params" section activate the "MASK_Stocking" option and also take note of the texture's name of that option, which in our case is CH_P_EVE_46_BB_StockingMask.

  5. The mesh of the outfit, the stocking material and the StockingMask texture (which you can find in the texture folder of the outfit the stockings came from, CH_P_EVE_46 in our case) needs to be assigned to the label.

For glow material (by Salt)

Screenshot_2025-06-25_204454

Here's an video to show how to use script action in UE to make glow MI.

https://github.com/user-attachments/assets/bedc5d1c-7e40-4e01-8f2b-2dd45c7ee40b

Example* MI_CH_EVE_30_GlowEmissive

FModel_UOgFcAJK5d

Some glow MIs are using the default color from MA_MachineGlow so it is not written in the properties json. Which means the json script is not enough on its own in this case. Fmodel can reveal the names if you set it to all material layers, in this case the name of the glow parameter is Eye Core HDR Tint.

image

This requires adding a new vector parameter with that name to the parent material, which you can then edit in your custom MI.

image2

Color values in unreal is greater than 1.0 for glow , so you can set higher number for more noticeable glow effect in visual.

image3

For multiple material (by Heuwu & Lady-420)

image111

[!NOTE] This video shows how to replace the material of an outfit with a unique material that has multiple effects. The process is similar when you are doing it on the same outfit for your mod.

https://github.com/user-attachments/assets/2abf452b-1950-44e5-90f0-778670f1d192

In Stellar Blade there are some special materials that could content multiple visual effects more than just one, we call it Multple Materials. A good example of this type of material is MI_RavensuitVinylfrom Raven's suit.

Let's say you want to replace the material MI_P_EVE_08_Layered of Punk Top outfit by using the MI_RavensuitVinyl, which is a transparent material that also carries visual effect of glow. Here's what you need to do:

  1. Make your own emissive map in photoshop for your suit if it doesn't exists. Black part is none emissive and white is emissive. Here we borrowed one of the layer from it's ORM map as emissive just to show you for guide. For In game result check image above.

image111

  1. Import and/or creating the required materials, skeletal mesh, skeleton and then put them in the correct folder in UE (according to the directory shown in Fmodel).

  2. Create material instance of MI_RavensuitVinyl and move the instance to the same folder as MI_P_EVE_08_Layered, delete MI_P_EVE_08_Layered and rename the instance to MI_P_EVE_08_Layered.

  3. Open the skeletal mesh and assign the new MI_P_EVE_08_Layered to the mesh.

[!NOTE] Alternatively you can keep the MI's name as customized with for example _inst in name and just assign it to your skeletal mesh.

  1. Now you can make the following changes to the new MI_P_EVE_08_Layered by opening it and:

    • You can change the shape of the glow by enabling emissive map, normal map and ORM map -> put your modified maps of those in the texture folder -> drag those into their respective slots in the material.
    • You can change the color of the glow by enabling EmissiveColor and changing it.
    • You can remove the glow by changing the color of EmissiveColor to black (all the values to 0). The alpha channel does nothing for glow, so it can be kept as is.
    • You can play around the various other parameters to see how it effects your mod.

If you done everything right, you can achieve a mix of transparancy and glowing visual effect for your mod which will be very beautiful in some scenario. You can also make the whole emissive map in white and adjust the emissive strength in UE to have the semi glow effect covered over whole part of the suit by using this multiple material. More style combination and possibility for artistical purpose.

Known Bugs and Issues

Armpit joint shadow bug & solution:

image

Method 1: Enable Compute Skin Cache (found by 11001011)

First enable skinning cache in the project options.

Edit> Project Setting> Engine(Rendering)> Optimizations> Enable Support Compute Skin Cache

2

Restart your UE to apply changed settings.

Enable Recalculate Tangents in the LOD0 in your material property.

Double click on Skeleton mesh> Asset Details> LOD0> Enable Recalculate Tangents

3

Enable Recompute Normals

Capture

Click Save All.

However for custom model, you need your model painted with black and green vertex color to avoid seams. The devs did this for skin and some tight clothes, only leaving the neck line black. Otherwise it will give your model an extra seam with skin cache setting.

image image1

In UE, when you enable setting in LOD 0 , the default is green channel "Recompute Tangent Green". In Fmodel you can see game devs use this setting.

image2

Select your model in object mode> Enter vertex paint mode> It's easier to see if you set viewport lighting to flat.

Capture

Use full 1.0 green with max brightness: Hex code #00FF00. Paint the whole body to green expect neck line part , leave it as black.

2