项目简介
《Emotion Mask》是一款以“情绪切换”为核心机制的 2D 平台跳跃解谜游戏,也是我在 Global Game Jam 2026 中独立完成的作品。游戏围绕当年主题“Mask”展开:玩家操控一位戴着空白面具的少年,在破碎的内心世界中切换“平静”“快乐”“愤怒”三种情绪状态,用不同能力观察道路、跨越障碍、粉碎阻挡,并收集散落的情绪碎片。
这个项目后来发布到了 TapTap。它对我来说不只是一次 Game Jam 练习,也是第一次把一个从概念、玩法、关卡到发布页面都完整走完的小型公开展示流程。当前公开成果以 Jam 版本、TapTap 页面、Global Game Jam 页面和演示视频为准;后续计划里的手感、教学和新面具内容仍然是下一阶段验证目标。
核心玩法
游戏把“面具”设计成角色能力与关卡解法之间的转换器。每一种情绪不是单纯换皮,而是对应一套操作手感和环境反馈。
- 平静:看破隐藏路径和线索,帮助玩家理解关卡结构。
- 快乐:提升跳跃高度与移动轻盈感,用更强的机动性跨越平台。
- 愤怒:获得冲刺和破坏能力,撞开阻碍路线的障碍。
关卡设计的重点是让玩家意识到:真正的解法不是一直维持某种强能力,而是在不同情绪之间切换,选择当下最合适的状态。
截图与机制展示

平静状态下,部分隐藏平台会被显示出来,玩家可以通过观察来找到更安全的路线。

切换到快乐状态后,同一位置的平台不再可见,但角色获得更快的移动节奏。这个对比体现了项目的核心设计:状态不是单纯增益,而是会改变关卡读取方式。

关卡中把尖刺、墙面、移动平台和面具状态组合在一起,让玩家在操作和判断之间持续切换。

教学区域用大字提示三种面具的能力差异:平静可看见移动平台,快乐速度更快,愤怒可以破坏障碍。
主题表达
《Emotion Mask》的叙事核心是“接纳不同情绪,才可能靠近完整的自我”。平静、快乐和愤怒都不是绝对正确或错误的状态,它们分别承担观察、行动和突破的功能。玩家在不断切换面具的过程中,也是在重新理解自己与世界的关系。
因此,面具既是玩法工具,也是情绪外化的符号。它把抽象的心理状态变成了可操作、可失败、可重新尝试的游戏机制。
我负责的部分
- 独立完成玩法策划、程序开发、关卡设计、像素美术整合、音频整合、构建发布和商店页整理。
- 设计三种情绪面具的能力差异,并把状态切换接入移动速度、跳跃、二段跳、贴墙跳、冲刺次数、角色外观、背景和音乐。
- 实现“状态改变关卡读法”的核心链路:平静显示隐藏平台,快乐强化机动性,愤怒允许冲刺破坏障碍。
- 在 48 小时限制内完成开始菜单、关卡推进、检查点、死亡复活、碎片收集、计时结算和胜利画面。
- 在后续本地工程整理中,将构建场景整理为
StartMenu -> 001 -> 002 -> 003,并补入按关卡记录用时的排行榜、关卡完成菜单、音量按钮和触发式自动打字提示。 - 整理 TapTap、Global Game Jam、B 站演示和可执行包所需的介绍、标签、平台信息和展示素材。
技术实现
项目使用 Unity 与 C# 开发,重点放在角色控制、状态事件和关卡反馈的快速闭环上。
我把这个项目拆成“玩家控制、情绪状态、关卡反馈、死亡复活、结算发布”几层来讲清主线:玩家输入先进入移动和跳跃参数,MaskControl 再把情绪写回角色参数与场景对象,最后由陷阱、破坏物、碎片和结算系统给玩家反馈。这个拆法能让页面更清楚地说明:Emotion Mask 的核心不是三套皮肤,而是一套会改变关卡可读性的状态机。
MaskControl作为情绪状态中心,维护Neutral、Happy、Angry三种状态,并通过OnEmotionChangedEvent通知平台、音乐和其他反馈系统。- 每个情绪都有独立的
EmotionStats,会同步写入PlayerMove、PlayerJump和PlayerDash,让移动速度、跳跃力、二段跳、贴墙跳、冲刺速度、冷却和空中冲刺次数跟随状态改变。 - 平静状态通过
neutralPlatforms和EmotionalPlatform控制隐藏平台的显示和碰撞;切换离开平静时会解除玩家与平台的父子关系,避免平台被隐藏后把玩家一起带走。 - 愤怒状态与冲刺系统联动:
PlayerDash判断当前是否为Angry,Hurtcheck只有在愤怒且正在冲刺时才调用BreakableTilemap或障碍动画完成破坏。 - 死亡与复活由
Hurtcheck、CheckPoint、GetRespawn串起来:陷阱触发死亡动画后回到最近检查点,避免失败直接打断关卡节奏。 - 碎片收集由
Hurtcheck通知GameManager,达到目标数量后停止计时、记录排行榜、锁定玩家控制、切换结局音乐并显示胜利流程。
系统结构
项目脚本主要拆成五个模块:
- 玩家控制系统:
PlayerMove、PlayerJump、PlayerDash、GroundCheck、WallCheck,负责平台跳跃手感和冲刺行为。 - 面具切换与表现系统:
MaskControl、MaskAnimator、EmotionalPlatform、MusicManager,负责状态、外观、平台显隐和音乐切换。 - 关卡交互系统:
CheckPoint、GetRespawn、Hurtcheck、TrapCheck、PlatformMove、BreakableTilemap、CollectibleRotation,负责失败、复活、移动平台、障碍破坏和碎片反馈。 - 流程与结算系统:
GameManager、GameTimer、LevelLeaderboard、LevelCompleteMenu、PlayerCheckpoints,负责目标碎片、最终用时、关卡排名、关卡跳转和流程锁定。 - 菜单与界面系统:
StartMenu、GamingMenu、SceneLoadButton、MapSelector与基础 UI 动效,负责开始、暂停、选关、重开和返回。
整理成流程后,这个项目的关键不是“状态越多越好”,而是每个状态都要接回关卡反馈:
核心数据流是:玩家按键切换面具,MaskControl 更新当前状态和角色参数,再通过事件驱动平台显隐与音乐切换;玩家移动、跳跃和冲刺进入关卡交互,陷阱走复活链路,愤怒冲刺走破坏链路,碎片收集走结算链路。这个结构让 48 小时内的系统足够轻,但每个反馈都能回到“情绪切换”这个核心机制上。
工程取舍上,我优先保证“失败后能继续玩”和“状态切换不留下脏状态”:隐藏平台关闭前解除父子关系,陷阱死亡后回到最近检查点,胜利时锁定玩家控制并统一切到结局音乐。它们不是最炫的功能,但决定了一个 Jam 作品能不能被陌生玩家顺利试玩。
发布与反馈
《Emotion Mask》已发布到 TapTap,并同步提交到 Global Game Jam 2026。TapTap 页面展示了游戏简介、平台配置、开发者说明和玩家评分;GGJ 页面记录了项目的 Jam 年份、主题、站点、平台和开发工具。
这次发布让我第一次完整经历了“原型完成之后如何被别人看到”的过程:不仅要做出能玩的版本,还要思考封面、简介、标签、配置说明和下载入口如何共同呈现作品。后续本地工程里出现的多关卡流、排行榜和 UI 辅助系统会继续作为迭代基础,但是否进入公开版本仍需要后续手动 Play Mode 与打包验证。