两周内独立完成游戏Demo:AI工具 + Unreal Engine 的全流程实战

引言

AI极大地赋能了独立游戏开发。在过去两周,我将Unreal Engine 5与一系列AI工具结合,独立完成了一个可玩的“轨道射击光枪”原型。从头脑风暴、概念艺术到代码、音效和音乐,AI承担了大量繁重工作,让我能够专注于创意流程,而不是被琐碎事务缠身。

下面是构建过程的快速剪辑视频;完整演示可在文章末尾查看。



AI工具集

  1. 规划:ChatGPT + Gemini 用于构思和初步设计文档
  2. 美术:DeepSeek + Midjourney 用于概念和风格指南
  3. 编程:ChatGPT 作为实时的 Blueprint 指导
  4. 音频:生成式音乐 + 音效模型
  5. 配音:TTS 用于运行时对话
  6. AI 3D建模Tripo

总结:AI触及了开发的每个阶段,将一个通常需要多人协作的项目变成了一场单人冲刺。

项目设置

为什么选择这款游戏?

我首先问了自己一些基本问题:核心玩法是什么?它有什么新意?将在哪里发布?
灵感来自那些有趣的“DOOM x Animal Crossing”混搭视频、《糖豆人》/《DOOM》联动,以及街机《恶魔城》轨道射击游戏。这些混搭激发了一个想法:将轨道射击与近战结合起来。玩家沿着预设路径移动,用光枪射击远距离敌人,然后拔出激光剑砍杀或格挡靠近的敌人。这种组合在经典轨道射击游戏中很少见,并且非常适合两周的开发范围。

时间预算

概念确定后,我将大纲输入Gemini,让它生成一份逐日日程表。它完美吗?不。但它为我提供了一个坚实的基础,节省了数小时的日程安排时间。我在腾讯文档中维护了一个实时待办事项列表,并每晚进行调整。
目标一:第一周 = 搭建一个小型MVP关卡,验证枪械+光剑的玩法循环。

设计文档亮点

核心玩法循环

  • 可爱的赛博朋克世界
  • 玩家沿着轨道滑动
  • 射击远距离目标,砍杀或格挡近距离威胁
  • 积累连击,生存到Boss战

系统分解

  • 轨道与摄像机:Sequencer 驱动移动和镜头切换,采用“过山车”式风格
  • 输入/战斗:点击射击,点击并拖动挥舞光剑
  • 武器:模块化枪械+光剑,各自有冷却时间和命中逻辑
  • 敌人:可扩展的敌人类型(近战、飞行、弹幕、精英、Boss),与Sequencer事件绑定

Gemini的初稿在几个小时内完成,而不是几天,并为我提供了一个清晰的待办事项清单。

核心玩法循环

  1. 玩家沿着固定轨道移动。
  2. 敌人根据脚本沿轨道生成。
  3. 使用光枪清除远距离和空中威胁。
  4. 当敌人靠近或发射可格挡的弹丸时,切换到激光剑进行砍杀或完美格挡反弹射击。
  5. 根据情况迅速切换射击和砍杀,以应对混合的敌人群体。
  6. 保持战斗节奏,积累分数和连击乘数,直到关卡结束或Boss出现。

每个关卡都遵循这个流程:轻度遭遇战开始,难度逐渐升高,最终以Boss战达到高潮,带来紧凑而充满活力的结局。

MVP可行性检查与范围控制

在我编写第一行代码之前,我将核心功能列表输入ChatGPT进行了一次可行性检查。AI返回了一个MVP计划,将所有内容简化为一个短关卡——刚好足以证明轨道射击加上近战确实感觉良好。
这与“快速迭代”的理念不谋而合:首先实现最微小的切片,然后扩展。我有一个经验法则:如果一个机制可以在一天内完成原型制作,那么围绕它开发一款完整的游戏大约需要一年;两天原型制作意味着接近两年的生产时间,以此类推。换句话说,保持测试构建足够小,以便在几天内完成,这样整个Demo就能在两周内完成。
总结:第一周的任务是搭建一个精简的关卡,锁定核心的射击-砍杀循环。

美术与音频

为了快速确定游戏的音乐氛围,我颠倒了通常的顺序——先音乐,后视觉。我转向了Suno AI,这是一款强大的生成式音乐工具,可以根据你输入的歌词和风格提示,创作并演唱完整的曲目。

