AnimationNodeOneShot

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

AnimationNodeBlendTree 中播放一次动画。

描述

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

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

GDScriptC#

  1. # 播放连接到 “shot” 端口的子动画。
  2. animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
  3. # 替代语法(与上述结果相同)。
  4. animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
  5. # 中止连接到 “shot” 端口的子动画。
  6. animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT)
  7. # 替代语法(与上述结果相同)。
  8. animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT
  9. # 使用淡出的方法中止连接到 “shot”端口的子动画。
  10. animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT)
  11. # 替代语法(与上述结果相同)。
  12. animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT
  13. # 获取当前状态(只读)。
  14. animation_tree.get("parameters/OneShot/active"))
  15. # 替代语法(与上述结果相同)。
  16. animation_tree["parameters/OneShot/active"]
  17. # 获取当前内部状态(只读)。
  18. animation_tree.get("parameters/OneShot/internal_active")
  19. # 替代语法(与上述结果相同)。
  20. animation_tree["parameters/OneShot/internal_active"]
  1. // 播放连接到 “shot” 端口的子动画。
  2. animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Fire);
  3. // 中止连接到 “shot” 端口的子动画。
  4. animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Abort);
  5. // 使用淡出的方法中止连接到 “shot”端口的子动画。
  6. animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.FadeOut);
  7. // 获取当前状态(只读)。
  8. animationTree.Get("parameters/OneShot/active");
  9. // 获取当前内部状态(只读)。
  10. animationTree.Get("parameters/OneShot/internal_active");

教程

属性

bool

autorestart

false

float

autorestart_delay

1.0

float

autorestart_random_delay

0.0

bool

break_loop_at_end

false

Curve

fadein_curve

float

fadein_time

0.0

Curve

fadeout_curve

float

fadeout_time

0.0

MixMode

mix_mode

0


枚举

enum OneShotRequest: 🔗

OneShotRequest ONE_SHOT_REQUEST_NONE = 0

请求的默认状态。未完成任何操作。

OneShotRequest ONE_SHOT_REQUEST_FIRE = 1

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

OneShotRequest ONE_SHOT_REQUEST_ABORT = 2

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

OneShotRequest ONE_SHOT_REQUEST_FADE_OUT = 3

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


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()

确定如何缓动动画之间的淡入淡出。如果为空,过渡将是线性的。


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()

确定如何缓动动画之间的淡入淡出。如果为空,过渡将是线性的。


float fadeout_time = 0.0 🔗

  • void set_fadeout_time(value: float)

  • float get_fadeout_time()

淡出的持续时间。例如有一个长度为 5 秒的动画,如果将该属性设置为 1.0,就会生成一个从动画的 4 秒处开始、5 秒处结束的交叉渐变。

注意:**AnimationNodeOneShot** 是在淡入淡出结束后转换当前状态的。将 AnimationNodeOutput 视为最上游时,fadein_time 会根据下游增量进行缩放。例如将该属性设置为 1.0 时,如果下游连接的是一个取值为 2.0AnimationNodeTimeScale,那么实际的处理时间就是 0.5 秒。


MixMode mix_mode = 0 🔗

混合类型。