全部作品
教育游戏

打砂人Sanding Man

一款教育类电子游戏:你是锅具喷砂生产线上的一名工人。

类型
教育类电子游戏
工具
Unity、C#、Cinemachine、Scratch Card 插件
深色背景上的白色线稿:穿连帽防护服、戴护目镜的喷砂工人,身体一侧正碎成点点粉尘。

概述

《打砂人》是一款教育类电子游戏。在游戏中,玩家将操控一名 NPC 打砂工人,为工厂老板对锅具进行喷砂作业。然而,喷砂过程产生的粉尘会影响 NPC 工人的健康,导致其不断打喷嚏、咳嗽,工作效率随之下降。玩家需要通过屏住呼吸或擦拭眼睛等操作,维持 NPC 工人的健康状态;若粉尘浓度持续恶化,工人的生命将最终受到威胁。玩家的任务是发现一种环保的解决方案,拯救这名工人,从而改变游戏结局。

亮点

  • 测试同学一开始对结局感到沮丧,多玩几轮后明白了设计用意:让玩家看到喷砂工人的悲剧和徒劳的努力。
  • 从写实绘画风格转向漫画/插画风格,让观众通过视觉效果“听”到咳嗽等声音。
  • 用 Scratch Card 插件取代 Sprite Mask:喷砂的视觉效果变得更加流畅,而且不会占用太多内存。
  • 用 Unity 的 Cinemachine 包实现咳嗽时的相机震动,并用着色器(Shader)创建高斯模糊效果。
本页目录
  1. 背景信息
  2. 设计目标
  3. 玩法设计
  4. 视觉设计与打磨
  5. 游戏开发
  6. 程序结构
  7. 代码示例
  8. 游戏画面
  9. 结局动画
  10. 玩家反馈

背景信息

我父亲带我去广东参观一家生产锅具的工厂,工人们正在进行喷砂作业。他们只佩戴着简易的口罩,在极其恶劣的环境中工作。空气中弥漫着粉尘,咳嗽声不绝于耳。父亲告诉我,在广东,每年都有数千名工人因吸入过量粉尘患上肺病,这严重影响了他们的健康,有人甚至因此丧命。看到这一幕,我深受触动,决心找到一种既能保障工人健康,又不影响工作效率的工艺,来改变这种糟糕的现状。

浅色铝锅底部积着一摊深色涂料。

左图:喷砂工艺是为了让铝基材表面变得足够粗糙,使涂料能够完美附着在锅面上。

戴蓝色手套的手托着一口灰色的喷砂锅。

右图:传统的喷砂方法是将金刚砂装入喷嘴,利用空气压力将其喷射到锅具表面,形成纹理,使涂料更好地附着。

进入工厂后,我震惊地看到,工人们的脸上除了口罩和护目镜遮住的地方,全都沾满了粉尘。持续不断的咳嗽声充斥在空气中。尽管这一群体占到总人口的近 0.7%,他们的健康和工作状况却一直未被报道,也被社会和公众所忽视。

上图:工人的工作环境中充满了粉尘,但他们只有护目镜和薄口罩作为防护。一位工人摘下护目镜时,我看到他的眉毛和睫毛都被白色的粉尘覆盖了,他说自己已经习惯了……

设计目标

一个落满灰尘的玻璃柜,玻璃上能看到一个穿白色防护服的人影。

因此,作为一名游戏设计师,我的目标是提高公众对这一问题的认知,强调这类工作对工人造成的身体伤害。同时,我也迫切地呼吁个人、政府优先改善工人的工作条件,关注他们的身体健康,并考虑制定相关政策来保障他们的安全。

玩法设计

打砂人

灰色背景上的线稿:穿连帽防护服、戴护目镜的喷砂工人。

你是锅具喷砂生产线上的一名工人,身着带护目镜的防护装备。现在,你在装配线上的一天开始了。

