I suggest each time HP changes, using setget
make a function that makes a color with a certain amount of Red Green and Blue, one or two of those colors being based off of hp.
var hp setget change_hp
func change_hp(value):
hp = value
#all white getting darker based off hp
var c = Color(hp, hp, hp)
#redness changes:
var c = Color(hp, 255, 255)
var chp = 255-abs(100-hp) #this makes it be a number starting with 255 if you want.
#then use it instead of just hp in place of that.
modulate = c
#or:
$your_mesh_path_here.self_modulate = c
Haven't tested it, but I hope you get the idea.