This is a Blender add-on created to help the process of applying textures specified in Unreal Engine material JSON files to imported objects. Given a directory, it will search for JSON files with names matching the object's materials and that contain texture paths. Then the add-on will apply any textures found to matched materials.
The JSON does not need to originate from UE or a tool like FModel- textures will be applied as long as the JSON name matches the material and any texture files are correctly defined and in the same folder.
- Material Files Scan: Looks for JSON files and textures in a specified directory and its subdirectories. Recognized texture types:
jpg, jpeg, png, tga, bmp, tiff, exr, dds.
- Applied Texture Maps: Extracts texture paths and applies the texture to matched materials, currently supporting diffuse, normal, and alpha maps only.
- Convenient UI: Provides a side panel in Blender's 3D view to access add-on functionality.
- JSON Key Picker: Allows adding and selecting JSON keys to use for matching materials and textures.
- Verbose Logging: Outputs to Blender's system console for diagnosing import issues.
Asset Directory Structure
ChairModel/
├── ChairFancy.psk
├── BaseTexture/
│ ├── MI_ChairBase.json
│ ├── T_ChairBase_D.png
│ └── T_ChairBase_N.png
└── BackTexture/
├── MI_ChairBack.json
├── T_ChairBack_D.png
└── T_ChairBack_N.png
MI_ChairBase.json
{
"Textures": {
"PM_Diffuse": ".../T_ChairBase_D.T_Chairbase_D",
"PM_Normals": "T_ChairBase_N"
}
}
- Download the add-on from releases
- In Blender, navigate
Edit -> Preferences -> Add-ons -> Install from disk
and open the downloaded file - Make sure the add-on is enabled
- Ensure material JSONs are correctly formatted and associated textures are located within the JSON root directory
- Open the Blender side panel interface and select an object
- Paste in a path or use the file browser to select your JSON root directory
- Configure texture slots and options
- If your texture contains a packed alpha map (e.g.
T_ChairBase_D.png
), check theUse Alpha
option
- If the JSON key is different from the default (e.g.
"MainTex"
instead of"PM_Diffuse"
), add/rename it to the JSON Keys list and ensure it is active
- If your texture contains a packed alpha map (e.g.
- Click
Apply Textures
- Support for common channel packed textures
Contributions are welcome. Feel free to create a pull request or submit an issue for new features, fixing bugs, or improving documentation.