角色多方向图生成
This commit is contained in:
@@ -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 字段)。
|
||||
- 无需动拆分逻辑、动画逻辑、存储层。
|
||||
Reference in New Issue
Block a user