游戏画面,红色虚线框分别圈出一排红心、TODAY'S GOAL: 1000 面板和 05:00:00 倒计时、Pass Rate 100% 圆环,以及传送带上方握着红色喷枪的手。
  • 生命值:显示你当前的生命值。
  • 目标与倒计时面板:该面板显示玩家需要在 5 分钟倒计时内完成 1000 口锅的喷砂任务。
  • 合格率面板:显示你已经完成喷砂的锅具合格率。

装配线

传送带上的锅具:喷枪正对一口红色锅喷砂,喷过的地方变成白色斑块。

锅具在传送带上从右向左移动,玩家需要按住喷枪来打磨锅具。红色区域表示尚未打磨的区域,白色区域表示已完成喷砂的区域。

视觉模糊

画面发灰、颗粒感很重、整体模糊,左上角只剩一颗红心;喷枪正对一口锅喷砂,左下角冒出几个咳嗽气泡。

随着游戏进程推进,你进行的喷砂操作越多,就会有越多的砂粒粘在你的护目镜上,导致你的视野变得越来越模糊。

擦拭护目镜

一只手在模糊的画面上擦拭,左侧冒出红色的 COUGH 爆炸字。

因此,你需要时不时用手擦拭护目镜,以保持清晰的视野。

屏住呼吸

在喷砂时,砂粒会扩散到空气中,但会在一段时间后沉降。按住空格键屏住呼吸 3 秒,可避免吸入过量粉尘,但之后需要深呼吸。你需要协调好屏息与喷砂的节奏,避开弥漫粉尘的空气。

生命值下降

随着时间推移,过量吸入砂粒会导致生命值下降。咳嗽图标会反映三种不同的健康状况:良好、正常、恶劣。当生命值(心形图标)耗尽时,游戏结束,玩家角色死亡。

三组咳嗽图标,下方分别标着良好、正常、恶劣:圆形气泡、棱角气泡、红色尖刺爆炸字,箭头指向恶劣。
五颗红心,一条红色虚线箭头,然后是两颗红心和一颗残缺的红心。

游戏结局

深色画面上的白色线稿工人,半边身体正碎成白色粉尘。

然而,这款游戏只有一个坏结局。无论你多么努力地喷砂、屏住呼吸,最终都将不可避免地患上硅肺病并死亡。

视觉设计与打磨

左边是两个男人交谈的写实风格绘画,其中一人拿着红色国际象棋的马;中间一个红色箭头;右边是极简黑白插画:裹着白色外套、双手托腮、穿红袜子的女孩,头顶画着一个冒热气的杯子。
写实绘画风格 → 插画风格

风格迭代

一页密集的黑白漫画,满是速度线和拟声字,其中一个拟声字被红圈圈出。
漫画风格

在我看来,喷砂工人这一主题本身就充满了讽刺意味。我最初的目标是采用写实绘画风格,但意识到需要表现咳嗽、颤抖等元素。虽然音效和屏幕特效可以传递这些感受,但我希望通过视觉效果让观众“听”到这些声音。于是,漫画/插画风格进入了我的视野,它能通过视觉化的方式强化音效。此外,更柔和的插画风格与我想要描绘的“残酷”现实形成了鲜明对比,让主题更加深刻。

《みんなで空気読み。3》的封面:一红一蓝两个圆脸人物坐在一群黑白角色前面。
参考作品:《一起读懂空气》

极简视觉

这款游戏采用了极简视觉风格,既富有表现力又高效直观。这种简洁性不仅提升了美学吸引力,还确保玩家能够不受干扰地专注于核心玩法。干净利落的画面设计,让玩家能轻松地在游戏环境中找到方向。

聚焦红色元素

游戏的一大特色是对红色元素的强调,这些红色元素是玩家的主要视觉焦点。通过突出这些元素,游戏简化了玩家的目标,让他们清楚地知道注意力应该投向何处。这一设计选择通过消除视觉混淆、提供明确的方向感,提升了整体游戏体验。

游戏美术拆成的单独部件(背景、合格率圆环、目标面板、红心、咳嗽气泡和爆炸字、握喷枪的手、红白两种锅、传送带、擦拭的手),下面是三张合成后的游戏画面。
整体视觉与拆分部件

