当前位置: 首页 > news >正文

04-UE蓝图节点基本结构讲解

UE蓝图节点基本结构”的内容可总结为以下4个核心部分:


1. 节点的3大基本组件

  • 标题(Header)
    显示节点名称,颜色代表类型(如事件→红色,函数→蓝色,变量→绿色)。
  • 输入/输出引脚(Pins)
    • 左侧:输入引脚(触发逻辑或接收数据)。
    • 右侧:输出引脚(执行后续逻辑或返回数据)。
    • 数据类型:引脚颜色区分(如红色=布尔,蓝色=整数,粉色=字符串)。
  • 折叠按钮(Collapse Arrow)
    可展开/隐藏节点的详细参数(如函数的输入值)。

2. 节点的4种核心类型

类型图标/颜色作用示例
事件节点红色标题响应游戏事件(如按键、碰撞)BeginPlayTick
函数节点蓝色标题执行预定义功能Print String
变量节点绿色标题存储/读取数据布尔值isAlive
流程控制节点蓝色(菱形图标)控制逻辑分支(如条件判断)BranchForLoop

3. 引脚的连接规则

  • 执行引脚(白色三角形):必须按顺序连接(如事件→函数→后续逻辑)。
  • 数据引脚(圆形):类型必须匹配(如整数引脚不能连接布尔值)。
  • 多引脚兼容性:部分引脚可自动转换(如整数→浮点数)。

4. 节点的编辑技巧

  • 右键搜索:输入关键词快速添加节点(如输入“print”找到Print String)。
  • 拖动连接:从引脚拖拽生成兼容节点(如从布尔引脚拖出自动生成Branch)。
  • 注释框(Comment):选中节点按C键添加注释,分组整理逻辑。

一句话总结

蓝图节点=事件触发→数据输入→函数处理→结果输出,通过颜色/形状快速识别类型,严格遵循引脚类型匹配规则。

虚幻引擎的蓝图(Blueprint)系统通过节点(Node)构建逻辑,每个节点代表一个函数、事件、变量或流程控制单元。以下从节点类型、引脚系统、创建方式、执行流程、自定义节点五个方面进行详细讲解。


1. 节点类型与功能

类型作用常见示例
事件节点由引擎自动触发的起点(如游戏开始、碰撞触发)Event BeginPlayOnComponentBeginOverlap
函数节点执行特定操作(如移动角色、播放动画)Launch CharacterPrint String
变量节点存储或读取数据(如整数、布尔值、对象引用)Get Player PawnSet Max Walk Speed
流程控制节点控制逻辑分支(如条件判断、循环)BranchForEachLoopDelay
异步节点执行耗时操作(如延迟、网络请求)且不会阻塞主线程DelayAsync Load Asset

2. 引脚系统(Pins)

  • 执行引脚(Exec):白色箭头,表示执行顺序(从左到右)。
  • 数据引脚:彩色圆形,传输变量(如浮点数、向量)。
    • 输入引脚:节点左侧(如BranchCondition)。
    • 输出引脚:节点右侧(如Get Player Pawn返回的Pawn对象)。
  • 特殊引脚
    • 委托引脚:绑定事件(如OnCompleted)。
    • 枚举扩展引脚:将枚举值拆分为多个执行引脚(如SetVisualFidelity)。

3. 创建与连接节点

创建方式
  1. 右键菜单:在图表空白处右键,搜索节点名称(如Print String)。
  2. 拖动引脚:从现有节点的输出引脚拖动,自动生成相关节点(如从Character引用拖动生成Set Max Walk Speed)。
  3. 快捷键:按B键快速创建Branch节点,按O键创建Delay节点。
连接规则
  • 执行流:必须连接白色执行引脚,否则逻辑中断。
  • 数据类型匹配:颜色相同的引脚才能连接(如红色浮点输出只能接红色浮点输入)。
  • 上下文敏感:右键菜单默认开启Context Sensitive,仅显示与当前选中节点相关的选项。

4. 节点执行流程(运行时)

  1. 编译:蓝图被编译为字节码(存储在.uasset文件中)。
  2. 虚拟机执行:运行时通过ProcessEventProcessLocalScriptFunction逐条执行字节码。
  3. 异步任务:异步节点的Activate函数在后台线程执行,完成后触发委托回调。

示例:按下键盘时,InputAction Jump事件节点触发,执行Launch Character函数使角色跳跃。


5. 自定义节点(高级)

同步节点
  • 继承UBlueprintFunctionLibrary,用BlueprintCallable标记静态函数:
    UFUNCTION(BlueprintCallable, meta=(DisplayName="My Custom Node"))
    static float MyFunction(float Input);
    
    参数自动转为输入引脚,返回值转为输出引脚。
异步节点
  • 继承UBlueprintAsyncActionBase,实现Activate函数:
    UCLASS()
    class UMyAsyncNode : public UBlueprintAsyncActionBase {UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly=true))static UMyAsyncNode* MyAsyncTask();virtual void Activate() override;
    };
    
    需绑定委托以通知完成事件。
高级控制
  • 通过UK2Node_BaseAsyncTask自定义节点颜色、提示、引脚布局(如UK2Node_PlayMontage)。

实战示例:弹跳平台逻辑

  1. 事件节点OnComponentBeginOverlap(当玩家进入触发器)。
  2. 条件判断Branch节点检查重叠的Actor是否为玩家。
  3. 执行动作Launch Character节点给玩家施加向上的速度。

(PS:该系列文章为笔者学习UE过程中所遇问题的AI解答,仅作参考)

http://www.dtcms.com/a/290943.html

相关文章:

  • 人形机器人CMU-ASAP算法理解
  • 安全告警研判流程
  • JAVA后端开发—— JWT(JSON Web Token)实践
  • Linux system-timesyncd时间同步机制详解
  • MTSC2025参会感悟:大模型 + CV 重构全终端 UI 检测技术体系
  • 可变形卷积神经网络详解:原理、API与实战
  • 机器学习初学者理论初解
  • 深入浅出:从最小核心到完整架构,全面解析5G用户面协议栈
  • Three.js 全景图(Equirectangular Texture)教程:从加载到球面映射
  • 码分多路复用(CDM)中芯片序列正交和规格化内积的具体含义
  • 耐看点播网页入口 - 追最新电视剧,看热门电影|官网
  • 智能控制权回归:人机协创时代的极简主义编码革命
  • 设计系统搭建:大型 Pad 应用的协同开发解决方案
  • 元宇宙与DAO自治:去中心化治理的数字文明实践
  • FREE论文精读:更快更好的无数据元学习框架《FREE: Faster and Better Data-Free Meta-Learning》
  • PHP:历经岁月仍熠熠生辉的编程语言
  • 芯谷科技--固定电压基准双运算放大器D4310
  • 定制化进销存软件精选:适配企业需求,提升运营效能
  • 项目动不动起不来,报错找不到或无法加载主类
  • 基于ECharts的电商销售可视化系统(数据预测、WebsSocket实时聊天、ECharts图形化分析、缓存)
  • 【一句话或一张图讲清楚】系列——AXI总线
  • 复习博客:JVM
  • 【CNN】卷积神经网络- part1
  • vLLM 基准测试与性能测试框架:全面解析LLM推理性能评估体系
  • 中断事件触发时CPU与NVIC的协作机制详解
  • 20250720题解
  • 4N80-ASEMI开关电源领域专用4N80
  • mcu中的调试接口是什么?
  • repmgr+pgbouncer实现对业务透明的高可用切换
  • Apache Ignite Binary Object Restrictions