AnimationNodeOneShot

继承: AnimationNodeSync < AnimationNode < Resource < RefCounted < Object

AnimationNodeBlendTree中播放一次动画。

描述

要添加到AnimationNodeBlendTree的资源。该动画节点将执行子动画,并在完成后返回。可以自定义淡入淡出的混合时间,以及过滤器。

设置请求并更改动画播放后,一次性节点通过将其request值设置为ONE_SHOT_REQUEST_NONE,在下一个处理帧自动清除请求。

# 播放与“镜头”端口相连的儿童动画。
animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
# 另一种语法结构(与上述结果相同)。
animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE

# 停止与“镜头”端口相连的子动画。
animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT)
# 另一种语法结构(与上述结果相同)。
animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT

# 通过将“镜头”端口连接至“子动画”对象,可停止子动画的播放并使其逐渐淡出。
animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT)
# 另一种语法结构(与上述结果相同)。
animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT

# 获取当前状态(只读模式)。
animation_tree.get("parameters/OneShot/active")
# 另一种语法结构(与上述结果相同)。
animation_tree["parameters/OneShot/active"]

# 获取当前内部状态(只读模式)。
animation_tree.get("parameters/OneShot/internal_active")
# 另一种语法结构(与上述结果相同)。
animation_tree["parameters/OneShot/internal_active"]

属性


枚举

enum OneShotRequest: 🔗

OneShotRequest ONE_SHOT_REQUEST_NONE = 0

请求的默认状态。什么都没做。

OneShotRequest ONE_SHOT_REQUEST_FIRE = 1

请求播放连接到“拍摄”端口的动画。

OneShotRequest ONE_SHOT_REQUEST_ABORT = 2

请求停止连接到“射击”端口的动画。

OneShotRequest ONE_SHOT_REQUEST_FADE_OUT = 3

淡出动画的请求连接到“镜头”端口。


enum MixMode: 🔗

MixMode MIX_MODE_BLEND = 0

混合两个动画。另请参阅AnimationNodeBlend2

MixMode MIX_MODE_ADD = 1

添加混合两个动画。另请参阅AnimationNodeAdd2


属性说明

bool autorestart = false 🔗

  • void set_autorestart(value: bool)

  • bool has_autorestart()

如果true,子动画将在完成后自动重启。

换句话说,要启动自动重启,动画必须用ONE_SHOT_REQUEST_FIRE请求播放一次。ONE_SHOT_REQUEST_ABORT请求停止自动重启,但它不会禁用autorestart本身。因此,ONE_SHOT_REQUEST_FIRE请求将再次启动自动重启。


float autorestart_delay = 1.0 🔗

  • void set_autorestart_delay(value: float)

  • float get_autorestart_delay()

触发自动重启的延迟,以秒为单位。


float autorestart_random_delay = 0.0 🔗

  • void set_autorestart_random_delay(value: float)

  • float get_autorestart_random_delay()

如果autorestarttrue,则0和该值之间的随机附加延迟(以秒为单位)将添加到autorestart_delay


bool break_loop_at_end = false 🔗

  • void set_break_loop_at_end(value: bool)

  • bool is_loop_broken_at_end()

如果true,则在循环循环结束时中断循环以进行转换,即使动画正在循环。


Curve fadein_curve 🔗

  • void set_fadein_curve(value: Curve)

  • Curve get_fadein_curve()

确定如何缓解动画之间的交叉淡入淡出。如果为空,过渡将是线性的。应该是一个单位Curve


float fadein_time = 0.0 🔗

  • void set_fadein_time(value: float)

  • float get_fadein_time()

淡入持续时间。例如,对于5秒长的动画,将其设置为1.0将产生一个从0秒开始到动画期间1秒结束的交叉淡入淡出。

注意:AnimationNodeOneShot在衰落结束后转换当前状态。当AnimationNodeOutput被认为是最上游时,因此fadein_time根据下游增量进行缩放。例如,如果将此值设置为1.0并且将值为2.0AnimationNodeTimeScale链接到下游,则实际流转时长将为0.5秒。


Curve fadeout_curve 🔗

  • void set_fadeout_curve(value: Curve)

  • Curve get_fadeout_curve()

确定如何缓解动画之间的交叉淡入淡出。如果为空,过渡将是线性的。应该是一个单位Curve


float fadeout_time = 0.0 🔗

  • void set_fadeout_time(value: float)

  • float get_fadeout_time()

淡出持续时间。例如,对于5秒长的动画,将其设置为1.0将产生一个交叉淡入淡出,在动画期间从4秒开始,到5秒结束。

注意:AnimationNodeOneShot在衰落结束后转换当前状态。当AnimationNodeOutput被认为是最上游时,因此fadeout_time根据下游增量进行缩放。例如,如果将此值设置为1.0并且将值为2.0AnimationNodeTimeScale链接到下游,则实际流转时长将为0.5秒。


MixMode mix_mode = 0 🔗

混合类型。