I had similar problem before, but didn't find any direct answer.
I think there is one thing you need to pay attention to first: where did you put your material on?
In my case, my blender model has three materials on it and after importing and coverting to .tscn, you can see below in red rectangle MeshInstance -> Mesh has three surfaces (Surface 1, 2, 3). I assigned my desired materials to these surfaces.
Note that in blue rectangle, MeshInstance -> Material, there are also 3 slots, all empty.

Now to the tween.
In image below, the function get_surface_material_count()
provided by MeshInstance gives you 3, because there are 3 materials, that's fine. However, if you call MeshInstance function get_surface_material()
, you get nothing, remember the blue rectangle above?
So the correct way is first get your Mesh object from MeshInstance object, then call function surface_get_material()
of Mesh to get the material you want to use interpolate_property()
on. In your case, change property emission to emission_energy and then use int
value instead of Color
.
Be ware of these two functions:
get_surface_material()
-> This is for MeshInstance
surface_get_material()
-> This is for Mesh

Hope this helps.