Files
HEROLL/docs/2026-08-25_逆向资源-HEROLL美术资产-report.md
T

138 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HEROLL 逆向美术资源归类报告
> 分析日期:2026-08-25
> 范围:本地 Unity 逆向归档,离线静态分析与资源导出
> 结论:已建立 24,859 条视觉相关对象目录,识别 6,431 条资产对象,并成功导出 2,964 张可直接审阅的 PNG。
## 执行摘要
目标是 Unity 2D 像素游戏资源。核心美术数据集中在 `sharedassets3.assets`、`sharedassets4.assets`、`level3`、`level4`、`level6` 等容器。视觉语言由像素角色/棋盘场景、高清像素 UI、Sprite 动画与大量粒子组件构成。
| 分类 | 资产对象 | 去重名称 | 典型内容 |
|---|---:|---:|---|
| UI | 2,333 | 1,204 | 按钮、面板、图标、HUD、商店、抽卡、奖励、教程 |
| 待人工复核 | 1,624 | 950 | 无语义命名的 Sprite/Texture2D |
| 角色 | 772 | 390 | 玩家、Boss、怪物、宠物、NPC、装备拆件 |
| 动作/动画 | 619 | 614 | 427 AnimationClip、180 Controller、12 Override Controller |
| VFX | 456 | 301 | 斩击、发光、火焰、冲击、粒子贴图与技术资源 |
| 场景 | 332 | 215 | 六类生态背景、棋盘 Tile、环境道具、地图层 |
| 技术美术 | 290 | 69 | Material、Shader、Mesh、RenderTexture |
| 字体 | 5 | 5 | 本地化字体资源 |
另记录 5,786 个 ParticleSystem、5,786 个 ParticleSystemRenderer、982 个 Animator、430 个 Tilemap 等场景组件,用于依赖与复杂度评估,不与独立资产对象混算。
## 资源位置与使用方式
- 全量目录:[`art-asset-catalog.csv`](../work/heroll-art-assets/catalog/art-asset-catalog.csv)
- 已分类 PNG:[`classified-assets`](../work/heroll-art-assets/classified-assets)
- 导出清单与哈希:[`export-manifest.csv`](../work/heroll-art-assets/catalog/export-manifest.csv)
- 同名/重复关系:[`duplicate-logical-assets.csv`](../work/heroll-art-assets/catalog/duplicate-logical-assets.csv)
- 人工复核队列:[`manual-review-queue.csv`](../work/heroll-art-assets/catalog/manual-review-queue.csv)
- 已有证据板:[`evidence-boards`](../analysis/visual-study/evidence-boards)
- 动画明细:[`animation-clips.csv`](../analysis/visual-study/animation/animation-clips.csv)
导出目录结构为:
```text
classified-assets/
UI/<subcategory>/Sprite/
Scene/<subcategory>/{Sprite,Texture2D}/
Character/<subcategory>/{Sprite,Texture2D}/
VFX/<subcategory>/{Sprite,Texture2D}/
UnclassifiedVisual/<subcategory>/{Sprite,Texture2D}/
```
```mermaid
flowchart LR
A[Unity APK/XAPK 逆向归档] --> B[204,145 条对象索引]
B --> C[视觉类型与名称规则]
C --> D[6,431 条资产对象]
C --> E[18,428 条组件证据]
D --> F[去重 Sprite/Texture2D]
F --> G[2,964 张分类 PNG]
D --> H[人工复核队列 1,624 条]
```
## 美术分类结论
### UI
UI 是最大可直接生产参考类,包含战斗 HUD、Boss/骰子图标、按钮控件、面板框体、商店/抽卡/奖励、装备与教程。命名规律以 `btn`、`icon`、`panel`、`bg`、`shop`、`gacha`、`reward`、`ingame`、`tutorial` 为主。UI 与世界层共用像素语言,但面板和控件的描边、九宫格与信息密度更高。
### 场景
场景资源呈明显分层:`chapter_select_back_*` 是远景,`chapter_select_front_*` 是前景城墙/地表。确认草原、沙漠、火山、石地、深渊、雪地六类生态。棋盘资源由 Tilemap、Tile、节点、地面与路径元素组成。
### 角色
角色以小尺寸像素精灵为主,分玩家骑士、Boss、普通敌人、宠物/支援、NPC 与装备拆件。Boss 使用大轮廓、武器和头饰强化辨识;玩家与怪物动作帧存在独立贴图与 Sprite 组合。
### 动作与特效
共 427 个 AnimationClip。现有动画规则清单中已归出 Boss 67、战斗 38、骰子 15、棋盘/Tile 10、奖励/抽卡 29、局外/大厅 4,剩余 233 个待进一步语义标注。特效侧同时存在贴图序列、材质/Mesh 和粒子组件;仅以贴图数量衡量会严重低估特效规模。
### 技术美术与字体
技术美术包含 261 个 Material、61 个 Shader、4 个 Mesh、13 个 RenderTexture。字体包含 5 个 Font 与配套材质/纹理。当前索引容器没有 AudioClip 或 VideoClip;工作区中的 MP4 为参考录像,不应混入游戏美术资产目录。
## Evidence
| ID | source_ref | content_hash | repro_command |
|---|---|---|---|
| E-001 | `work/heroll-art-assets/catalog/art-asset-catalog.csv` | `5F4EEAA9587073807BE13B4EA8A024A628DC36247386C653CE201AC21CEBE12C` | 运行 `work/heroll-art-assets/scripts/classify_art_assets.py` |
| E-002 | `work/heroll-art-assets/catalog/export-manifest.csv` | `BC4EFF100EB21744507907AD73BEF978E0240E53B5726753C431D218C72AEC0C` | 运行 `work/heroll-art-assets/scripts/export_classified_visuals.py` |
| E-003 | `analysis/visual-study/evidence-boards/*.png` | n/a | 打开角色、场景、UI、VFX 四张证据板 |
| E-004 | `analysis/visual-study/animation/summary.json` | n/a | 读取动画统计与时长区间 |
## Findings
| ID | 结论 | evidence_ids | confidence | location | status |
|---|---|---|---|---|---|
| F-001 | 目标为 Unity 2D 像素项目,美术资源以 Sprite/Texture2D、Tilemap、Animator 和 ParticleSystem 组织 | E-001,E-003 | high | Unity 资产归档 | validated |
| F-002 | UI 是最大可命名资产族;场景为六生态分层背景与棋盘 Tile 体系 | E-001,E-003 | high | sharedassets3/4 | validated |
| F-003 | 动作资源至少含 427 Clip、180 Controller、12 Override Controller | E-001,E-004 | high | sharedassets3-7 | validated |
| F-004 | 成功导出 2,964 张 PNG;5 张字体纹理因流路径解析失败 | E-002 | high | classified-assets | validated |
| F-005 | 1,624 条资产缺少足够语义命名,需要结合缩略图进行二次人工标注 | E-001,E-002 | high | manual-review-queue.csv | validated |
## Path
### P-001 美术资源还原路径
- path_type: solve
- start: APK/XAPK 解包后的 Unity 资产容器
- goal: 可审阅、可追溯、可继续人工精修的分类资源库
- steps:
1. 读取 Unity 对象清单并筛出视觉类型 — E-001 — F-001
2. 依据类型、名称与人工样例划分 UI/场景/角色/动作/VFX — E-001,E-003 — F-002,F-003
3. 以 Sprite 优先、Texture2D 去重策略导出 PNG — E-002 — F-004
4. 将低语义命名资产送入人工复核队列 — E-001,E-002 — F-005
- residual_risks: 规则分类存在少量跨类资源;ParticleSystem 的完整材质/贴图依赖尚未反向连边。
## 复现
```powershell
& 'C:\Users\toshio\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe' `
'C:\Users\toshio\Documents\ChatGPT\heroll\work\heroll-art-assets\scripts\classify_art_assets.py'
& 'C:\Users\toshio\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe' `
'C:\Users\toshio\Documents\ChatGPT\heroll\work\heroll-art-assets\scripts\export_classified_visuals.py'
```
## 资源管理建议
1. 以 `category/subcategory/type` 作为物理目录,以 `asset_id` 作为不可变追溯键。
2. 保留 Sprite 与 Texture2D 的逻辑重复关系,不直接删除原对象;发布库只保留 Sprite 优先导出结果。
3. 先处理 `manual-review-queue.csv` 中面积大、字节高、重复次数少的资产,收益最高。
4. 下一阶段应建立 `AnimationClip → Sprite/Renderer` 与 `ParticleSystem → Material → Texture` 依赖图,才能形成可迁移的完整资源包。
## 限制
- 本轮是离线静态分析,未运行游戏验证每个资源的实际屏幕归属。
- 规则分类是生产级初筛,不替代美术负责人最终确认。
- `tool-index.md` 在技能包中缺失;本轮使用了已验证的本机 Python、UnityPy 与 Pillow 路径。
- 5 张 `Font Texture` 未导出,错误已完整记录在 `export-manifest.csv`。
## Timeline
完整记录见 [`timeline.md`](../work/heroll-art-assets/timeline.md)。