Merge pull request #2071 from QuantumCoderQC/animLoopFix

Add speed and looping options in Play Action From Node
This commit is contained in:
Lubos Lenco 2020-12-27 16:05:05 +01:00 committed by GitHub
commit 3e819d7e99
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 3 deletions

View file

@ -14,6 +14,8 @@ class PlayActionFromNode extends LogicNode {
var action: String = inputs[2].get();
var startFrame:Int = inputs[3].get();
var blendTime: Float = inputs[4].get();
var speed: Float = inputs[5].get();
var loop: Bool = inputs[6].get();
if (object == null) return;
@ -22,7 +24,7 @@ class PlayActionFromNode extends LogicNode {
animation.play(action, function() {
runOutput(1);
},blendTime);
}, blendTime, speed, loop);
animation.update(startFrame*Scene.active.raw.frame_time);
runOutput(0);

View file

@ -4,7 +4,7 @@ class PlayActionFromNode(ArmLogicTreeNode):
"""Plays action starting from the given frame."""
bl_idname = 'LNPlayActionFromNode'
bl_label = 'Play Action From'
arm_version = 1
arm_version = 2
def init(self, context):
super(PlayActionFromNode, self).init(context)
@ -12,7 +12,18 @@ class PlayActionFromNode(ArmLogicTreeNode):
self.add_input('ArmNodeSocketObject', 'Object')
self.add_input('ArmNodeSocketAnimAction', 'Action')
self.add_input('NodeSocketInt', 'Start Frame')
self.add_input('NodeSocketFloat', 'Blend', default_value=0.25)
self.add_input('NodeSocketFloat', 'Blend', default_value = 0.25)
self.add_input('NodeSocketFloat', 'Speed', default_value = 1.0)
self.add_input('NodeSocketBool', 'Loop', default_value = False)
self.add_output('ArmNodeSocketAction', 'Out')
self.add_output('ArmNodeSocketAction', 'Done')
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
if self.arm_version not in (0, 1):
raise LookupError()
return NodeReplacement(
'LNPlayActionFromNode', self.arm_version, 'LNPlayActionFromNode', 2,
in_socket_mapping={0:0, 1:1, 2:2, 3:3, 4:4}, out_socket_mapping={0:0, 1:1}
)