# Logic Tweens: Scale, Location, Scale :)

5 Likes

Hello,
Iâ€™m trying to use your library TweenToRotate, but I canâ€™t get it work properly.
I want an object to get the transform of another object. It works for TweenToLocation with the node â€śGet Locationâ€ť on the target object, but not with â€śGet Rotationâ€ť and TweenToRotate.
The results are strange. Does it works with Euler Angles, or other coordinate system ?
Do I need to respect some constraints ?
Thanks in advance for your help, this library could be really useful.
Mokauno.

I confirm the problem with TweenToRotate but I donâ€™t know where the problem is.

I paste the code

``````package armory.logicnode;

import iron.Scene;
import iron.math.Vec4;
import iron.system.Tween;
import iron.object.Object;
import armory.trait.physics.RigidBody;

class TweenToRotateNode extends LogicNode {

public var property0:String;

public function new(tree:LogicTree) {
super(tree);
}

var o:Object;

override function run(from:Int) {
var t = inputs[1].get();
o = inputs[2].get();
var v1 = inputs[3].get();
var e:Dynamic = Linear;

if (o == null || v1 == null) return;

switch (property0) {
case "Linear":
e = Linear;
case "SineIn":
e = SineIn;
case "SineOut":
e = SineOut;
case "SineInOut":
e = SineInOut;
case "CubicIn":
e = CubicIn;
case "CubicOut":
e = CubicOut;
case "CubicInOut":
e = CubicInOut;
case "QuartIn":
e = QuartIn;
case "QuartOut":
e = QuartOut;
case "QuartInOut":
e = QuartInOut;
case "QuintIn":
e = QuintIn;
case "QuintOut":
e = QuintOut;
case "QuintInOut":
e = QuintInOut;
case "ExpoIn":
e = ExpoIn;
case "ExpoOut":
e = ExpoOut;
case "ExpoInOut":
e = ExpoInOut;
case "CircIn":
e = CircIn;
case "CircOut":
e = CircOut;
case "CircInOut":
e = CircInOut;
case "BackIn":
e = BackIn;
case "BackOut":
e = BackOut;
case "BackInOut":
e = BackInOut;

}

iron.system.Tween.to({
target: o.transform,
props: { rot: v1 },
duration: t,
ease: e,
tick: update,
done: done
});
}

function update() {
#if arm_physics
var rigidBody = o.getTrait(RigidBody);
if (rigidBody != null) rigidBody.syncTransform();
#end

runOutput(0);
}

function done() {
runOutput(1);
}
}``````

OK, I get something interesting.
I think it works, in logic nodes. Itâ€™s not exactly tweening, but it allow an object to target the rotation of another object, with a parametrable speed.

1 Like

Just stumbled onto this. Looks very cool.
Thanks for making this.
I did a quick search and found no Youtube videos on this. Are there any?
It would be nice to see these nodes in action. Might help my wrap my head around itâ€¦ and make sure Iâ€™m doing it right.
Thanks again,
M

TweenToRotate use Quaternion!
You need to convert Euler to Quaternion

1 Like