← 返回项目列表

A(i)dol 开发中

“You are not managing an idol. You ARE one.” 一款竖屏单机偶像养成手游:玩家的输入与游戏内选择会影响自己偶像的形象、声音与展示视频,再进入 World 信息流获得粉丝。

时间
2026.08 – 至今(资料截至 2026.10.13)
团队
CMU ETC · 6 人
引擎
Unity 6 · URP 2D · C# · UGUI
我的角色
Unity 前端 · 系统规则落地 · 内容配置与编辑器工具
Android 真机:启动、加载到开场
造型室:手指擦雾揭晓新造型
World:竖滑浏览偶像的视频
World:评论抽屉与点赞

项目概述

A(i)dol 是 CMU ETC 2026 秋季学期项目,面向已经在做二创(剪辑、同人、OC、翻唱)的偶像与动漫粉丝。玩家从一张试镜邀请开始,经过面试、造型、录影,一步步把“自己的偶像”养到出道;AI 生成流水线负责形象、声音、音乐和视频,玩家的输入会影响这些结果。出道后进入叫 World 的竖屏信息流,在那里获得粉丝。

我是两名 Unity 前端之一,负责把团队定下的系统规则变成可运行的数据、状态和界面流程,并给内容同学做配置和调试工具;后端与 AI 生成管线由队友负责。项目仍在开发中,本页内容基于 2026 年 10 月 13 日前的工作记录。

中期汇报:试镜 → 训练 → 出道 → 粉丝
中期汇报:试镜 → 训练 → 出道 → 粉丝
中期汇报:完整体验流程
中期汇报:完整体验流程

案例一:玩家流程与状态门控

游戏是一条有分支的主线:登录 → 面试 → 宿舍 → 造型 → 录影 → 夜间剧情 → World 查看成片。我在 9 月中旬先搭了这一层:

  • 进度与持久化架构:进度枚举、一次性事件标记、本地 JSON / PlayerPrefs 存储、存储接口与后端存储适配,以及统一的 API 请求出口。
  • 场景路由与主线检查点:剧情场景统一进出口,主线检查点决定玩家能进哪些场景;地图上的地点状态和任务 UI(完成 / 当前 / 锁定)、通知红点都由同一份进度驱动。
  • 9 月 23 日的 V1 把登录、面试、造型、录影、夜间剧情和 World 成片查看串成了第一条可以从头玩到尾的流程;之后的版本在此基础上调整顺序(例如录影改为从宿舍经地图进入)。
把“玩家现在在哪、能去哪”收敛成一份状态,是后面所有系统的前提。各界面只读状态、不各自维护进度,之后几次改流程顺序都没有动过界面代码。

案例二:体力与造型规则落地

团队定了资源规则:Dols(软通货)、Diamonds(硬通货)、Stamina(体力,初始 100);主线的面试 / 造型 / 录影分别扣 5 / 20 / 20。我负责把规则接进数据配置、UI 状态和后端契约:

  • 必扣事件只消费一次:用一次性标记保证主线消费不重复。
  • 主线体力预留:可选消费必须给尚未完成的主线留出预算,玩家不会因为在支线花光体力而卡住主线。
  • 造型室状态机:Intro → TierSelect → Wardrobe → Generating → Ready → Reveal → Feedback → Exit。套装与上下装互斥 / 覆盖、8 槽完成条件(早期版本为 7 槽)、付费解锁确认、Surprise 抽取与收据规则,都由数据表驱动——12 项肤色与 334 项造型来自团队的美术与数据表,我负责目录导入、配置、界面和服务对接。
  • 生成与揭晓:发起生成请求、异步轮询结果、立绘与头像回填和缓存;完成后进入手指擦雾揭晓(可跳过,擦除阈值是可配置参数),之后可查看立绘大图。
三种资源:Dols / Diamonds / Stamina(中期汇报)
三种资源:Dols / Diamonds / Stamina(中期汇报)
从美术资产到 UI 系统(中期汇报)
从美术资产到 UI 系统(中期汇报)

案例三:生成等待体验的迭代

AI 生成有等待时间,需要一个机制盖住这段等待。最初的方案是一个 60 秒三消小游戏,我完成了它的原型:消除组数对应 Low / Mid / High 三档评级,奖励按档位发放,最多 3 局、每局扣 5 体力,多局取最佳评级只补奖励差额。

9 月 29 日对 37 位 K-pop 粉丝做了第一次试玩;10 月 7 日团队决定把 World 扩为核心机制;10 月 8 日的版本删除了三消,等待期改为引导玩家浏览 World,生成完成后切换揭晓按钮、状态卡和通知。World 的常规解锁时机也相应从夜间剧情完成调整为造型完成。我按这些决定完成了机制切换。

三消是一个做完、测过、然后被团队决定砍掉的原型。对我来说这是整个项目里最有价值的一次迭代:原型做出来的成本足够低,“换”才能是一个轻松的决定。
试玩反馈:玩家想要可带走的东西、正负两面的后果,World 是“WOW moment”
试玩反馈:玩家想要可带走的东西、正负两面的后果,World 是“WOW moment”
原计划是三消小游戏 → 试玩后改为 World 浏览
原计划是三消小游戏 → 试玩后改为 World 浏览

案例四:内容生产工具

  • World Studio:World 是一个可以从任意场景打开的独立预制体,保持页面与播放器状态。World Studio 集中提供账号、视频、评论数据的导入与校验(由数据库和 JSON 管理),预制体构建与迁移,运行时打开 / 关闭、翻页与调试。内容同学不进代码就能填充信息流。
  • UI 构建工具:从资源批量构建界面,重建时保留美术手调的布局与引用;后续构建只补缺失的面板和空引用。宿舍主场景 V2 的手调位置就是这样同步回工具的。
  • 主题换皮配置:礼包页与合同页需要按不同公司(SOM / ERIS)换底图,原来文本是死坐标。我把文字、签名、印章、条款区域做成归一化配置,按底图比例布置,并提供预览 / 重排的编辑器工具。
  • Login 与邮件导出前端:玩家名字 / 可选邮箱输入与本地校验、会话参数、成片 ready 后的导出入口与请求状态反馈;邮件发送服务由后端负责。
两家虚拟经纪公司 ERIS / SOM 的视觉识别——礼包页与合同页需要按公司换皮
两家虚拟经纪公司 ERIS / SOM 的视觉识别——礼包页与合同页需要按公司换皮
学期交付:可玩原型 + AI 开发手册
学期交付:可玩原型 + AI 开发手册

交互与多端适配

  • World 的竖滑翻页、暂停、按钮 / 双击点赞、评论抽屉;评论点赞与本局发送的评论为本地状态,不是多人服务。Following、搜索、Shop、发布等入口在当前版本仍是占位。
  • 手机与平板采用不同的视频适配策略避免拉伸;RootHeightFitter 与独立的 World 缩放策略处理两种比例的布局。测试基线为 Pixel 手机与 Samsung 平板。
  • 对 Pixel 6 的触屏输入、安全区域、Canvas 缩放等做过一轮审查并列出真机测试清单;Web 发布与 iOS 内测做过可行性评估,尚未实施。

开发过程中使用了 AI 辅助编码。项目主页:projects.etc.cmu.edu/aidol