KiHan状态机架构详解
-–title: KiHan 状态机架构详解(Context / Workflow / Phase / Adapter) tags: [KiHan, 架构, 状态机, Context, Workflow, Phase, Adapter, Boot, Duplicate] created: 2026-09-18 confidence: high source: 源码直读(GameEntry/KHGameFlow.cs、Module/KHGameLevelContext.cs、Module/Workflow/、Module/PhaseAdapter/、Module/Boot/、Module/Duplicate/)-– KiHan 状态机架构详解 本文基于 Others/AIDev/context/framework/state-machine-framework.md 与真实源码对照整理 源码根目录:Assets/Scripts/ 适用:想理解 KiHan...
01-项目基础
01 项目基础返回:[[00-课程索引]] 下一章:[[02-英雄角色与基础框架]] [!info] 资料口径代码内容按课程作者公开的 WarriorRPG 提交历史与最终源码交叉核对。P1、P4 是概念课,没有独立代码提交;示例使用项目后续真实代码说明概念,不代表这些代码在该视频中已经实现。 本章架构目标 建立 UE C++ 项目的 Target → Module → Source 结构。 使用独立功能测试地图,降低后续输入、动画、GAS 和 AI 的验证成本。 理解硬引用、软引用和同步/异步加载的取舍。 P1 Introduction(05:58)类型:课程介绍;没有独立代码提交。 技术路线12345Enhanced Input → Gameplay Tag → ASC → Gameplay AbilityGameplay Ability → Montage / Gameplay Event → Combat ComponentCombat Component → GameplayEffectSpec → AttributeSetAttributeSet →...
00-课程索引
UE5 C++ 高级第三人称 RPG(第一部分) [!info] 笔记范围本系列共 184 个视频,对应原课程前 7 个章节。笔记已用 B 站分集目录、课程作者公开的 WarriorRPG 301 条 Git 提交历史、最终 Source/Config 和当前本地工程交叉核对。B 站未开放字幕,因此这是一套与课程代码演进相匹配的学习笔记,而不是逐字字幕。 内容可信度标记 C++/Config 课:记录实际文件、类、函数、字段、Tag、提交和调用链。 蓝图/资产课:记录提交中真实变更的资产及其与 C++ 的接口契约;无法读取的蓝图内部节点会明确说明,不做臆测。 概览/总结课:整理阶段目标、系统数据流和验收项,没有虚构代码提交。 源码审计:保留公开最终源码中的真实拼写和潜在问题,例如 Enemy.Status.Unbloackable、武器 EndOverlap 委托异常等。 [!warning] 本地工程进度当前 e:\UE_5.4\Warrior 的 C++ 实际进度约到 P16 GAS 基础接入;P17 之后的笔记依据课程作者公开完整源码整理...
02-英雄角色与基础框架
02 英雄角色与基础框架上一章:[[01-项目基础]] 返回:[[00-课程索引]] 下一章:[[03-近战连招系统]] [!info] 阅读说明每节包含课程对应的实际类/函数或资产职责。Content/*.uasset 为二进制,笔记只记录提交历史可以确认的资产关系,不虚构蓝图内部节点。 本章最终调用链123456789BP_BaseGameMode→ BP_HeroCharacter / BP_HeroController→ Camera + Enhanced Input→ UWarriorCharacterAnimInstance / UWarriorHeroAnimInstance→ ASC.InitAbilityActorInfo→ CharacterStartUpData.LoadSynchronous→ GiveAbility→ OnGiven Ability 自动激活→ 生成并注册 Hero Weapon P5 Set Up Hero Character Section Overview(00:46)类型:章节概览,无独立代码提交。 类结构:G...
03-近战连招系统
03 近战连招系统上一章:[[02-英雄角色与基础框架]] 返回:[[00-课程索引]] 下一章:[[04-英雄战斗与反馈UI]] [!info] 本章边界C++ 负责武器注册、输入路由、AbilitySpec 授予/撤销和动画层访问;轻重攻击连招主体位于 Gameplay Ability 与 Montage 蓝图资产。未能从二进制资产验证的节点、变量和 Section 名不会臆造。 总体链路12345Input Action → InputTag → ASC DynamicAbilityTags → Gameplay AbilityGameplay Ability → Montage → Gameplay Event → 装备/连招阶段Weapon Data → Anim Layer + Mapping Context + Default AbilitiesEquip → GiveAbility并保存HandleUnequip → ClearAbility并清空Handle P23 Melee Combo System Section Overview(01:5...
04-英雄战斗与反馈UI
04 英雄战斗与反馈 UI上一章:[[03-近战连招系统]] 返回:[[00-课程索引]] 下一章:[[05-敌人AI]] [!info] 本章重点本章建立完整闭环:碰撞只报告命中,Gameplay Ability 构造伤害 Spec,Execution Calculation 计算数值,AttributeSet 消费元属性,Gameplay Event/Cue 负责受击和表现,UI Component 通过委托推送数据。 战斗主链1234567Montage NotifyState → 开启武器碰撞→ Weapon BeginOverlap → CombatComponent 去重→ Shared.Event.MeleeHit → 攻击 Ability→ Make GameplayEffectSpec → Apply to Target ASC→ GEExecCalc_DamageTaken → DamageTaken Meta Attribute→ AttributeSet::PostGameplayEffectExecute→ CurrentHealth / ...
05-敌人AI
05 敌人 AI上一章:[[04-英雄战斗与反馈UI]] 返回:[[00-课程索引]] 下一章:[[06-英雄战斗能力]] 总体架构1234AI Perception → Blackboard.TargetActor → Behavior Tree→ EQS 选择侧移位置 → Rotate/Move Task→ Activate Ability By Tag → Enemy Gameplay Ability→ Gameplay Tag 状态反向中止 Behavior Tree 分支 P94 Enemy AI Section Overview(02:24)章节概览,无独立提交。AI Controller 只负责感知和环境入口;行为树负责编排;EQS 负责选位;GAS 负责攻击与状态。 P95 Preparing Enemy For Combat(05:07)提交:29abfad PrearingEnemyForCombatDone;主要蓝图准备。 本提交只修改敌人蓝图和测试地图,没有新增 C++。它复用 P48 已建立的 AWarriorEnemyCharacter 基础配置: ...
06-英雄战斗能力
06 英雄战斗能力上一章:[[05-敌人AI]] 返回:[[00-课程索引]] 下一章:[[07-远程敌人]] [!info] 实现边界翻滚、格挡、完美格挡、反击和英雄死亡的大部分流程在 Gameplay Ability、GE、Montage 与 Gameplay Cue 资产中;C++ 提供输入语义、方向算法、命中分流、Target Lock 和自定义 Ability Task。下文明确区分二者。 本章系统链路123456Ability Input → ASC├─ Roll Ability → 位移/状态/声音├─ HitReact Event → 方向计算 → 对应受击动画├─ Block Ability → SuccessfulBlock Event → Perfect Block/Counter├─ TargetLock Ability → Trace/Widget/TickTask/切换目标└─ Dead Tag → Hero Death Ability P127 Hero Combat Abilities Section Overview(02:34)提交:41...
C++
仿函数仿函数 = 函数对象(Function Object)= 重载了 operator() 的类(或结构体)。它”长得像函数”,但本质是对象。 12345678class Add{public: int operator()(int a,int b)const{ return a + b; }};Add add;add(3,4); //// 等价于 add.operator()(3, 4) 仿函数可以使用成员变量保存状态 12345678class Counter { int count = 0;public: void operator()() { ++count; cout << "第 " << count << " 次调用" << endl; }}; 本文从 LearnByCompany 原始文档 自动同步。
07-远程敌人
07 远程敌人上一章:[[06-英雄战斗能力]] 返回:[[00-课程索引]] 核心架构12345BT_Glacer → EQS寻找射击位置 → 激活 Enemy.Ability.Ranged→ Projectile Ability 播放 Montage→ Shared.Event.SpawnProjectile→ Spawn AWarriorProjectileBase 并注入 EffectSpec→ Hit/Overlap → 格挡分流或 Apply Spec → HitReact P167 Ranged Enemy Section Overview(01:20)提交:a7fddbf ReadyForNextSection;章节概览。目标是复用现有 Enemy、AI、GAS 和 Damage 管线扩展 Glacer,而不是复制一套远程战斗框架。 P168 Ranged Enemy Starting Weapon(07:39)提交:30487a8 StartingWeaponStatsDone_NoCode;资产/Data Asset 课。 资产:BP_Glacer...