[Couch Knights] Where is the Expression change happening?

Hey guys,

i was just studying the Couch Knights Characters and Material. I don’t understand where the Expression as changed.
It has as Scalar for it in the Material:


But i can’t find a Scalar Paramter Node with the Name “Expression”. Also it has a curve in the animation BP


The curve name doesn’t have to match with the Param Name, so i guess the link is somewhere else, but where is the curve linked to the Scalar Param?

Hey eXi -

The Curves you see in the AnimMontages are actually being fed into the Material according to the values in the curve as the Animation is triggered to play in the Character’s Blueprint.

Thank You

Eric Ketchum

But i tried to create a Param name “TestParam” and changed it with the Expression Param Node (inside the Material). After that i created a new Curve named “TestParam”. But this Curve didn’t effect the Param Node ):

Do i have to set something inside the drop down menu of the curve at the right side?

Hey eXi -

Look closely at the Blueprint for the Player Character. A lot of the material changes are actual using the M_Player_Main_Plastic_dissolve and its instance. Changing the expression in the M_Player_Main would not affect this other material.

Thank You

Eric Ketchum

This is really confusing. Why using so many Materials? I only found 2 select nodes that change the Material if the Bool “bIsPlayer1” is true or false on death/win. Changing the 2 options to something totaly different has no effect ingame when spawning the characters, so i came up to question myself if i’m looking into the right BP. The Player Blueprint is:

“BP_Player_Character_Pawn” or?

The Mesh component uses the Model with the Material instance “M_Player_Main_Inst”. You said this is the “wrong” one, so i searched for the dissolve Material. I changed every “Expression” param in every Material i found to “TestParam” and used my curve with “MaterialCurve” enabled. Now it is working, but i can’t find where which Material is used and set.

Where is the spawning happening? I guess the Material is set there, or?

The select node was changing between “M_Player_Main_Plastic_dissolve” and “M_Player_Main_Plasticnew”. These are the two extra Materials that i also changed (the scalar node). They have an effect on the spawned player, although the i can’t find the part where they are applied to the characters on spawn.

Why do we even have a Main Material, if we only use the 2 others or why even using those two and not only the main one?

AND where does the Blond Hair Character come from? I can only find the brown one and i can’t find a node or something that changes teh hair color :open_mouth:

So to sum this up:

  • Where are the Characters spawned and
    there Materials set?
  • Why not only one Material?
  • BP_Player_Character_Pawn correct Player BP to look at?
  • Where does the blond Character come from?

Thanks for your answers Eric, i’m just learning the material stuff and till now i didn’t run i such confusing things.

Hey eXi -

No it’s okay, it is often times hard to look at someone else’s blueprints and try to follow the logic. You are correct that all the Character’s Spawning and Material information should be set in the BP_Player_Character_Pawn, but Couch Knights is a Code Based project and does have variable information set in C++.

Ah why not one material, well they each do something a little different. The M_Player_Main material uses a masking texture to give realistic look to the metallic elements as well as provide correct roughness. The M_Player_Main_Plastic_Dissolve drops the masking texture for a more “Plastic” look to the whole model but adds in a controllable Dissolve effect. The M_Player_Main_Plasticnew drops both the masking texture and the dissolve. Each have their own performance costs and reasons to be used.

The setup for a lot of the information is done through C++ including the Blond Chracter which is just the same model with a new material instance applied.

Thank You

Eric Ketchum

I don’t want to sound rude ): but are you sure this game is C++ based? I thought is was BP based (like the description says). None of the BP derive from C++ custom classes. And i found the spawning and material assigning part inside the GameMode BP.


And i found the part where the blond character comes from. The 3 Textures (BaseColor, FaceHappy and FaceHurt) are Param Textures. So they can be changed inside the Material instance of that base Material. So both version use the “M_Player_Main_Plasticnew” material, but their instances are different. The brown one is unchanged, but the blond one has this:


I guess this answers most of my questions. :smiley: Yes, it is really hard to find all the logic behind a blueprint if it is splitted like this and if you have never worked with materials before. But i think that looking into these little projects will help me more than just learning it through reading the docs.

Thanks for your information Eric, you really helped me a lot (:

I was dealing with an internal version of the game which I believe is C++ my apologies about that. I agree as well looking through projects like this one is a great way to learn it.

Glad I was able to help -

Eric Ketchum