select all assets
right click then select asset actions replace references
you can consolidate references and replace them
select all assets
right click then select asset actions replace references
you can consolidate references and replace them
6 years later in 4.25, am I missing something or is there still no solution?
"Bulk Edit via Property Matrix" seems like the ideal solution, but not sure why āMaterialā is one of the only missing parameters.
Itās just not a priority for the devs sadly what Tim Hobson says directly below the selected answer.
This is amazing!
Thanks a lot for the aid.
Working on 4.25 ATM and thereās an issue which can be easly fixed. Posting the solution below in case some one encounters the issue and wants to make it compatible with 4.25
Once again, great fix!
The Year is now 2022. This thread was started in 2014.
Six years later I encounter the same problem - no way to change materials on multiple selected meshes? Something Unity has out of the box for years?
Is anyone from UE reading this?
We created a simple tool to help with that. I think you may find it useful:
Batch assign materials to selected meshes in Unreal Engine
pain in ā ā ā . I dont be bothered to watch people show off how BP to work on materials assign on selevted meshes, all Unreal need is a simple function but seems it not gonna happen.
I just wanna the job done and less time mock around
You can select the meshes you want to apply material to, select the material in the content browser and drag and drop in Details->Materials->Element.
Note: if there are more than 1 Element than all the Elements will get replaced by the new material you drag and drop.
Another option is using a Python script.
Here is what Iām using
import unreal
material = unreal.load_asset('/Game/PathToYourMaterial/MAT_YourMaterial_Inst')
sm_assets_paths = unreal.EditorAssetLibrary.list_assets('/Game/PathTo/TheFolderWith/YourStaticMeshes/')
for sm_asset_path in sm_assets_paths:
sm_asset = unreal.EditorAssetLibrary.load_asset(sm_asset_path)
sm_asset.set_material(0, material)
If you donāt know the path of an asset, right click on it and select Copy Reference
. This will give you something like Blueprint'/Game/StarterContent/Blueprints/Blueprint_CeilingLight.Blueprint_CeilingLight'
. In this case, /Game/StarterContent/Blueprints/Blueprint_CeilingLight
would be the path.
Iām using 4.27, so no idea if this is applicable for UE5, but hereās some info on Python scripting in the editor - Scripting the Editor using Python | Unreal Engine 4.27 Documentation
Iām trying to create a depth map by applying shaders to everything but I believe only certain assets (namely static meshes) accept the blueprint and other elements like the skydome do not. Is there a different method of applying the emissive color shader to other kinds of assets so the depth map would be complete?
I found some simple solutions:
The imported meshes will automatically searching material with the same name and assign. Works for multi materials too. Tested in UE5
Yes ~~~it does ~~~ thank you so much ~~~:purple_heart:
Butā¦ not change in the content browserā¦
oh my godā¦
I made a simple editor utility script which does this for all selected meshes and across all IDās
Here you can see it in action https://twitter.com/RonanMahonArt/status/1615012346547818497
Here is the BP https://blueprintue.com/blueprint/shxsb7ys/
Requires Unrealās Editor Scripting Utilities to be enabled in Plugins
Thanks for this, saved me countless hours of tedious work.
Well worth the purchase price.
I have tried with an actor and UE crashes with this error
Assertion failed: !Primitive->SceneProxy [File:D:\build++UE5\Sync\Engine\Source\Runtime\Renderer\Private\RendererScene.cpp] [Line: 2022] Primitive has already been added to the scene!
Does anyone know why? Is it a Bug ?
This is another fantastic example of how little Epic really cares about the quality of the product, and how they completely ignore these forums. 9 YEARS this issue has gone without any fix. Staff even responded saying āitās in the backlogā but that was like 7 years ago, and STILL no fix. We need to find a way as a community to hold Epic accountable for the quality of their product. Itās amazing, they are amazing, but they appear to care too little about actually fixing bugs/UI/UX/Quality of life issues, even if theyāve been reported time and time again for close to a decade. They prioritize new and awesome new features, but never actually make real fixes. Calling you out Epicā¦ itās time to start making the quality of the product a real priority. Enough is enough!
How can this not be a feature yet? I am about to assign 1 material to 3000 objects. Unreal Bucket worked good but it has no 5.3 version yet so now I will look at the workarounds. But here is another request to please implement this.
found a slight fix to this for anyone that might be interested; currently using 5.2. This works best on the assumption youāre exporting from 3D modelling software yourself, using consistent material slot names, like modular kits for example.
I imported all FBX with ācreate materialsā on then put the put these new materials into the same content folder as the materials i wanted to replace them with (so all in a collective āmatā folder). I selected the two matching materials, so, ābricks_1ā for example that was imported with my FBX, and āMI_bricks_1ā thats an instanced version of my MM, then went to asset actions ā replace references. In the pop up, you select whichever one you WANT to be assigned to your material. So I select my āMI_bricks_1ā, which then replaces the ābricks_1ā reference across everything that uses that material.
Obviously, it only works across the board if your materials are named in uniform with each other upon export into UE. Hope that helps someone!