Using Tweens was the best and easiest solution for me
func animate_to(nodeOrPath, prop, to, length = 0.5, easing = 2):
var node = makeNode(nodeOrPath)
var tween = Tween.new()
node.add_child(tween)
tween.targeting_property(node, prop, node, prop, to, length, tween.TRANS_SINE, easing)
tween.start()
func makeNode(nodeOrPath):
var node = nodeOrPath
if (nodeOrPath.is_type("String")):
node = get_node(nodeOrPath)
return node
The easing parameter has to be one of the EASE_*** constants.