存档重构,游戏内容解锁机制;教程完善(未完成)

This commit is contained in:
SoulliesOfficial
2026-07-18 16:51:18 -04:00
parent d48ef1e65e
commit dda354ebb9
123 changed files with 4032 additions and 558 deletions

View File

@@ -0,0 +1,323 @@
# ChatGPT / Codex 辅助 UI 与美术资产工作流
> 文档状态Active
> 首次建立2026-07-18
> Scope 更新2026-07-18 — Chapter 0 首发Windows、Android、iOS`en`、`zh-CN`、`ja`、`ko`、`vi-VN`
> 适用项目:`ichni Official`
> 关联路线图:`docs/release-readiness-roadmap.md` 的 `UI-001``UI-007`
## 1. 结论
**目前可以使用 ChatGPT/Codex 辅助 ichni 的 UI 优化和美术资产重制,并且不需要先雇佣其他人。** 当前工具可以根据文字或参考图生成、编辑 Raster Image适合制作
- 对话界面背景、章节背景、装饰性插画和氛围图。
- UI Panel、Frame、Divider、Button Skin、Badge 和装饰层的视觉方案。
- Icon 方向探索、Loading Illustration、Placeholder、Sprite Sheet 初稿。
- 根据现有 Mockup 做局部替换、去除元素、改色、扩图、重新构图。
- 从一个成熟页面提炼同系列视觉变体,建立统一风格。
它不能独立保证以下生产要求:
- 自动交付结构准确、命名规范且完全可编辑的 PSD/Figma Layer。
- 像素级一致的多状态组件、精确 9-slice 边界、可靠 Vector/SVG。
- 直接在图片中生成大量正确的中英日韩越正式文本。
- 自动完成 Alpha Edge、Texture Compression、Sprite Slice、Prefab State 和多分辨率验证。
- 自动判断每一项训练/参考/第三方素材的商业许可。
因此推荐“**AI 生成/定向编辑 + 免费图形工具清理 + Codex 自动化检查 + Unity 真机验证**”的混合流程。
本轮只服务 Chapter 0 首发。Chapter 1 的 UI/背景只能在不影响 Chapter 0 的设计、实现、LQA 和三平台性能验证时制作;`IchniCreatorStudio` 不在此工作流范围内。
OpenAI 当前官方说明支持在 Codex 中使用 `$imagegen`,也可以用 Image Generation API 做批量生产;官方建议使用少量参考图、短而具体的 Prompt、一次只做一个定向修改并把复杂文字排版留到设计工具中完成
- [OpenAI Image Generation in Codex](https://learn.chatgpt.com/docs/image-generation)
- [OpenAI Image Generation API Guide](https://developers.openai.com/api/docs/guides/image-generation)
## 2. ichni 当前视觉基线
### 已有优势
- 已形成深蓝、青色高光、轨道/圆环/细线装饰、低饱和背景的可识别风格。
- Start、Chapter Selection、Song Selection、Settings、Dialogue、Summary 都已有整屏视觉参考。
- 多数页面已有拆分 Sprite 和 Prefab 基础,不需要从空白重新设计整个产品。
- 视觉语言与音游、轨道、星空/轨道站意象相符,适合建立 Original Style Guide 后继续扩展。
### 当前风险
- 背景纹理和装饰层偏密集,小字号与低对比标签容易被吞没。
- 多处 Icon-only Control缺少 Hover/Focus/Disabled 和可访问性定义。
- Scene 中混用 `1920×1080``2560×1440` Reference Resolution移动端 Safe Area 尚未建立。
- Runtime `Assets` 中同时存在大体积 PSD、整屏 Mockup 和拆分图,源文件与运行时导出没有清晰边界。
- Scene 仍有硬编码/测试文本;如果文字继续烘焙进图片,会扩大本地化和返工成本。
- 许多 UI Texture 的实际用途、状态和引用尚无 Manifest批量重制容易产生孤儿资产或破坏 Prefab 引用。
## 3. 先建立的三条原则
1. **文字不进入背景图。** 所有会本地化、变化或显示数据的文字都使用 TMP/Localization图片只包含不可读的抽象纹理和装饰。
2. **先拆 UI 责任,再生成图片。** AI 不负责决定 Screen Flow、信息层级和 Interaction State先完成 UI Inventory 和 Design Tokens。
3. **每次只验证一个小批次。** 先做 Dialogue Pilot进入 Unity 验证后,再扩到其他 Screen避免批量生成一套无法切片或不可读的资产。
## 4. 免费工具组合
| 任务 | 推荐工具 | 用途 |
|---|---|---|
| 生成与定向修改 | ChatGPT/Codex `$imagegen` | Background、Illustration、Panel/Frame 方案、局部编辑 |
| 批量生成 | OpenAI Image Generation API | 经 Pilot 批准后的受控批次与变体 |
| Raster 清理 | Krita / GIMP / Photopea | Mask、Alpha、Layer、Color、Edge Cleanup、PSD 导出 |
| Vector/Icon | Inkscape | 几何 Icon、SVG、可缩放线条和 Logo 形状 |
| Unity 集成 | Unity Sprite Editor / SpriteAtlas | Slice、Border、Packing、Compression、Prefab State |
| 自动验证 | Codex 编写 Editor Tool / CI Validator | Naming、Dimensions、Import Settings、Missing Reference、Build Size |
不雇佣其他人的可行性取决于 Scope背景、Panel、装饰和有限 Icon 可以由现有团队完成如果要求大量高精度角色立绘、复杂动画、Logo 品牌系统或多章节插画,仍应先缩小首发资产数量,而不是让 AI 无限制扩张内容。
## 5. 资产生产管线
### Stage A — UI Inventory
在生成任何新资产前,为每个 Screen 建立清单:
| Field | 示例 |
|---|---|
| Asset ID | `UI-DIALOG-BG-001` |
| Screen | Dialogue |
| Role | Background / Frame / Panel / Button / Icon / Decoration |
| Current Path | `Assets/Sprites/UITextures/...` |
| Prefab/Scene References | Dialogue Prefab、`MenuScene` |
| State | Normal / Hover / Pressed / Selected / Disabled / Focused |
| Size / Aspect | 2560×1440、9-slice、64×64 等 |
| Locale Text | 必须为 `None`,文字由 TMP 承担 |
| Replace / Keep | 要替换的层与必须保留的层 |
| Owner / Status | TODO / REVIEW / APPROVED / IN UNITY / DONE |
Inventory 完成后,才能判断哪些整屏图片只是 Reference哪些 Sprite 被 Runtime 真正引用。
### Stage B — Lightweight Art Bible
至少定义:
- Color TokensBackground、Surface、Primary Cyan、Secondary Blue、Warning、Error、Disabled、Text Levels。
- TypographyTMP Font、Size Scale、Line Height、CJK/Latin Fallback、数字样式。
- ShapeCorner Radius、Line Width、Panel Border、Cut Corner、Orbit Motif 使用密度。
- Spacing4/8 px Grid 或项目选择的统一 Grid。
- Lighting高光方向、Glow 强度、是否允许 Bloom-like Edge。
- TextureNoise 粒度、背景对比、装饰透明度上限。
- Motion出现/消失时长、Easing、Focus/Selected 反馈。
- Accessibility最小文字尺寸、最低对比、状态不能只依赖颜色。
描述风格时使用原创特征,例如:
> Original dark navy and cyan sci-fi rhythm-game interface, restrained orbital-line motifs, layered translucent panels, precise geometric framing, quiet star-field ambience, high readability, no text, no logo, no imitation of any named artist or franchise.
不要要求模仿具体在世艺术家、品牌或游戏的独特风格。
### Stage C — Decompose Full-screen Mockup
整屏 UI 应拆成以下层:
1. `Background`:全屏、无文字、低信息密度,可按 Aspect Crop/Extend。
2. `Atmosphere`Glow、Dust、Stars、Fog必要时独立以控制透明 Overdraw。
3. `Structural Frame`:顶栏、底栏、边框、轨道线;优先 Vector 或 9-slice。
4. `Panel Skin`:可重复使用的 9-slice Surface不给每个 Screen 单独生成一张。
5. `Decorative Overlay`:非交互性的角花、圆环、扫描线;数量要受性能预算约束。
6. `Interactive Components`Button、Tab、Slider、Toggle、Dropdown每个状态明确。
7. `Icons`:统一 Grid、Stroke、Padding、Optical Weight。
8. `Text/Data`:全部由 TMP、Localization 和 Runtime Data 渲染。
AI 最适合负责 1、2、5 和部分 3/4 的视觉素材6、7 最终应由规则化组件和 Vector/手工清理保证一致性。
### Stage D — Generate / Edit
每次请求必须包含四部分:
1. **Context**:它属于哪个 Screen、玩家在做什么。
2. **Keep**:现有参考图中必须保留的构图、色彩或留白区域。
3. **Change**:本轮只改变什么。
4. **Output Contract**尺寸、Aspect、Alpha、是否 Tileable、是否无文字、留白和导出用途。
示例:
```text
Using the attached ichni dialogue mockup as a visual reference, create an original
2560x1440 dialogue background layer only. Keep the dark navy/cyan palette, orbital
line motifs, and the quiet sci-fi station atmosphere. Remove every panel, portrait,
button, icon, logo, and all readable text. Reserve calm low-detail negative space in
the lower 38% for the dialogue panel and on the left 28% for a character portrait.
Avoid bright focal points behind future text. Full-bleed raster background, no frame,
no watermark, no embedded typography.
```
Panel Skin 示例:
```text
Create one original transparent PNG UI panel skin for ichni: a dark navy translucent
surface with a restrained cyan 2 px geometric border and subtle cut corners. Front
view, perfectly rectangular, symmetrical, no perspective, no glow outside the canvas,
no text, no icon, no logo, large clean center, designed for 9-slice use. Provide one
normal-state asset; do not create a screen mockup.
```
局部编辑示例:
```text
Edit only the highlighted upper-right decoration. Reduce its brightness and visual
density by about one third so it no longer competes with the title. Keep all other
pixels, dimensions, palette, composition, and transparency unchanged.
```
如果结果不理想,下一轮只提出一个具体修改,例如“扩大底部留白”“降低背景亮点”“保持边框不动,仅移除文字”,不要同时重新设计所有层。
### Stage E — Cleanup and Export
AI Output 进入 Unity 前必须经过:
- 删除假文字、Watermark-like Shape、脏边和随机不可解释细节。
- 检查 Alpha Premultiplication、半透明边缘和深色背景 Halo。
- 几何边框重新拉直;需要精确重复的形状用 Inkscape/Krita 重建。
- 对 9-slice 资产保证四角固定、边缘可拉伸、中心无不可拉伸纹理。
- 保留 Working SourceKrita/PSD/SVG与最终 PNG不要只保存聊天输出。
- 生成时的 Prompt、Reference、Model/Date 和人工修改说明进入 Manifest。
推荐未来目录:
```text
ArtSource/
UI/
Dialogue/
Working/
References/
Prompts/
Assets/
Sprites/
UITextures/
Dialogue/
Backgrounds/
Panels/
Icons/
```
`ArtSource` 是否放在主 Git、Git LFS 或独立美术仓库应另行决定。在完成引用审计之前,不要直接移动当前 PSD/PNG先复制、重新导出、替换引用再删除旧资产。
### Stage F — Unity Import
推荐默认值需按目标平台复核:
| 类型 | Texture Type | Mip Maps | Alpha | Compression | 备注 |
|---|---|---|---|---|---|
| UI Background | Sprite (2D and UI) | Off | 按需 | 平台压缩 | 控制 Max Size避免不必要的 Alpha |
| Panel / Button | Sprite (2D and UI) | Off | On | 高质量/平台适配 | 配置 Border验证 Pixel Edge |
| Icon | Sprite (2D and UI) | Off | On | 高质量 | 统一 PPU、Padding、尺寸 |
| Repeatable Pattern | Sprite / Default | 视 Shader | 按需 | 平台适配 | 验证 Wrap Mode 与 Seams |
集成检查:
- Sprite 引用落在 Prefab而不是只在 Scene 内临时替换。
- Button 的 Normal/Highlighted/Pressed/Selected/Disabled/Focused 状态齐全。
- Dynamic Batching 不是透明 UI 性能解决方案;用 Canvas 分组、Atlas、覆盖面积和 Overdraw 实测。
- 进入 SpriteAtlas 后检查 Padding、Alpha Bleed、Build Size 和首屏加载。
- 目标 Locale 文本使用 TMP Overlay 验证,不得回到烘焙文字。
### Stage G — Review and Approve
只有同时通过四个 Gate 才能标记 `APPROVED`
1. **Visual Gate**:符合 Art Bible、层级清楚、不抢文字、同系列一致。
2. **UX Gate**信息与交互优先级正确所有状态可识别Keyboard/Controller/Touch 可用。
3. **Technical Gate**尺寸、Alpha、9-slice、Import、Atlas、Memory、Overdraw、Safe Area 合格。
4. **Rights Gate**来源、Prompt、Reference 权限和人工修改有记录,没有未经授权的 Logo/角色/商标。
## 6. 推荐的 Dialogue Pilot
第一轮只制作以下资产:
- `UI-DIALOG-BG-001`:无文字 Dialogue Background。
- `UI-PANEL-BASE-001`:通用 9-slice Panel Skin。
- `UI-BUTTON-PRIMARY-001`Normal、Highlighted/Focused、Pressed、Disabled 四个 State。
- `UI-DIALOG-DECOR-001`:一组低密度装饰 Overlay。
Pilot 步骤:
1. 从现有 Dialogue Mockup 导出一张 Reference并标记必须保留/删除区域。
2. 为四个资产分别写 Asset Contract不要求一次生成整屏成品。
3.`$imagegen` 生成 24 个方向,只选择一个继续。
4. 在 Krita/GIMP/Inkscape 完成精确 Layer、Alpha、Border 和状态变体。
5. 在一个复制的 Dialogue Prefab/测试 Scene 中集成,避免直接覆盖生产 Prefab。
6.`1920×1080``2560×1440`、16:10、Android 刘海/挖孔设备与 iOS Safe Area 截图对比;首发固定横屏。
7. 对比旧版/新版的文字对比度、Draw Calls、Texture Memory、Overdraw 和加载时间。
8. 只有通过 Review Gate 后,才扩展到 Start、Chapter、Song Selection、Settings、Summary。
## 7. Codex 可以进一步自动化的工作
在 Pilot 规格稳定后,可以让 Codex 实现以下 Unity Editor 工具:
- 扫描 UI Texture 的 Naming、尺寸、Texture Type、Mip Maps、Alpha、Compression、Max Size。
- 输出“Sprite → Prefab/Scene”引用报告辅助安全清理旧 PSD/PNG。
- 读取 Asset Manifest检查缺失 State、Locale Text 烘焙风险和未批准资产。
- 批量创建/更新 SpriteAtlas 和平台 Override但必须先由项目确认规范。
- 生成多分辨率 Screenshot Matrix辅助人工视觉回归。
- 扫描 Scene/Prefab 中硬编码 TMP 文本和缺失 Localization Key。
- 统计 Texture Memory、StreamingAssets 平台冗余与 Build Size 变化。
这些自动化应在 Pilot 确认后编写,否则工具会把尚未决定的美术规范固化到工程里。
## 8. AI Asset Manifest 模板
建议保存为 CSV/JSON至少包含
```text
asset_id
screen
role
source_path
runtime_path
dimensions
alpha_required
slice_border
states
prompt_version
reference_ids
reference_rights
generation_date
manual_edits
unity_import_profile
prefab_references
review_status
reviewer
notes
```
命名示例:
```text
ui_dialog_bg_ch00_v001.png
ui_panel_base_9s_v003.png
ui_button_primary_normal_v002.png
ui_button_primary_focused_v002.png
ui_icon_settings_gear_v001.png
```
不要把“final”写进文件名版本和 Approval 状态由 Manifest 管理。
## 9. 质量与安全红线
- 不生成或保留可识别的第三方 Logo、角色、UI Trade Dress 或受保护品牌元素。
- 不用具体艺术家/游戏名要求模仿;用颜色、构图、材质、密度、光线、形状等可验证特征描述。
- 不让 AI 在资产里生成玩家会阅读的正式文本。
- 不直接覆盖现有生产资产先做新文件、替换引用、A/B 验证,再清理旧资源。
- 不因为“看起来更精细”就接受更高的 Texture Memory、透明覆盖和 Loading 成本。
- 不批量生成大量近似资产;优先复用 Panel、Icon Grid、Token 和 Shader。
- 不把聊天记录当作唯一 Source保存 Prompt、Reference、Working File 和 Export。
## 10. 何时可以开始
满足以下条件即可开始 Dialogue Pilot
- [x] `release-readiness-roadmap.md``DEC-001``DEC-003` 已确认Windows、Android、iOS以及 `en``zh-CN``ja``ko``vi-VN`
- [ ] `UI-001` UI Inventory 至少完成 Dialogue Screen。
- [ ] `UI-002` 有一版可用的 Color/Type/Spacing/Shape Token。
- [ ] 选定一张现有 Dialogue Mockup 作为 Reference。
- [ ] 明确 Pilot 的性能预算,并将 Windows、Android、iOS 横屏与 Safe Area 写入 Asset Contract。
- [ ] 先建立复制的测试 Prefab/Scene不直接覆盖生产资源。
满足后,可以直接让 Codex 执行:
> “按照 `docs/ai-assisted-ui-art-workflow.md`,为 Dialogue Pilot 创建 Asset Contract并使用现有 Dialogue Mockup 生成 `UI-DIALOG-BG-001` 的候选图。”