角色多方向图生成

This commit is contained in:
2026-08-12 18:14:25 +08:00
parent 1575afc92c
commit 132bf7db35
16 changed files with 727 additions and 26 deletions
@@ -0,0 +1,88 @@
# 【技术方案】角色设定 → 多方向角色图 → 拆分 → 动画生成
- 日期:2026-08-12
- 状态:设计稿 v3(简化:唯一新增能力是"从角色设定生成多向角色图",拆分与动画全走现有能力)
- 实现状态:**核心已实现**(多向图生成:后端 `character-sheet` kind + 前端角色面板开关,2026-08-12
- 拆分集成:角色多方向图(action=`character-sheet.generate`)经既有「拆分图集」切出的单视角切片按 `character` 落库,可直接作为动画参考(`editor_spritesheet_slice_record_asset_kind``editor_project_icon.rs`
- 关联:`【技术方案】ArtAgent多模态Spine序列帧动画生成-2026-08-10.md`
## 1. 背景
- Spine 序列帧动画(`character-animation`)是"图生视频 → 抽帧",图生视频以首帧为准;首帧里角色越多,输出多角色概率越大。
- 现状角色形象以多视角规范图为参考,可能产出"一个角色多个视角"的多角色图,直接当动画首帧会多角色。
- 结论:需要从角色设定**能生成一张"多方向角色图"**(同一角色、多方向、彼此分离),拆成单张后分别做动画。
## 2. 范围
**唯一新增能力**:从角色设定(角色规范图 / 已有单视角角色图)生成一张**多方向角色图**(四视图默认)。
**其余全部复用现有能力,不做额外保障:**
- 图集类型:复用现有 `icon-spritesheet`(「图集」),不新增资产类型。
- 拆分:复用现有「拆分图集」(连通块拆分,`split_editor_icon_spritesheet`),**手动触发**,不自动拆分。
- 方向/数量:**不保证**。生成错了用户重新抽卡;方向标签用户自己看。
- 动画:对拆分出的单视角图,按现有动画面板逐个生成。
## 3. 流程
```
角色设定(规范图 / 已有角色图)
│ 参考
【新增】生成多方向角色图 → 产出 icon-spritesheet 图集
【现有】用户手动「拆分图集」(连通块)→ N 张单视角图
【现有】选单视角图 → 图生视频 → 抽帧 → Spine序列帧
```
## 4. 新增能力:生成多方向角色图
- 入口:在「生成角色形象」面板加一个按钮「生成多方向角色图」;或复用「生成图标素材」面板切到角色多向模式。建议前者。
- 链路:复用图集生成链路(`generate_editor_icon_spritesheet_for_owner`),模型 `nanobanana2`
- 输出:一张 `icon-spritesheet` 图集,四个方向(前/后/左/右),同一角色、方向之间纯色底间隔、彼此分离。
- 提示词是质量关键(草案):
```
根据角色设定生成游戏角色的多方向视图图集。
画面中只有同一个角色,按四个方向排布:正面、背面、左侧、右侧,每个方向一个完整角色,方向之间相互分离、互不重叠、互不接触。
四个方向必须是同一个角色,脸型、发型、服装、配色、武器、头身比、体型全程一致,禁止漂移、换装、变形。
每个方向角色完整居中,不裁切头顶、手脚或武器;四个方向底部基线对齐,画面占比一致。
背景为单一纯色(绿幕 #00FF00 / 白底 #FFFFFF),平整无纹理、无渐变、无阴影、无地面、无道具;角色之间由纯色背景间隔,便于后续拆分。
禁止额外角色、分身、宠物、文字、水印、边框、编号、网格线。
角色设定:{}
```
- 参考归属校验:复用 `resolve_editor_reference_object_key_for_owner` / `ensure_editor_reference_object_key_owned`,禁止跨账号 objectKey。
## 5. 使用流程(全部现有)
1. 生成多方向角色图 → 得到 `icon-spritesheet` 图集图层。
2. 选中图集 → 点「拆分图集」(现有按钮)→ 得到若干单视角图。
3. 对每个想用的方向,选对应单视角图 → 动画面板生成(默认右视图起步)。
## 6. 边界
- 生成质量靠提示词;图不对 → 用户重新抽卡,**不做数量/方向校验**。
- 连通块若粘连(方向贴太近)→ 拆分数量不对 → 重新抽卡或人工处理,不自动兜底。
- 成本:多向图一次图像生成;拆分 0 provider 成本;每个方向动画各一次(现有计价)。
- 旧链路(直接拿单视角角色图做动画)不变。
## 7. 验收
1. 从角色设定能生成一张多方向角色图,各方向为同一角色。
2. 该图可作为图集手动拆分,拆出的单视角图能进动画面板生成单角色序列帧。
3. 旧链路回归不破。
## 8. 决策点(留给产品)
- 四视图 vs 八方向(当前建议四视图:前/后/左/右)。
- 入口位置(「生成角色形象」面板按钮 vs 复用图标图集面板)。
- 多向图背景色(绿幕/白底)。
## 9. 改动文件
- 前端:`ImageCanvasGenerationModel.ts`(多向图提示词/常量)、`ImageCanvasGenerationDialogModel.ts``ImageCanvasGenerationSubmissionModel.ts``ImageCanvasGenerationComposerView.tsx`(入口按钮)。
- 后端:`editor_project_icon.rs`(多向图生成提示词分支)或 `editor_project.rs``shared-contracts`(如需 DTO 字段)。
- 无需动拆分逻辑、动画逻辑、存储层。