mcpField
G
game-vfx

game-vfx

github.com/akillness创意与媒体5364 次安装4 天前更新
代码仓库

关于 game-vfx

game-vfx 是用于规划和评审游戏视觉特效的技能,面向准备实现特效的开发者。它结合生命周期规格、可读性检查、性能预算与降级方案。

主要功能

  1. 01按游戏事件编写特效规格
  2. 02规划生命周期与特效图层
  3. 03验证机器可检查的 VFX 规格
  4. 04检查性能预算与分析指标
  5. 05设置减少动态效果和画质降级方案

适用场景

  1. 01将游戏事件转为定时特效方案
  2. 02准备带性能档位的引擎交接资料
  3. 03诊断开销过高或难以辨读的特效

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/akillness/jeo-skills --skill game-vfx

安装后在 Claude Code 中输入/game-vfx确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
references/
vfx-spec.example.json
upstream.md
effect-recipes.md
scripts/
validate_vfx_spec.py

详细介绍

游戏视觉特效

何时使用此技能

  • 将游戏事件转化为分层、有时间安排的视觉特效规格。
  • 实现烟雾、雾气、粒子、火焰、闪电、撞击、拖尾或泛光效果。
  • 排查粒子过多、模糊、绘制调用、内存分配、过度绘制或效果难以辨识等问题。
  • 制作包含性能档位和减少动态效果行为的引擎交接文档。

编辑 FFXIV/Dalamud 资源时使用 dalamud-vfx-editor;实现渲染器专用 GLSL/后期处理时直接使用 Three.js 技能;如果主要问题涉及 Unity/Godot 的 API,则使用对应引擎专用技能。

说明

步骤 1:记录一个特效信息包

记录:

  • 游戏事件和传达目标;
  • 引擎/渲染管线、目标平台、摄像机和目标 FPS;
  • 生命周期阶段和总时长;
  • 图层列表、混合模式、附着空间和深度顺序;
  • 粒子、绘制调用、过度绘制、纹理和帧时间预算;
  • 音频/屏幕震动钩子;
  • 减少动态效果和低画质回退方案;
  • 验收素材:具有代表性的游戏视频和性能分析器证据。

如果无法说明希望玩家理解什么,就不要从粒子入手。

步骤 2:选择范围最窄的特效类别
  • 烟雾/雾气/云朵 —— 为制作好的形态使用精灵图/翻页动画发射器,为轻量级 2D 叠加层使用噪声团块;只有在确有需要时才使用光线步进体积效果。
  • 闪电/电流 —— 使用中点位移生成锯齿状闪电,使用曲线控制电弧;谨慎使用递归分支。
  • 粒子/火焰/火花 —— 使用对象池发射器,并明确定义生成、更新、碰撞和回收规则。
  • 泛光/辉光 —— 阈值处理 → 可分离模糊 → 相加合成;对模糊目标进行降采样。
  • 完整法术/技能 —— 使用阶段状态机和图层栈;视觉强度应与游戏时间节奏一致。

实现前请阅读 references/effect-recipes.md。

步骤 3:编写可机器检查的规格

从 references/vfx-spec.example.json 开始,根据需要调整,然后运行:

bash python3 .agent-skills/game-vfx/scripts/validate_vfx_spec.py path/to/vfx-spec.json

验证器会检查阶段/图层的唯一性、正数时长、有限预算、粒子和绘制调用总量、模糊限制以及减少动态效果覆盖情况。验证通过表示设计契约检查通过,并不能证明运行时性能达标。

步骤 4:按生命周期构建,而非孤立的发射器

使用明确的阶段,例如 idle → charging → casting → impact → dissipating。根据共享的归一化阶段时间和确定性事件钩子驱动所有图层。请在进入游戏前预先分配可变实例;不要逐帧分配。确保随机种子可控,以便进行测试和录制。

步骤 5:建立层次和可读性

让一个图层承担主要视觉权重,其他辅助图层保持次要地位。确保游戏角色轮廓、预警提示、命中区域和 UI 仍清晰可读。添加更多粒子之前,先利用对比度、运动方向、时机和缩放来增强效果。让最强烈的视觉节拍与游戏事件和音频瞬态同步。

步骤 6:遵循平台预算

以项目实测数据为准。根据检查过的 Apple 取向上游参考,以下数值可作为保守的起点:

  • 以 60 FPS 为目标,总帧时间控制在 16.67 ms 以内;
  • 在可行情况下,将 VFX 叠加层的绘制调用控制在 10 次以内;
  • CPU 更新的粒子数超过约 500 时,应考虑分析 GPU/计算方案;
  • 移动平台的活动粒子数应控制在明确划分的档位上限内(上游参考建议 500–2,000);
  • 对大型模糊/泛光处理进行降采样;
  • 未经测量时,避免在移动平台上使用半径超过约 20 points 的模糊;
  • 将 4–8 次光线步进采样作为实时效果的起始档位,而非通用规则。

这些只是有待在支持列表中最旧的目标平台上验证的假设,并非与引擎无关的保证限制。

步骤 7:验证行为和性能

记录:

  • 帧时间、GPU 时间、粒子峰值、绘制调用、过度绘制和内存分配;
  • 摄像机移动和效果重叠时的可读性;
  • 与命中/冲击事件的时序;
  • 低画质和减少动态效果时的回退方案;
  • 取消、场景卸载、暂停和重复触发后的清理情况;
  • 在有代表性的硬件上进行前后对比测试。

不要仅凭静态规格或桌面模拟器就声称达到 60 FPS。

示例

验证火球交接

bash cp .agent-skills/game-vfx/references/vfx-spec.example.json ./fireball-vfx.json python3 .agent-skills/game-vfx/scripts/validate_vfx_spec.py ./fireball-vfx.json

路由 FFXIV AVFX 请求

使用 dalamud-vfx-editor;此技能仍可提供层级结构、时序和性能审查,但不负责文件格式工作流。

最佳实践

  1. 优先考虑玩家传达效果,再追求视觉冲击。
  2. 使用统一的生命周期和确定性的事件时序。
  3. 复用资源,并在目标硬件上进行性能分析。
  4. 对开销较大的屏幕空间效果进行降采样。
  5. 随效果一同交付减少动态效果和画质分级回退方案。
  6. 将数值指导视为初始预算;有实测证据时可据此调整。

参考资料

  • references/effect-recipes.md — 与引擎无关的配方和合成规则。
  • references/vfx-spec.example.json — 可供验证器验证的交接示例。
  • references/upstream.md — 来源和改编边界。
  • lev-os/agents

评论

支持 Markdown