游戏开发

开发挑战

喷砂的视觉效果很难实现,这一直困扰着我。我尝试了多种方法来实现它。

方案一:Sprite Mask

红色锅面上散落着一块块白色喷砂斑点,旁边是 Unity 层级面板里从 Mask 到 Mask (24) 的一长串对象。

最开始,我尝试在 Unity 中使用 Sprite Mask 来实现这一效果。当玩家按下喷砂按钮时,会实例化一个形成喷砂形状的遮罩。

但这种方案存在几个明显的缺点:

  1. 生成的喷砂形状遮罩不连续,与现实中喷砂的视觉效果不符。
  2. 会生成大量游戏对象(GameObjects),占用电脑内存,降低游戏帧率(FPS)。

方案二:插件 - Scratch Card

Scratch Card 插件的横幅:黄色背景上一道白色笔刷,写着黑色的 SCRATCH CARD。

最终,我使用了 Unity 资源商店中的 Scratch Card 插件来解决这个问题,花了一点时间学会使用后,效果非常完美:喷砂的视觉效果变得更加流畅,而且不会占用太多内存。

程序结构

游戏脚本结构的两张树状图。上(文字说明见下方)
用文字看这张图

游戏脚本结构的两张树状图。上:玩家控制器(C# Script)连到动作(下面是喷砂〔Plugin〕和擦护目镜〔Animation〕)和血量(value),血量经过判断「>阈值」(If)后连到反馈,反馈分出咳嗽气泡(Prefabs)、咳嗽音效(Audiosource)和相机震动(Cinemachine)。下:游戏管理器连到 UI 更新器(下面是更新目标〔Text〕和时间〔Text〕,时间经过判断「>计时上限?」(If),Yes 则游戏结束)、传送带(经过结束判断(If),No 则停止,Yes 则继续移动,都是 Transform)和砂粒生成器(C# Script)。

咳嗽效果

Cinemachine Impulse Source 在 Unity Inspector 里的设置:Impulse Channel 为 default,Impulse Type 为 Uniform,Impulse Shape 为 Bump,下方是一条黄色波形曲线。
脉冲属性

为了更真实地模拟咳嗽,我使用了 Unity 的 Cinemachine 包实现相机震动。当咳嗽发生时,相机会上下震动。

高斯模糊

模糊、带颗粒感的游戏画面:擦拭的手和红色 COUGH 爆炸字。

除了咳嗽时的屏幕震动效果,我还使用着色器(Shader)创建了高斯模糊效果。通过 Lerp 函数来动态调整模糊大小的数值。

公式

Mathf.Lerp(Blursize)

代码示例

游戏画面

结局动画

结局动画的二十帧:深色画面里工人碎成粉尘消失,一团白色爆炸填满画面,随后在浅色画面中一张纸缓缓飘落,最后落成一张专利证书。

我为这款只有单一结局的游戏制作了结局动画:它象征着喷砂工人因病死亡,化为尘埃。一张迟来的专利证书缓缓飘落,预示着落后生产方式的终结。虽然我听说过科学研究正在改进锅具表面涂层的化学附着工艺,但那些在恶劣工作条件下日复一日劳作的无数工人,真的能等到工艺改进的那一天吗?

玩家反馈

一位卷发玩家坐在桌前,在电脑屏幕上玩《打砂人》。
Jesse,18 岁,试玩了完整版游戏的同学

在游戏结束时,我起初感到很沮丧,疑惑为什么自己如此努力地喷砂、屏住呼吸,最后还是死了(坏结局)。多玩几轮后,我明白了吕承洋的用意:让玩家看到喷砂工人的悲剧和徒劳的努力。这些工人的命运让我深受触动,也很难过。人们应该更多地关注工人的工作环境与健康,用科学方法改进生产流程,或者至少加强对喷砂工人的保护。这是一款很棒的游戏!

Jesse,18 岁