Generic Game System 能帮助你构建什么
Generic Game System 为需要响应式特效、状态驱动相机、可组合 CommonUI、本地玩家设置、Smart Object 交互和面向网络布娃娃行为的项目,提供模块化玩法基础。
每个模块都可以围绕已有项目架构独立采用。插件提供可复用的运行时契约和扩展点,而角色、资产、游戏规则、UI 美术、动画与表现仍由项目自己掌控。
配套项目中的现成内容
功能列表说明的是插件模块提供的能力契约;当前 GenericGame 项目还包含一组规模可观的项目资产示例。比如,相机目录里有第三人称与 ADS 模式,Effects 目录里有脚步 Anim Modifier、Notifies 和多套效果库,Interaction 目录里有 Ability、Targeting Preset 与提示 Widget,Settings/UI 目录里有 Provider、菜单、布局、HUD 和主题。这些项目资产不在代码插件的 Content 中。完整路径和发行边界见配套项目内容与示例资产。
可以构建的玩法模式
- 随表面变化的脚步、落地反馈、受击特效和技能反馈
- 在探索、瞄准、交互或其他项目状态间切换的第三人称视角
- HUD 内容、模态流程、菜单,以及适配移动端输入的 UI
- 支持应用和取消的画面、音量、输入、辅助功能与语言偏好菜单
- 由 Smart Object 驱动的终端、门、工作站、拾取物或上下文世界交互
- 保持服务器权威并同步远端表现的多人布娃娃与恢复行为
上下文感知的视觉与音频反馈
一次创建可复用的反馈规则,再由玩法提供上下文。这能避免在 Actor 和技能之间重复编写表面检测、标签逻辑与效果生成。
- 让效果匹配当前情境。 上下文特效库会将 Gameplay Tags 解析为 Niagara 与音频播放;同一组规则可服务不同表面、状态或事件类型。
- 将物理表面映射为上下文标签。 组件可以将命中结果的物理表面转成上下文标签,并在缺少映射时使用配置的回退表面标签。
- 在运行时调整反馈而不改写调用方。 组件可更新当前上下文和上下文特效库集合;可选的标签提供者还能提供拥有 Actor 的实时玩法状态。
随玩法状态变化的相机模式
用可复用的相机模式组织视角行为。项目可以选择或替换相机模式,混合输出由模式栈统一处理。
- 平滑切换玩法视角。 通过相机组件推入项目定义的相机模式或默认模式,并可读取顶层模式的标签和混合权重,用于协调 UI 或其他玩法逻辑。
- 构建能处理近距离几何体的第三人称视角。 可扩展的穿透规避模式提供碰撞检测、预测式规避、混合时间和可配置探针。项目自行实现视角计算,插件不附带开箱即用的第三人称相机。
- 自定义模式决策来源。 每帧相机模式委托可让视角目标按项目状态选择合适模式,而无需替换组件或模式栈。
CommonUI 组合与玩法扩展
把 UI 构建成可扩展的布局、层、操作和扩展点,使其能随游戏成长。这让团队不必把每个玩法功能直接硬连到一个根控件上。
- 在布局预留的位置添加玩法 UI。 可向带标签的扩展点注册内容,并指定上下文对象、优先级、允许的数据类以及精确或部分标签匹配;功能结束时可通过句柄移除。
- 组织可复用的界面流程。 UI Policy、布局、可激活控件、模态类型与异步 UI 操作支持由项目掌控的 HUD、菜单、分层内容和模态展示。
- 适配不同输入界面。 UI 模块提供操作控件、模拟输入控件和摇杆控件,项目可将它们整合进自己的 CommonUI 表现层。
本地玩家设置与可复用菜单
把设置数据、保存逻辑和界面组织在同一条流程中,减少每个项目重复实现设置菜单的工作。
- 围绕本地玩家组装设置。 Definition 与启动 Provider 为本地玩家 Registry 提供 Collection 和设置值;编辑条件与过滤器控制可用性和展示。
- 从常见偏好开始。 Video、Audio、Input、Accessibility 和 Language Provider 提供可复用设置;显示器、分辨率、亮度与整体画质有专用值类型,项目可以选择展示哪些 Video 行。
- 让玩家应用或丢弃修改。 动态 Accessor 更新其后端值;Apply 提交并保存,Cancel 恢复已跟踪的基准值。存在未提交更改时关闭设置菜单,会取消这些更改。
- 把偏好连接到实际玩法。 Shared 设置保存本地玩家偏好。音量、灵敏度、字幕或辅助功能如何作用于项目系统,由项目实现;提供设置行不等于自动实现相应系统。
- 复用界面条目。 CommonUI 设置菜单与 Panel 支持离散、标量、Action 和导航条目,并可选配详情区与顶层 Tab。
- 增加项目专属选项。 自定义 Provider、设置值、数据源和条件,可在复用 Registry 与修改跟踪流程的同时扩展菜单。
具有多人边界的 Smart Object 交互
将可用世界操作接入一致的交互流程,而不是在每个可交互 Actor 中分散选择和生命周期逻辑。系统刻意把项目自有的检测规则与权限管理和状态复制分开。
- 展示已创作的交互选项。 交互定义为 Smart Object 入口提供显示文本、副文本和 CommonUI 输入操作数据;Blueprint 原生回调让 Actor 响应选择和交互生命周期事件。
- 保持选择权威。 交互组件维护服务器持有的候选与选项状态,对拥有者公开已复制的展示状态,并通过服务器 RPC 切换当前可交互对象。
- 将已认领的 Smart Object 连接到玩法行为。 内置 Ability Task 将 Smart Object 认领绑定到 Gameplay Behavior 执行;当行为结束或槽位失效时,会释放槽位并安全停止。使用“用技能执行交互”的类型需要引擎 Gameplay Ability System。
- 采用你自己的搜索规则。 Blueprint 事件会广播搜索触发;Blueprint 原生查询过滤钩子允许项目使用射线、重叠、标签、距离或自定义规则,而无需替换交互组件。
面向网络的布娃娃与恢复
为需要物理击倒或摔落的角色加入可复用的恢复路径。组件明确处理权威和远端纠正,同时把动画与进入规则留给项目决定。
- 通过正确的网络路径开始和结束布娃娃。 本地请求经服务器 RPC 处理,再通过可靠多播切换状态,使最终转换保持权威。
- 让远端角色保持视觉对齐。 已复制且量化的骨盆目标位置支持远端姿态纠正,组件会在游戏中持续刷新布娃娃状态。
- 选择符合角色的恢复方式。 项目可以提供骨骼网格、决定何时允许切换、启用仅落地时起身,并通过 Blueprint 原生扩展点选择正面或背面起身蒙太奇。
围绕你的游戏扩展基础系统
- 让反馈理解项目自己的上下文。 添加 Gameplay Tags、物理表面映射和上下文库,就能构建项目专属的脚步、受击、移动反馈或技能表现,而不必修改调用方。
- 为新玩家状态创建相机模式。 为锁定、对话、载具、特殊技能或过场限制派生相机模式,同时继续使用共享的模式栈和组件集成。
- 让独立玩法功能添加 UI 内容。 定义扩展点标签和允许的数据类型,使任务、背包、交互提示或临时事件能向统一布局贡献内容,而不直接依赖具体控件。
- 调整交互发现与行为。 覆写查询过滤或监听搜索请求,以加入项目专属的检测方式;再使用交互定义和玩法行为配置创造新的世界操作类型。
- 让布娃娃恢复符合动画模型。 覆写起身选择以及开始或停止条件,以支持不同角色骨架、恢复规则或状态机,同时保留已有的网络行为。