Can't set individual material instance parameter?

Hello!

I’m using UE 4.24 and I have a single skeletal mesh (a character) with 3 materials. One material is the base material, one material is for the character’s eye, and one material is for the character’s mouth. The eye and mouth materials are material instances and each have scalar parameters to adjust the UV offset in order to animate the eye and mouth. I need to be able to set material parameters on each individual material separately, however it seems I’m unable to do so in version 4.24.

I have found previous documentation on how to adjust individual material instance parameters here: https://answers.unrealengine.com/questions/63545/index.html

However, when I add the “Set Scalar Parameter Value” node, it is different. It only accepts a Material Parameter Collection rather than a Material instance. Here is a blueprint from that link above:

And here is what I see when I try to do the same thing:

I don’t want to use a Material Parameter Collection as that is a global asset. I need to be able to modify scalar parameter values on individual materials on the skeletal mesh. How can I achieve this?

1 Like

If you can get a reference to the mouth, drag off from there and type ‘dynamic’. That will create the material instance for you. Right click on the output of that node and promote the pin to a variable. This variable will work with your timeline.

1 Like

Yep. The material instances need to dynamic material instances before parameters can be changed at runtime

Thank you! This ultimately led me to the solution. I needed to change my variable type from “Material Instance” to “Material Instance Dynamic” and then things worked correctly!