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

7.8 KiB
Raw Permalink Blame History

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 等场景组件,用于依赖与复杂度评估,不与独立资产对象混算。

资源位置与使用方式

导出目录结构为:

classified-assets/
  UI/<subcategory>/Sprite/
  Scene/<subcategory>/{Sprite,Texture2D}/
  Character/<subcategory>/{Sprite,Texture2D}/
  VFX/<subcategory>/{Sprite,Texture2D}/
  UnclassifiedVisual/<subcategory>/{Sprite,Texture2D}/
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 的完整材质/贴图依赖尚未反向连边。

复现

& '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。