01.09.2026

这都是二维的:游戏《Mayak》的作者如何让手绘场景栩栩如生

我们刊登游戏Mayak作者的专栏。在文章中,他讲述了他为这个关于太空与爱情的视觉小说项目设计图形的经验。

尼基塔 Nikita Nplus1

大家好!我是尼基塔(Nikita Nplus1),来自莫斯科的Mayak游戏独立开发者。

Mayak是一款小型剧情类科幻游戏,是冒险与视觉小说的结合。在它里面有一个年轻的天文学家男孩,他的女友妮娜,他们的猫艾萨克,还有来自他星的信号。至于其他内容,目前还不适宜剧透。

但今天我要讲的不是故事内容。

而是分享一下,我如何将普通静态绘图逐步变成这样的过程:

对的,这一切都是真正的2D。

并不是在3D空间中插入2D精灵并且附带3D摄像机。

直接就是普通2D。

对于那些在游戏开发中有经验的人来说,这里可能并没有什么新发现。

但Mayak是我的第一款游戏。我在没有编程经验的情况下开始制作,前一年一直在不断试错:

  • 3D;
  • 2.5D;
  • 各种引擎;
  • 不同的照明方式;
  • 不同的绘画风格。

无数尝试都让我觉得:不是这样。

然后某一刻,平面的图画开始动起来,光影、声音、视差效果都突然组合在一起。

终于有一天,我看着这个场景,心想:就是这样!

首先是简单的绘画

几乎所有场景都始于一幅普通的插画。

我手绘这些插画。 我喜欢油画、粗犷笔触、印象派、漫画、黑色电影,深色和非常亮的光斑。曾经我努力让自己的画更“正确”、整洁,对自己的不完美纠结了很久。阅读漫画,实验各种颜料、笔、墨水及数字画笔。然后……我思考后决定,我的“歪风格”才是我的风格。

就这样吧!

从接纳自己之后,绘画似乎变得简单了许多。

问题在于,完成的插画本身不适合用在游戏中——它是静态的。

因此在绘画时,我总是考虑要独立移动的部分:

  • 前景的手臂;
  • 中景的脸;
  • 瞳孔;
  • 光源;
  • 阴影来源;
  • 以及某个完全不必要的丛林,我莫名其妙地画了两个小时。

结果是,一幅画变成了一组独立的图层。

然后我在Godot中将这些图层重新组合。

不过这次是作为游戏场景。

视差效果:获得空间感的最廉价方式

第一个可以极大改变图像感受的是视差。

图层开始相对彼此轻微移动:近处的动得更多,远处的少些。

有时这种移动几乎不可察觉,但大脑已不再将场景视为单一的平面图画。

我喜欢这样的效果不是以“看,这里有视差!”来吸引眼球,而是一种潜意识的呈现。

微微的摄像机移动下,你感觉前景、角色和背景之间存在距离感。

虽然实际上是没有的。

所有这些只是不同速度移动的PNG图层。

这是一种相当巧妙欺骗大脑的方式。

接下来是我最爱的阶段——光

初始插画中已然有光明与阴影。

也有亮面与高光。

但在此基础上,我加了真实的2D光源和动态阴影。

这竟然成了一个极其有趣的过程。

比如角色在黑暗中拿着荧光棒前行。

当他走到树旁,光滑过树干,枝条投下影子,灯光随他的移动而变化。

树木上还有对光特别敏感的反应层。

这个小细节不起眼,但我却十分享受其中。

对于我来说,这里产生了一种绘画与IT技术间的愉悦冲突。

还有一些轻微的失真

接着是着色器。

我不希望它们变成独立的视觉效果。

对我来说,最理想的是玩家稍微感知到确实有变化发生。

我使用轻微的表面变形,几乎不可见的抖动,叠加和逐步移动透明纹理在初始插画上。

使用的着色器技术上相当简单。并没有黑科技。

就是些小小的效果累积:像素随机偏移,每个像素周围微小颜色偏移,亮度的微小闪烁。且全在每秒3-4帧的速度下进行。

结果使得大脑开始感知静态的绘画仿佛有了生命。

单个效果几乎没有作用

这也许是我在这种视觉开发中最大的领悟。

并没有一项技术能将静态艺术突然转化成游戏场景。

视差本身只是视差。光效本身只是光效。

轻微的纹理移动几乎无益。

多细节动画也不过如此。

但当所有一起运作,效果会突然远超各部分总和。

当然,再加上声音。

GIF无法呈现这一点,很遗憾。

添加房间的嘈杂声,或者风声,设备的嗡鸣声。还有脚步声。

再些许轻声机械声效。再配上音乐!嗯…

顺便说,我在加入游戏开发前大约有15年在写音乐,因此声音部分对我而言是特别的乐趣。顺带说一句,可以去听听Nicephorus

当图画动起来,光效变化,风扇轻响,音乐同步响起的时候,我感受到真正的魔力。

几天前,你还在画PNG文件。

现在却仿佛它已成现实场景或是活的角色。

为何选择Godot

现在整个游戏用Godot来构建。

我不是从一开始就选择它。在最初,我尝试过一些更简单、更友好的引擎,认为它们适合从未制作过游戏的人。

但很快就会遇到其局限。

我想要大量的视差。活灵活现的对话气泡。还有动态光效。无缝的场景过渡。定制的着色器。流畅的摄像机。还有无需为保存系统重写引擎。

在Godot里面,我几乎可以自由施展。

它很轻,启动快,使我能迅速验证想法。

对于单独工作的人来说尤其重要。

可以晚上突发奇想,几个小时内实现其验证,这是个愚蠢的主意,毫不留情地删除,然后继续前进。

这也是一种进步。

我逐渐开发了许多小型自己的系统:场景管理、视差、过渡、光效处理、图像处理和着色器。

使用Nathan Hoad的Dialogue Manager这个优秀插件管理对话,节省了大量时间。

而Mayak的内部并没有什么独特的工程魔法。

几乎所有东西早在我之前就已存在。

我只是用我喜欢的方式将熟悉的元素组装起来。

现在说说不太好的一面

这种方式有一个很明显的缺点。

就是要画很多很多画。

几乎每一个Mayak场景都是独特的。我不把关卡用重复的瓦片堆砌,不重新安排同一批物品。新一集通常意味着一幅新的完整插画,待分解成不同层并赋予生命。

有时一周能完成两到三个场景。

也许我还是在自欺欺人。

大概只有一到两个吧…

一些场景可以花很长时间纠结在细节上。

某一刻我意识到这个“每个场景都独立绘制”的浪漫想法实际上是我自陷的圈套。

现在为时已晚。只能继续画画。

我不建议这种方法。

但目前,这一部分的开发过程让我最为愉悦。拿起一幅完全静止的图画。层层添加:视差、光、影、着色器、音效。

某一时刻它开始“呼吸”。

或许这正是我做这一切的动机。

关于Mayak的更多信息

如果在看完这些PNG后仍对这款游戏感兴趣:Mayak是一款线性剧情科幻游戏,大约四小时的故事。

中心角色是一位年轻的天文学家,妮娜,小猫艾萨克以及来自另一颗星的信号:

  • 3571
  • 3559
  • 3557

…(人们开始收到来自宇宙的数字!)

所有的数字都是素数。

而且它们在减小。

再讲下去就是剧透了,所以就此打住。

目前在Steam上已有免费试玩版,大约30–40分钟时长。 试玩版链接

而完整版我仍在制作中。

剧本已完成。

剩下的是最小的一部分。

做好其他所有的事情。

欢迎加入我的Telegram频道

评论
写评论...
Related news