中间节点
中间节点通常用于蓝图中的逻辑处理,数值计算等操作,处理数据逻辑的输入,同时输出数据或逻辑
计算
加
将两个数值相加,输出结果。
输入:
- A:第一个数值
- B:第二个数值
输出:
- A + B:两个数值的和
减
将两个数值相减,输出结果。
输入:
- A:被减数
- B:减数
输出:
- A - B:两个数值的差
乘
将两个数值相乘,输出结果。
输入:
- A:第一个数值
- B:第二个数值
输出:
- A x B:两个数值的积
除
将两个数值相除,输出结果。
输入:
- A:被除数
- B:除数
输出:
- A ÷ B:两个数值的商
长度
计算向量的长度(模长),基于勾股定理计算。
输入:
- x:x坐标
- y:y坐标
输出:
- 长度:向量(x, y)的长度,计算公式为 √(x² + y²)
转换
取整数
将浮点数转换为整数,支持三种取整方式。
输入:
- 向下取整:输入数值,使用Math.floor向下取整
- 向上取整:输入数值,使用Math.ceil向上取整
- 四舍五入:输入数值,使用Math.round四舍五入
输出:
- 输出:取整后的结果
说明: 节点会优先使用第一个有值的输入,如果第一个输入有值则使用向下取整,否则检查第二个输入,以此类推。
平方根
计算数值的平方根。
输入:
- 输入:需要开平方的数值
输出:
- 开平方:输入值的平方根
绝对值
计算数值的绝对值。
输入:
- 输入:需要计算绝对值的数值
输出:
- 绝对值:输入值的绝对值(始终为正数或0)
正负反转
将数值的正负号反转。
输入:
- 输入:需要反转的数值
输出:
- 输出:输入值乘以-1的结果
角度
角度差
计算两个角度或向量之间的角度差。
输入:
- 角度A:第一个角度或向量
- 角度B:第二个角度或向量
输出:
- 输出:两个角度之间的差值(0-180度之间)
属性:
- 输入的类型:可选择"角度"或"向量"
- 角度模式:直接比较两个角度值,返回较小的角度差
- 向量模式:输入为包含x和y属性的对象,计算两个向量之间的夹角
将位置转换为角度
根据x、y坐标计算对应的角度值。
输入:
- x坐标:x轴坐标
- y坐标:y轴坐标
输出:
- 角度:从原点指向(x, y)的角度值(0-360度)
说明: 使用atan2函数计算角度,返回角度范围在-180到180度之间。
将角度转换为位置
根据角度和斜边长计算对应的x、y坐标。
输入:
- 角度:角度值(度)
- 斜边长:从原点到目标点的距离
输出:
- x长:x轴方向的长度
- y长:y轴方向的长度
说明: 使用三角函数cos和sin计算坐标值。
比较
等于
判断两个数值是否相等。
输入:
- A:第一个数值
- B:第二个数值
输出:
- A == B?:如果A等于B输出1,否则输出0
小于
判断第一个数值是否小于第二个数值。
输入:
- A:第一个数值
- B:第二个数值
输出:
- A < B?:如果A小于B输出1,否则输出0
大于
判断第一个数值是否大于第二个数值。
输入:
- A:第一个数值
- B:第二个数值
输出:
- A > B?:如果A大于B输出1,否则输出0
范围内
判断数值B是否在A和C的范围内。
输入:
- A:最小值(可通过属性设置)
- B:要判断的数值
- C:最大值(可通过属性设置)
输出:
- 结果:如果B在范围内输出1,否则输出0
属性:
- 最小值A:范围的最小值
- 最大值C:范围的最大值
- A和B比较:选择"<"或"<="
- B和C比较:选择"<"或"<="
说明: 节点标题会根据比较符号动态显示,例如"A<B<=C"。
逻辑
全部正确
逻辑与运算,所有输入都为真(非0且非undefined)时输出1。
输入:
- A:第一个输入值
- B:第二个输入值
输出:
- 结果:只有当A和B都为真时输出1,否则输出0
说明: 如果任意输入为0或undefined,输出为0。
任意一个正确
逻辑或运算,任意一个输入为真时输出1。
输入:
- A:第一个输入值
- B:第二个输入值
- C:第三个输入值(可选)
输出:
- 结果:如果A、B、C中任意一个为真(非0且非undefined)时输出1,否则输出0
全部触发
事件逻辑与,所有输入事件都触发后才输出事件。
输入:
- 触发_0:第一个触发事件
- 触发_1:第二个触发事件
- ...(可动态添加更多输入)
输出:
- 触发:当所有输入事件都触发后,输出触发事件
属性:
- 触发后重置:如果开启,触发后自动重置状态,可以再次触发
说明: 节点会记录每个输入是否已触发,当所有输入都触发后才会输出。
任意触发
事件逻辑或,任意一个输入事件触发时立即输出事件。
输入:
- 触发_0:第一个触发事件
- 触发_1:第二个触发事件
- ...(可动态添加更多输入)
输出:
- 触发:任意输入事件触发时,立即输出触发事件
说明: 节点会自动检测连接的节点,动态添加输入接口。
反转结果
逻辑非运算,将输入的真假值反转。
输入:
- A:输入值
输出:
- 结果:如果A为真(非0)输出0,如果A为假(0或undefined)输出1
变化
随机整数
生成随机整数。
输入:
- 随机范围:随机数的最大值(可选,默认为10000000)
输出:
- 结果:生成的随机整数(0到输入值-1之间)
属性:
- 模式:选择"仅一次"或"每次随机"
- 仅一次:节点首次执行时生成随机数,之后保持不变
- 每次随机:每次执行都生成新的随机数
延迟触发
延迟指定时间后触发事件。
输入:
- 开始:触发延迟的输入事件
- time_in_s:延迟时间(秒,可通过属性设置)
输出:
- 结束时:延迟时间到达后触发的输出事件
属性:
- 秒:延迟的秒数(支持小数)
说明: 如果延迟时间为0,表示等待1帧后立即触发。可以同时处理多个延迟任务。
间隔触发
每隔指定时间间隔触发一次事件。
输入:
- interval:间隔时间(毫秒,可通过属性设置)
输出:
- 触发:每隔指定时间触发一次
属性:
- 毫秒:间隔的毫秒数
说明: 节点启动后会自动开始计时,每隔指定时间触发一次。节点标题会显示当前的间隔时间。
计数
计数器,可以增加、减少或重置数值。
输入:
- 开始值:计数器的初始值(可通过属性设置)
- 增加:触发增加计数的事件
- 减少:触发减少计数的事件
- 重置:触发重置计数的事件
输出:
- 数值:当前的计数值
- 变化:计数值变化时触发的事件
属性:
- 开始值:计数器的初始值
- 模式:选择计数模式
- 无限制:可以无限增加或减少
- 范围限制:限制在最小值和最大值之间
- 循环:超过最大值时回到最小值
- 来回:在最小值和最大值之间来回变化
- 最小值:计数的最小值(模式为"无限制"时禁用)
- 最大值:计数的最大值(模式为"无限制"时禁用)
- 步进模式:选择"乘以时间"或"不乘以时间"
- 乘以时间:步进值会根据时间变化,适合连续计数
- 不乘以时间:每次触发固定增加或减少步进值
- 步进数值:每次增加或减少的数值
说明: 在"来回"模式下,计数器到达边界时会自动改变方向。
标记状态
用于标记和存储一个状态值,可以在不同节点间共享。
输入:
- 值:要设置的状态值
- 修改:触发修改状态的事件
输出:
- 输出:当前的状态值
属性:
- 状态名称:自定义状态的名称(模式为"自定义"时使用)
- 初始值:状态的初始值
- 状态权限:选择状态的存储范围
- 仅当前分镜:只在当前蓝图内有效
- 所有分镜:在所有分镜间共享
- Window:全局有效
- 模式:选择预定义状态或自定义状态
- 自定义:使用自定义状态名称
- 动画是否播放中、是否不可交互、游戏是否开始等:预定义的状态
- 初始化时将自定义状态值赋值:开启后,启动时自动将初始值赋给状态
说明: 节点标题会显示当前的状态名称。通过"修改"事件可以更新状态值。
数据结构
遍历对象或数组,每次循环输出一个键值对。
输入:
- 挂载:要遍历的对象或数组
输出:
- key:当前项的键(对象)或索引(数组)
- value:当前项的值
- 触发:每次循环时触发的事件
说明:
- 如果输入是数组,会遍历每个元素,key为索引
- 如果输入是对象,会遍历每个属性,key为属性名
- 每次循环都会触发一次输出事件
对象取值
从对象中获取指定属性的值。
输入:
- obj:要取值的对象
输出:
- property:指定属性的值
属性:
- 输入key:要获取的属性名称
说明: 节点标题在折叠状态下会显示为"获取.[属性名]"。
数组取值
从数组或字符串中获取指定索引的值。
输入:
- array:要取值的数组、表格或字符串
- index:索引值(可通过属性设置)
输出:
- value:指定索引的值
属性:
- index:索引值(从0开始)
说明: 节点标题在折叠状态下会显示为"获取.[索引]"。如果索引为小数,会自动向下取整。
工具
无线传送发射
向所有监听该事件的节点发送数据和事件,实现无线连接。
输入:
- 附带值:要发送的数据
- 发送:触发发送的事件
属性:
- 发送事件:事件的名称标识
说明: 节点会将附带值发送给所有监听相同事件名称的"无线传送接收"节点。节点标题在折叠状态下会显示为"发送事件.[事件名]"。
无线传送接收
接收来自"无线传送发射"节点发送的数据和事件。
输出:
- 接收值:接收到的数据
- 接收:接收到数据时触发的事件
属性:
- 接收事件:要监听的事件名称(需与发射节点的事件名称一致)
说明: 节点会监听指定名称的事件,当有对应的发射节点发送数据时,会输出接收到的值和触发事件。节点标题在折叠状态下会显示为"接收事件.[事件名]"。
输出逻辑线
根据输入值选择触发不同的输出接口。
输入:
- 输入值:用于选择输出接口的数值
- 触发:触发选择的事件
输出:
- output_0:当输入值为0时触发
- output_1:当输入值为1时触发
- ...(可动态添加更多输出)
说明: 输入值会被转换为整数,然后触发对应索引的输出接口。如果输入值超出输出接口数量,则不会触发任何输出。
动态取值
动态获取引用节点的属性值。
输入:
- 引用节点:要获取属性的节点(类型为lgraphNode)
输出:
- 动态输出:根据引用节点的属性自动生成输出接口
说明: 节点会自动检测引用节点的所有属性,为每个属性创建一个输出接口。当引用节点改变时,输出接口会自动更新。
动态赋值
动态设置引用节点的属性值。
输入:
- 引用节点:要设置属性的节点(类型为lgraphNode)
- 触发赋值:触发赋值的事件
- 动态输入:根据引用节点的属性自动生成输入接口
说明: 节点会自动检测引用节点的所有属性,为每个属性创建一个输入接口。触发赋值时,会将所有输入的值赋给引用节点的对应属性。
js文本
直接执行JavaScript代码片段。
输入:
- 输入参数:代码中可以使用的输入值(变量名为valueA)
输出:
- 输出结果:代码执行后的输出值(变量名为valueB)
属性:
- 执行代码片段:要执行的JavaScript代码
说明:
- 代码中可以使用变量valueA作为输入值
- 代码执行后,变量valueB的值会作为输出
- 代码执行错误会在控制台显示警告,不会中断程序运行
蓝图
分支蓝图
用于创建子蓝图,实现逻辑的模块化和复用。
说明: 分支蓝图允许将复杂的逻辑封装成独立的子蓝图,通过输入和输出接口与主蓝图交互。
输入
分支蓝图的输入接口,用于接收来自主蓝图的数据。
说明: 在分支蓝图内部,可以通过输入节点获取主蓝图传入的数据。
输出
分支蓝图的输出接口,用于向主蓝图返回数据或触发事件。
说明: 在分支蓝图内部,可以通过输出节点向主蓝图返回数据或触发事件。