"SpeedTreeColorVariation" materials node does not work correctly in HISMC

The “SpeedTreeColorVariation” materials node was created before HISMCs existed, and it does not seem to work well with HISMCs. Once a new instance gets added to a HISMC the “SpeedTreeColorVariation” materials node actually changes the color of all instances, so even the ones who existed before. So I have 100 instances, add one new instance and the 100 instances get slightly new colors. Sometimes it’s hard to notice if the new color does not differ much from the old one, but if you constantly add new instances then constantly color changing trees are looking a bit strange.

Hey ,

This question would be best directed at SpeedTree support because this behavior is apparent without the HISMC. To show you what I am talking about, grab the ‘Conifer_Desktop’ model from the free SpeedTree pack they offer. Place the tree in your level and begin rotating the actor. You will notice the color of the tree changing as you rotate the mesh.

This is directly related to the ‘SpeedTreeColorVariation’ node. Since your HISMC functions in a unique way and since you are updating the components by adding a new one, this behavior is expected. A simple and efficient workaround would be to add a world overlay to give your trees color variation.


Hi Andrew, thanks for looking into this!

If you rotate an Actor, the construction script is called again. This means also the color changes. This is intented and different to what I describe is happening with the HISMC.

I have actually found a way to fix this, I modified the SpeedTreeColorVariation like this:


The default setting is that it mixes the PerInstanceRandom and the Object Position to calculate the random color, and it seems the “Object Position” does not work well with a HISMC. After I modified it like this (only calculate color from PerInstanceRandom) the colors stay the same after scaling instances and adding new instances. Now of course the materials does not work at all with StaticMesh (it’s just black) but that does not matter, I only use HISMCs for trees.

So there is some bug with the “Object Position” Node and HISMCs, I believe it worked with ISMCs (and the SpeedTreeColorVariation Node is designed to work with ISMCs, but not with HISMCs).

I will have to keep this workaround in mind for my own SpeedTrees as well!

Glad you could find a work around and I am going to convert your comment into an answer in case others need help with an issue related to this one.

The HISMCs are fairly new and we are working to have them improved upon. Thanks for taking the time to write a report and post your workaround.