一个很酷的技巧是:Suno允许你直接在歌词中插入“元标签”,用括号括起来——比如 [Intro]、[Male Voice]、[Interlude]、[Female Voice]、[Guitar Solo]。这些标签可以引导歌曲的结构、人声、乐器和曲风(流行、电子等),实现即时微调。完整的标签目录可在Suno的网站上找到。
我是这样使用的:

  • 我让DeepSeek生成了一小段歌词。
  • 在提示中,我将风格标记为“电子”和“独唱”。
  • Suno返回了几首哼唱的粗略剪辑——不同风格的完整主歌/副歌布局。


提示: 想象你是一位歌曲作者。以Kendrick Lamar的“Not Like Us”的风格,创作一首名为**“Cute Bomber”**的歌曲。请提供:

  1. 完整的歌词。
  2. 背景音乐的详细信息,以Suno AI关键词(曲风、情绪、乐器、元标签等)表达。

经过快速的A/B测试,我选取了最具冲击力的电子片段作为占位符主题曲。这首歌还需要人工进行混音和润色,但Suno AI让我以创纪录的速度确定了音乐方向。

世界与视觉风格

我正在尝试融合科幻的炫酷和周六早晨的可爱。想象一下,迷你尺寸的未来战士在霓虹闪烁的赛博城市中对抗地狱入侵——表面可爱,但充满高能刺激。
风格基石:**《糖豆人》**的圆润动物造型和明亮调色板,融合了硬核赛博朋克的霓虹招牌和电路。将这些元素融合,你将得到一个糖果色的战场,既迷人又充满活力。

概念艺术

在概念艺术方面,我主要依靠DeepSeekMidjourney

  1. DeepSeek 提示:我输入了我的设想(“《糖豆人》的圆润感与赛博机甲细节的结合”),它生成了细节丰富的Midjourney提示。
  2. Midjourney 输出:将这些提示放入Midjourney,它返回了精准的角色设定图。通过在每个提示中添加“三视图,前、侧、后”,Midjourney一次性生成了完整的转身图——这对于在3D建模时保持设计细节一致性非常有用。

预告片过场动画

静态概念艺术只是开始——我还制作了一个概念验证的开场动画。整个过程是通过一系列AI工具协同完成的:

  1. 剧本与分镜
  • DeepSeek 撰写了场景剧本,设定了场景、节奏和关键镜头。
  • 我将文本输入Midjourney,它生成了一系列插画,同时作为分镜图。
  1. 视频生成
  • 这些帧被逐帧输入 Kling——一款支持图片转视频和文本转视频的中国AI视频工具。
  • 利用提示词控制摄像机运动和转场,Kling将静态图片变成了流畅、连贯的动画片段。(当时,它在我的需求方面优于OpenAI Sora等选项。)
  1. 音效设计
  • 拿到无声片段后,我启动了运行 MMAudio 模型的本地ComfyUI工作流。
  • 输入素材和“未来城市街道遭到袭击”等提示,它就能生成分层环境音——警报声、机甲嗡嗡声、能量武器充能声。(提示:生成约10秒的片段;MMAudio更喜欢16 GB或更高显存的GPU。)
  1. 最终混音
  • 我将Suno的草稿主题曲、Kling的视频和MMAudio的音效放入我的编辑器,同步所有内容并进行了快速混音。

经过几次AI的接力,概念预告片完成了——以通常一小部分的工作量锁定了游戏的视听氛围。

技术准备

版本控制

即使作为一名独立开发者,我还是在我的家用NAS上搭建了一个SVN仓库——只是一个Docker容器,轻松搞定。Unreal Engine与SVN配合得很好,设置过程简单,并且它能很好地处理游戏项目附带的大型二进制文件。
有了适当的版本控制,我就可以随意分支、设置检查点、无所畏惧地进行实验。回滚和差异对比都是即时的,这在你使用Blueprints时尤为重要——UE5的编辑器内置了差异支持。可靠的源代码控制是实现快速迭代的安全网。

Sequencer 作为游戏脊梁

由于这是一款轨道射击游戏,UE5的Sequencer是整个核心。我深入研究了它的事件触发系统,并确认它不仅适用于过场动画——它能够以帧级精确度运行即时游戏玩法,这正是节奏感强的射击游戏所需要的。
时间轴控制着玩家的轨道路径和每个镜头切换。Level Sequence资产中的关键帧锁定了位置和旋转,因此视角沿着预设路线平滑移动并在不同角度之间干净地切换——无需额外代码。
我还需要Sequencer来触发游戏事件——生成敌人、启动动画等等。解决方案是:自定义事件轨道。在时间轴上放置一个“EnemySpawn”或“MonsterAttack”标记,将其绑定到关卡 Blueprint 中的自定义事件,当播放到达该帧时,游戏逻辑会自动触发。它将关卡脚本变成了可视化、易于调整的流程图。

