2026.10.14第一人称视角:控制旋转是累积量
控制旋转是累积量:手搓第一人称的「偏头 / 回头 / 摇晃」 📌 AI 声明:本文由 **Claude(Anthropic)**代笔——素材是我真实的项目踩坑记录与引擎源码核查,成稿由 AI 整理;技术结论均经过实际编译验证,如与你的环境有出入,以编辑器里的实际表现为准,发现错漏欢迎指出。 我在做一个第一人称的青鬼式恐怖游戏。视角上要三样东西: 按住 Q / E = 偏头 —— 以腰为轴转,头会真的平移出去,能看到墙角后面,不是”画面歪一下”; 跑步时按住大写键 + Q / E = 回头看,最多 135°(脖子转不到正后方); 跑 / 走 / 蹲走各有不同力度的镜头摇晃。 听起来都像”在相机上加一个偏移量”。做完之后我攒了六个坑,它们表面上是六个问题(画面歪不动、视角越加越多、按 W 朝背后跑、按着不动视角也会过冲、蹲下镜头横着窜、甩鼠标人偏一帧)—— 但最后全都指向同一句话: 第一人称的”头”不在相机组件上 —— 相机不存朝向,它每帧去读一个叫「控制旋转」的累积器;而所有”每帧把某个量贴上...
2026.9.13第一人称恐怖游戏:走廊
《走廊》:UE5 纯蓝图循环恐怖游戏技术全景 第一人称恐怖游戏 Demo:玩家在一条 C 形走廊里一圈一圈地走,每穿过一次出口门,世界就换一个”版本”——而玩家难以察觉切换发生的瞬间。 本文是项目的技术全景复盘:架构如何演进到 v3、无缝传送的算法与落地、”版本切换”为什么可以完全无感、八个版本的内容系统如何组织、双结局如何从一通电话里长出来——以及支撑这一切的关卡设计铁律与踩坑记录。 技术栈:UE 5.8 · 纯蓝图 · 单持久关卡 · 无 AI 敌人 · 纯环境恐怖。 一、项目定位:核心体验本身就是一个技术命题玩法:玩家在一条循环的走廊中行走,每圈走廊内容都会变化,异常逐渐升级,最终走向好结局或坏结局。 核心体验:玩家明知走廊在循环,但无法判断循环(版本切换)发生的精确位置。 这句话是整个项目所有技术决策的出发点。做”循环走廊”不难,难的是”循环不可感知”——如果传送瞬间画面跳一下、方向偏一度、光照变一档,玩家立刻学会”传送点在门后两米”,整个游戏的恐怖感当场破产。所以这不是一个”先做功能再打磨表现”的项目,而是先定下”无痕”这个验收标准,再反向推导架构的项目。 几个从第...
无限循环走廊实现
UE5 蓝图实现「无缝传送」:无限循环走廊的技术解剖 一个第一人称恐怖游戏 Demo 的核心机制:玩家穿过出口门后方的传送盒,被瞬间送回走廊起点——画面零跳变、速度不中断、方向不改变,同时整个世界在玩家眼皮底下完成一次”版本切换”。 本文拆解这套纯蓝图实现的完整方案:坐标重映射算法、蓝图节点链、与版本切换的同帧联动,以及让”无缝”真正成立的三个关卡设计条件。 一、问题:传送为什么容易穿帮这个游戏的核心体验是无限循环走廊:玩家沿着 C 形走廊走到尽头,开一扇门,走进去——发现自己回到了起点,但走廊里的内容已经变了。 普通的传送实现是 SetActorLocation——直接把人挪到目标点。这在一款要求”直行无感”的恐怖游戏里是致命的,因为传送瞬间有五件事会暴露它: # 执行要求 穿帮方式 1 视角连续 镜头跳变/闪帧,玩家立刻意识到”被传送了” 2 方向一致 传送后朝向不对:玩家向前走,落地却面朝墙 3 运动保持 速度清零或方向突变:正在走的人落地瞬间”顿一下” 4 光照一致 传送两侧明暗/色温不同,眼前一黑一亮 5 音频连续 环...
2026.9.4纯蓝图FPS项目总结
FPS 波次生存 Demo:UE5.8 纯蓝图项目的技术复盘 用纯蓝图完成一个 FPS 生存玩法闭环:射击 → 受击反馈 → 死亡流程 → 波次生存 → 灯光信号 → 击杀掉落。本文是技术向复盘,写给同样在用蓝图做游戏的人。 技术栈UE 5.8,零 C++ 纯蓝图。用到的系统:Enhanced Input、Animation Montage + AnimNotify、MetaSound、Timeline、UMG、AI MoveTo + NavMesh、Sphere Trigger。所有自研逻辑在 Content/Code 下按 Enemy / Pickup / Player / Weapon 分层;资产来自商城包。 十个技术亮点1. 手搓 FPS 相机臂(Enhanced Input + 每帧同步控制旋转)没有用现成的 Character 视角,而是自己搭了第一人称架构:七个 IA(移动/视角/奔跑/瞄准/开火/换弹/重开),IA_Look 的 X→AddControllerYawInpu...
2026.8.16纯蓝图FPS学习笔记
UE5 纯蓝图 FPS 实战笔记:命中判定、AI 追击与带冲量的布娃娃死亡 一个用 UE 5.8 纯蓝图(零 C++)完成的 FPS 练习项目。本文梳理三个核心系统的实现思路:武器命中判定、Whisper AI 追击,以及带冲量的布娃娃死亡效果。文中的蓝图节点名均可在编辑器里直接搜索复现。 一、先看整体架构项目逻辑全部放在 Content/Code/ 下,类关系非常简单: 1234BP_FPSPlayer (Character) ──BI_Fire接口──▶ BP_WeaponBase (Actor) ──继承──▶ BP_VIRTUS │ │ │ 射线检测 │ 命中后 Cast 并调用 └──────────────────▶ BP_Whisper (Character, AI 敌人) ◀──────────────┘ 三个系统围绕”一颗子弹”串联起来:扣下扳机 → 接口调用开火 →...
2026.7.28笔记
State Tree State Tree 的层级结构:Root → 守卫检查(Phase/Stagger/Death)→ 战斗行为(TacticalPause → StanceSwitch → AttackExecution → DefaultMovement),比 Behavior Tree 更接近状态机思维 State 与 Task 是分离的——画了树 ≠ 挂了任务,每个 State 的 Details 面板必须显式添加 Task Transition 条件可能静默卡死整棵树——State Tree 是线性流转,前面的 Transition 返回FALSE,后面全部不可达 STT(StateTreeTask)每次重入都新建实例——实例变量无法跨循环保持状态,这是和 Behavior Tree的关键差异 State Tree 安全限制:禁止直接引用关卡 Actor,必须用 GetAllActorsOfClass 或 EQS 绕行 数据驱动战斗设计Boss 系统采用完全数据驱动的架构。每个攻击、每个姿态都是独立的 DataAsset。 DA_Bo...
蓝图接口与事件分发器
蓝图接口:蓝图接口是虚幻引擎蓝图通信中非常重要且优雅的一环。它解决了一个核心痛点:如何让不同类型的对象,对同一个指令做出各自不同的反应,而发送指令的一方无需关心对方具体是谁。 核心概念:什么是蓝图接口?简单说,蓝图接口是一份函数声明列表,只定义函数的名称、输入和输出参数,没有任何函数体实现。 你可以把它理解为一个“合同”或“协议”: 接口本身说:“任何签署这个合同的类,都必须承诺可以实现一个叫‘打开’的函数。” 实现接口的类说:“我签署合同,并给出我自己的‘打开’方式。比如,门会旋转,宝箱会播放动画,灯会发光。” 它的关键特性在于,调用方无需知道对象的具体类型,只要知道它实现了某个接口,就能直接调用该接口的函数,并触发对象自己独特的实现。 为什么用它?两大核心作用: 解耦类型,实现通用交互 这是最主要的作用。比如“可交互”系统,玩家按下E键时,角色向前发射一条射线,检测到的物体可能千差万别。如果不使用接口,你可能会这么写: 12345678// 伪代码:糟糕的写法如果 (被击中物体 是 门) {调用“开门”函数} 否则 如果 (被击中物体 是 宝箱) ...
2026.7.17笔记
角色死亡布娃娃效果核心思路: 将角色从“动画驱动”瞬间切换为“物理模拟驱动”。关键点在于关闭动画对骨骼的控制权,让物理引擎接管,同时切断摄像机碰撞和角色移动逻辑。、 实现步骤(蓝图): 创建死亡事件(BP_Character) 在角色蓝图事件图表中新建自定义事件,命名为 Dead。 拖出角色的网格体(Mesh)引用,调用 Set Simulate Physics 节点,将 Simulate 勾选为 True。原理:此操作会激活物理资产(Physics Asset),让骨骼按物理规则运动。 触发死亡(BP_Sphere) 在关卡中的机关蓝图(如 BP_Sphere)里,给球形碰撞体添加 On Component Begin Overlap 事件。 从 Other Actor 引脚拉出 Cast To BP_Character(类型转换),确保触碰的是角色。 转换成功后,调用角色蓝图中的自定义事件 Dead。扩展:可在此处添加伤害计算逻辑,或替换为武器碰撞/射线检测来触发。 配置物理资产(Physics Asset) 在角色网格体的细节面板中,绑定物理资产(P...
第三人称角色动画
配置角色运动动画在UE5里为第三人称角色制作动画,核心是理解动画蓝图(Animation Blueprint)。它负责根据角色的状态(如速度、是否在空中)来决定播放哪段动画,并让过渡流畅自然。 简单来说,整套系统的工作流通常包含这几个关键部分: 创建混合空间,在水平坐标中配置好角色的移动速度,动画平滑。将移动资产添加到混合空间中。混合空间之所以叫混合空间,是因为它能把多个动画混合在一起,组成一套完整的角色动画,让它们之间能够进行一个丝滑的过渡。 创建动画蓝图,将混合空间添加到动画蓝图中。通过事件图表来实施将速度传递进混合空间播放器,从而播放动画。 在获取pawn拥有者后添加获取移动组件,因为角色的速度是存放在这里的。在获取一个速度(会记录角色往哪个方向移动),为了把这个方向过滤掉,所以还要添加一个获取向量长度的节点(XY),并将输出的参数保存起来,创建一个变量speed。 将获取到的速度传递给混合空间播放器,从而完成配置。 完成后记得将动画蓝图与角色绑定。 角色跳跃动画跳跃不是单纯地播放动画,而是由“起跳 ➡ 空中 ➡ 着陆”三个状态组成的连贯动作序列。 基础...
常用流程控制节点
流程控制节点是用于控制蓝图执行顺序和逻辑分支的节点,就像编程中的if—else语句和循环。 分支节点在UE5蓝图中,分支(Branch)节点就是if判断——根据条件决定程序走那条路。 输入:Condition(布尔值,True/False) 输出:True(条件为真执行)和False(条件为假执行) Flip Flop在UE5蓝图中,Flip Flop(触发器)节点是一个交替开关——每次执行它,都会在A和B两个输出之间来回切换。 第一次执行:走A 第二次执行:走B 第三次执行:走A(循环往复进行……) 如设置控制门的开关,或角色的下蹲。 Do Once在UE5蓝图中,Do Once节点的作用就是只执行一次,只有第一次会触发执行,后续调用全部被忽视。 首次执行:走Completed输出,同时内部的“锁”被关上。 后续执行:什么都不走,直接跳过。 重置:调用Reset输入引脚可以重新解锁,让下一次执行生效。 序列在UE5蓝图中,序列节点的作用是按照顺序执行多个引脚(可添加)。 顺序执行:顾名思义。 全部执行:每个引脚都会走一遍。 同步执行:虽然引脚有编号,但引...










