Fix for modifying morph targets with small values?

Hey there, so modifying a morph target in blueprint with a very small value does not update the morph target, any fix for this ?

Example : I’m updating my morph target in Tick with values incrementing very slowly and it doesn’t update visually. Updating with bigger increments updates fine visually. The threshold seems to be 0.0001, higher than this and it updates, lower and it doesn’t.

The default diff value for some things in Unreal is 0.0001. You can see this if you create a Vector == Vector node in BP, it will also have a input pin for tolerance which is default to 0.000100.

This is because float isn’t perfectly precise.

190917-ue_answerpic11a.png

Edit, didn’t work: You could try setting the morph target twice in the tick, first with a value +1.0 of what you want it to be, then the actual value. This might cause it to updated, because both sets were greater in difference of 0.0001.

Edit, might work: You could keep track of the value that you last set, and what the current Morph Target should be, and when it is different by more than 0.0001, actually set the new target amount.

Hmmm… this seems highly inconvenient. I wish the morph targets kept their last “visually changed” value in memory so incrementally upping the value would eventually update the morph target. Would there be a way to have the morph target value between 0 - 100 instead of 0 - 1 ? Anyway, thanks for the quick answer !

Hrm, definitely a problem. Updated with new possible solution.

Yeah, not ideal. Glad you were able to circumvent the bug.

I suggest you post this issue in the Bug Reports category, and link back to this question. So it can be addressed by the Epic team.

UPDATE : So setting the morph target 2 times in a tick doesn’t update the morph target both times, so my problem still persists.

Yeah that’s the way I ended up doing it. It works but it’s a bit hacky in my opinion.