MVP检查

我再次进行了可行性检查——结合我自己的经验和ChatGPT的建议——并确定了技术方法。ChatGPT的首要建议是:首先构建尽可能小的循环以验证射击和砍杀的组合。我们的MVP:一个短关卡,包含轨道移动、少量敌人和一场Boss战。
在UE5中,我快速搭建了这个原型。Sequencer驱动第一人称轨道,时间轴事件生成了俯冲而来的敌人,玩家将其击落。一旦循环流畅运行,我就获得了关于节奏、难度和乐趣的真实数据——这样我就可以自信地进行全面开发。



Blueprints 编程

轨道控制器

玩家控制器与轨道移动
玩家不是自由漫游的——相反,他们被“锁定”在预设的轨道上。我创建了一个Character子类,但将所有移动都交给了Sequencer。在Level Sequence资产中,关键帧随着时间驱动Pawn的位置和旋转。将该Sequence绑定到玩家,会自动将其沿路径移动和旋转。我还将多个摄像机连接到同一时间轴,以便视图平滑切换,无需额外代码。
战斗系统
输入很简单:左键点击射击,按住并拖动挥舞激光剑。

  • 射击使用从摄像机中心到准星的射线追踪;命中会调用敌人的伤害逻辑。
  • 近战监视拖动动作,将其转换为屏幕空间砍杀弧线,并检查该弧线内的敌人以触发命中或格挡。

武器存在于两个Blueprint组件中——一个用于枪械(追踪、VFX、伤害),一个用于剑(弧线检测、砍杀VFX、格挡/招架)。
敌人与关卡逻辑

我构建了四种敌人类型:近战小兵、飞行兵、远程飞行兵和Boss。前三种敌人通过AIControllers和Behavior Trees运行——一旦生成,行为树就会处理移动和攻击决策。Boss的阶段和特殊攻击直接由Sequencer事件驱动,以实现精确的时间控制。
为了对整个关卡进行排序,我创建了一个 LevelPoint Actor(继承自LevelSequenceActor)。你可以在轨道上放置多个LevelPoint;每个LevelPoint都有自己的Sequence资产,用于生成敌人、播放台词、摄像机抖动等。LevelPoint定义了它的“下一个”节点(或根据条件分支)。当玩家到达一个LevelPoint时,它的Sequence会播放;一旦其胜利条件满足(所有敌人被击败或时间到),系统会跳转到下一个LevelPoint的Sequence。我甚至为Sequencer添加了自定义轨道,以便它可以检查游戏状态并决定何时前进——将整个流程变成一个模块化、可视化的“节点+时间轴”分镜图。

AI辅助Blueprint脚本
每当出现Blueprint问题时(“如何从Sequencer事件中生成敌人?”“如何将鼠标拖动转换为近战命中?”),ChatGPT都是我的首选。它提供了分步答案,指出了文档或论坛帖子,甚至草拟了伪Blueprint节点。
例如,当我询问如何在运行时调整材质时,它告诉我使用“Create Dynamic Material Instance”节点,并提醒我存储引用。几下点击后,我的激光剑挥舞起来,精确地照亮了敌人。
拥有一个AI“技术顾问”随时待命,消除了障碍,提高了速度和信心。它的建议有时需要一两次调整,但总的来说,它处理了无数小细节,让我可以继续构建。

资产

UI

UI需要与游戏的可爱赛博朋克外观相符。我使用GPT-4o生成了“喷射战士”风格的扁平游戏内美术资产——向它输入清晰的提示(参考图片、颜色、布局说明、文本描述),并迭代直到我获得了一套霓虹涂鸦UI元素(例如,管道风格的生命值/能量条、华丽的得分面板)。

GPT-4o的图像生成(2025年3月发布)被证明功能强大但并非完美无缺:

  • 优点:学习曲线低,快速灵活;支持文本转图像、图像转图像、多图像一致性;非常适合图标、风格迁移、演示艺术。
  • 缺点:聊天长度限制可能会截断上下文;细节常常漂移(不适合精确模型);分辨率限制需要手动拼接才能实现转身图;提示复杂性仍存在边缘情况(尽管参考图像有所帮助)。

总的来说,GPT-4o是游戏规则的改变者——创意现在超越了技术障碍,一种新的、由AI驱动的2D UI设计工作流程正在兴起。

SFX

  • 音效:我使用Stable Audio的生成平台,通过“机械装置减速”或“激光剑划破空气”等简单提示,快速制作了枪声、爆炸声、怪物吼叫声等。在本地运行加快了迭代速度。
  • 背景音乐:对于原型,我将Suno AI的电子主题作为占位符。

