diff --git a/Sources/armory/logicnode/SetObjectShapeKeyNode.hx b/Sources/armory/logicnode/SetObjectShapeKeyNode.hx new file mode 100644 index 00000000..6df0760f --- /dev/null +++ b/Sources/armory/logicnode/SetObjectShapeKeyNode.hx @@ -0,0 +1,23 @@ +package armory.logicnode; + +import iron.object.MeshObject; + +class SetObjectShapeKeyNode extends LogicNode { + + public function new(tree: LogicTree) { + super(tree); + } + + override function run(from: Int) { + var object: Dynamic = inputs[1].get(); + var shapeKey: String = inputs[2].get(); + var value: Dynamic = inputs[3].get(); + + if (object == null) return; + var sk = cast(object, MeshObject).morphTarget; + if(sk == null) return; + + sk.setMorphValue(shapeKey, value); + runOutput(0); + } +} diff --git a/blender/arm/logicnode/object/LN_set_object_shape_key.py b/blender/arm/logicnode/object/LN_set_object_shape_key.py new file mode 100644 index 00000000..87888cdf --- /dev/null +++ b/blender/arm/logicnode/object/LN_set_object_shape_key.py @@ -0,0 +1,16 @@ +from arm.logicnode.arm_nodes import * + +class SetObjectShapeKeyNode(ArmLogicTreeNode): + """Sets shape key value of the object""" + bl_idname = 'LNSetObjectShapeKeyNode' + bl_label = 'Set Object Shape Key' + arm_section = 'props' + arm_version = 1 + + def arm_init(self, context): + self.add_input('ArmNodeSocketAction', 'In') + self.add_input('ArmNodeSocketObject', 'Object') + self.add_input('ArmStringSocket', 'Shape Key') + self.add_input('ArmFloatSocket', 'Value') + + self.add_output('ArmNodeSocketAction', 'Out')