"Bake Out Materials" files generated, but not displayed in content browser UE5.3 and UE5.4


I use this feature normally in UE5.0, but in UE5.3 and UE5.4 it looks like the picture, the file is generated, but it is not visible in the editor. What do you think?

For what it’s worth, I am facing the exact same problem. Materials and Textures do bake out to the Content folder as uasset files, they’re also correctly rendered everywhere but the Content Browser simply won’t show the assets. There’s also no import errors on editor startup or anything that suggests the uasset files trip up the engine.

1 Like

I’m having the same issue. Would really appreciate if anyone could let us know if this is changed expected behavior or an actual bug.

1 Like

It most certainly a bug. Tried to bake out materials in UE5.4.1 and UE5.3.2 the created material and textures don’t show up in content browser. Funny thing is that material shows up in explorer but texture doesn’t. Its like a magic to me because its loaded in engine and I can even open it by opening a material that on a mesh and then from a material open a texture, but where does engine loads it from only god knows because I cant find it anywhere on disk. Btw restarting doesn’t help, it still magickly loads those shadow assets.

1 Like

Same issue happening to me, is also happening in Skeletal Mesh Bake Materials. The only solution I found so far is to open the material, go to file, and save as asset into folder, as this works, but also must do the same with each texture individually.

1 Like

Same here, when baked from any location (on asset in world, through asset edit menu, modeling tools) it creates temp materials (at engine/transient, as far as i can tell) but doesn’t create the textures, ive attempted the method above but that just saves a material that is instance of normal flatten?? so far no method I have tried (that i know how to use) works… trying to do it through geoscript but no reference material on this

1 Like

I’m so happy to report I found a solution to this issue. The issue stems that the names generated for the textures are too long for the content browser. The solution is to rename them. We can do that with a python script you can run directly in the editor.

I have attached it below. Please note the instructions and edit the script accordingly to your own use case.

import unreal

# Function to find and rename an asset by a partial path
def rename_asset_by_partial_path(partial_path, new_name_base):
    print(f"Attempting to rename asset with partial path: {partial_path}")
    asset_registry = unreal.AssetRegistryHelpers.get_asset_registry()
    
    # Ensure assets are found before proceeding
    asset_data_list = asset_registry.get_assets_by_path('/Game/Polar/Meshes/Architecture', recursive=True)
    if not asset_data_list:
        print("No assets found in the specified path.")
        return
    
    for asset_data in asset_data_list:
        asset_path = str(asset_data.package_name) + '.' + str(asset_data.asset_name)
        print(f"Checking asset: {asset_path}")
        if partial_path in asset_path:
            print(f"Match found: {asset_path}")
            asset = asset_data.get_asset()
            if asset:
                # Get the asset path without the asset name
                path = unreal.Paths.get_path(asset.get_path_name())
                print(f"Current path: {path}")
                
                # Generate a unique name
                new_name = new_name_base
                counter = 1
                while unreal.EditorAssetLibrary.does_asset_exist(f"{path}/{new_name}"):
                    new_name = f"{new_name_base}_{counter}"
                    counter += 1
                
                # Formulate the new path
                new_asset_path = f"{path}/{new_name}"
                print(f"New asset path: {new_asset_path}")
                
                # Rename the asset
                success = unreal.EditorAssetLibrary.rename_asset(asset.get_path_name(), new_asset_path)
                
                if success:
                    print(f"Asset renamed to {new_asset_path}")
                else:
                    print(f"Failed to rename asset: {asset.get_path_name()}")
            else:
                print(f"Asset not found for partial path: {partial_path}")
        else:
            print(f"No match for: {asset_path}")

# Instructions for users:
# 1. Open the texture in Unreal Engine.
# 2. Click on Asset -> Copy Reference to get the path.
# 3. Add the paths and new names to the assets_to_rename list below.

# List of assets to rename
assets_to_rename = [
    {
        "partial_path": "M_SM_Wall_Flat_M_Wall_Inst_CAFC40234DDFA2B808FE33B499B968A9.T_M_SM_Wall_Flat_M_Wall_Inst_CAFC40234DDFA2B808FE33B499B968A9_BaseColor",
        "new_name_base": "T_Wall_Flat_BC"
    },
    {
        "partial_path": "M_SM_Wall_Flat_M_Wall_Inst_CAFC40234DDFA2B808FE33B499B968A9.T_M_SM_Wall_Flat_M_Wall_Inst_CAFC40234DDFA2B808FE33B499B968A9_Normal",
        "new_name_base": "T_Wall_Flat_Normal"
    },
    {
        "partial_path": "M_SM_Wall_Flat_M_Wall_Inst_CAFC40234DDFA2B808FE33B499B968A9.T_M_SM_Wall_Flat_M_Wall_Inst_CAFC40234DDFA2B808FE33B499B968A9_Roughness",
        "new_name_base": "T_Wall_Flat_Roughness"
    }
]

# Rename the assets
for asset_info in assets_to_rename:
    rename_asset_by_partial_path(asset_info["partial_path"], asset_info["new_name_base"])


1 Like

Very annoying. But click on the MAT or texture name as if you’re about to replace it with another, click on Edit under Current Asset. Then file Save As to a folder with a shorter name. Very tedious process

1 Like