3D模型

  1. 生成:Midjourney 三视图 ➜ Tripo 2.5 自动网格和拓扑
  • 我将Midjourney的三视图输入到 Tripo 2.5 中,它能在几分钟内自动拓扑并把2D艺术转换为带有纹理的基本3D网格。拓扑结构扎实,轮廓与概念相符。它的自动绑定并不完美——骨骼大小和方向需要调整——但它大大缩短了建模和UV时间。
  1. 绑定:Character Creator 的 AccuRIG 一键骨骼
  • 接下来,我将网格导入Character Creator,并运行其AccuRIG工具,即时生成骨骼和蒙皮权重。
  1. 动画:iClone 8 用于动作库重定向;AI姿态辅助是关键
  • 动画方面,我使用了iClone 8:它的动作库、动作捕捉重定向和AI姿态辅助功能让我在几分钟内应用了跑步、射击、砍杀和受击反应,而不是手动K帧。我将剪辑导出为FBX并导入Unreal。
  1. 导入:FBX 回到 UE5

得益于这个AI流水线——概念 → 3D网格 → 绑定 → 动画——通常需要数周的过程在几天内就完成了。

关卡设计

AI助手

我让Gemini研究了街机《恶魔城》的流程,并生成了一个基于节点的关卡路线图。它的分解——开场 → 小怪 → 中Boss → 更多小怪 → 最终Boss——抓住了游戏的精髓,甚至在每个阶段都指定了敌人类型和数量。然后我根据自己的设计调整了脚本,并最终确定了关卡计划。

关卡设计和LevelPoint系统

我使用LevelPoint系统沿着玩家的轨道放置事件节点来组装关卡。每个LevelPoint都绑定到Sequencer中的一个Level Sequence,你可以在其中编排所有内容——敌人生成、摄像机抖动、对话等。
例如:

  • 在LevelPoint1,它的Sequence会播放一个小高潮——一波敌人、摄像机震动、一句台词。当玩家到达该点时,Sequence触发并开始战斗。
  • 一旦这些敌人被击败,轨道会将你带到LevelPoint2,它的Sequence可能会播放一段过场动画和一个小型Boss遭遇战。
  • 这个过程一直重复到最终Boss和关卡结束。

“节点 + 时间轴”方法将关卡设计变成了一个视觉编辑过程:要调整节奏或添加事件,只需在Sequencer中插入、删除或调整事件标记。

动态对话

我构建了一个即时对话系统,而不是使用固定的配音脚本。在每个故事节点,AI会生成一句新台词,然后我们用TTS将其语音化。



工作原理如下:

  1. 集成 AIITK 插件• 安装了Unreal的AIITK(AI Integration ToolKit),以便在Blueprints中调用GPT。
  2. 定义API和提示模板• 连接OpenAI GPT-4端点。• 为不同上下文(普通战斗、Boss战等)创建提示模板。
  3. 运行时生成文本• 当玩家到达一个LevelPoint时,Blueprint会使用适当的提示调用AIITK。• GPT-4返回包含中文副标题和英文配音版本的JSON。
  4. 合成语音• Blueprint将英文台词发送到OpenAI的TTS API并接收WAV文件。• Blueprint然后播放音频并显示中文副标题。

对话生成流程

  1. 台词:在每个LevelPoint,AIITK 使用提示和上下文调用 GPT,返回中文对话和英文版本(JSON格式)。
  2. 语音合成:解析 JSON,获取英文台词,发送到 TTS API,并获得 WAV 文件。
  3. 播放与显示:Unreal 的音频组件播放 WAV,同时 UI 显示中文副标题。

所有这些都在几秒钟内完成,因此每次游玩都能听到新鲜的台词,而无需任何手写脚本或预先录制的配音。
挑战与调整

  • 提示很重要:要精确,保持台词简短,将多行对话拆分成单独的调用。
  • 保持一致性:AI可能会偏离模型。在提示中加强场景和角色细节。
  • 不要阻碍游戏:在加载画面或过场动画期间运行AI调用,这样玩家就不会等待。

总结

  • AI的优势:在14天内,AI让我从零开始完成了一个可运行的Demo——处理了美术、代码、音频等——因此我能够保持创造性流程,而不是忙于琐碎工作。指导AI是新的秘密武器。
  • AI的局限:AI仍然需要人工监督。文档、美术、代码和对话都需要调整。良好的提示技巧是成功的一半。

完整原型工作流程



经授权翻译并转载。

Advancing 3D generation to new heights

moving at the speed of creativity, achieving the depths of imagination.