Skip to content

工作流编辑器画布:卡片加号式编排(Refs #37 §3.8) #87

Description

@huyanxius

本 Issue 定义画布的卡片加号编排形式,用来验证工作流编辑器的自定义能力。

背景

#37 §3.8 确定 Quick Start 与画布为两个入口、共用一条流程,画布面向需要精细控制的生产任务,但未定义精细控制的具体内容。

live demo 的画布沿用通用节点编辑器形式:卡片可拖动,连线由用户绘制,绘制后再校验。而合法连接在代码中写死为一条链,八张卡片首尾相接,不存在第二种连法。

// asset-lab/features/node-canvas.js
ALLOWED_CONNECTIONS = [
  ['character-setup', 'character-template'],
  ['character-template', 'template-candidate'],
  ['template-candidate', 'action-setup'],
  ['action-setup', 'first-frame'],
  ['first-frame', 'complete-animation'],
  ['complete-animation', 'review'],
  ['review', 'export'],
]

用户为连线付出的操作成本没有对应的选择空间。同一份实现中的 custom-action 卡片 output: false,卡片内标注「当前不继续生成后续节点」,未接入下游。

画布的自定义能力因此缺少定义,需先确定形态。

目标

确定用户在画布上可自定义的内容及其操作形式,并以一个仅用于展示、不合并的 PR 承载原型(依 01 规范三、03 规范三)。

采用的形式是卡片加号:每张卡片右下角设加号,展开后列出该卡片的全部合法下游,用户选定一项后新卡片生成并自动连接。用户不绘制连线,非法组合不出现在菜单中。

交互流程

  1. 进入画布时只有一张角色起点卡片。用户填写角色描述并提交,生成六张母版候选,选定其中一张后母版卡片锁定。
  2. 母版卡片的加号展开三项:生成动作、生成静态资产、导出。选取生成动作后展开第二层:预设动作或自定义动作。
  3. 选定 walk 后生成 walk 首帧卡片,连接已建立。用户填写步态描述并提交,首帧生成后确认。
  4. 首帧卡片的合法下游只有完整动画一项,加号不展开菜单,直接生成该卡片。完整动画输出 36 帧,逐帧显影后确认。
  5. 在母版卡片上再次展开加号即可追加 idle。两条动作分支相互独立,可同时处于生成状态。
  6. 全部动作确认后,从母版卡片的加号进入导出,勾选目标格式并出包。

演示素材沿用 live demo 中的 samurai:base.png 与 idle、walk、jump 各 36 帧,256×256 RGBA。全程为真实帧,不使用占位图。

卡片种类

卡片 来源 用户操作
角色起点 进入画布即存在 选定来源(从零开始、上传参考图、复用资产库),填写角色描述
母版候选 起点卡片自动连接 从六张候选中选定一张
母版 候选确认后锁定 只读。加号位于此卡片,是整张图的分叉点
动作首帧 母版加号 → 生成动作 预设动作填写一句描述;自定义动作填写名称、描述,可上传姿势参考图
完整动画 首帧加号 无必填项。帧数与 FPS 继承自动作定义,可在高级项中覆盖
审核 动画确认后自动连接 逐帧通过或退回
导出 母版加号 → 导出 勾选导出格式并出包

预设动作指 idle、walk、run、jump 一批,其规格与提示词已预先优化,走逐帧生成路线;自定义动作由用户描述,走图生视频路线。二者在画布上属同一种卡片,差别仅在动作定义的来源(#37 §3.5、决策四)。

加号的行为规则

菜单只在存在多个合法下游时展开。 首帧的合法下游只有完整动画,此时加号直接生成该卡片,不展开单项菜单。

加号可重复展开。 在母版卡片上展开两次即可追加两个动作。单角色挂载多个动作依靠重复展开同一加号完成,不另设批量入口。

菜单只列出合法下游。 非法组合不出现在菜单中,因此不存在连接后再报错的路径。

删除卡片时连带删除其下游。 删除母版将一并移除其下的动作与导出卡片,执行前提示影响范围。

卡片位置由系统排布。 允许拖动,但拖动仅改变视觉布局,不改变结构。

参数继承

项目级约束(视角、精灵尺寸、美术风格)在创建项目时确定,画布顶部以只读常驻条显示,例如「侧视 · 256×256 · 低饱和像素风」,卡片内不再重复采集。

动作定义级规格(帧数、FPS、是否循环、锚点、脚底线)随动作一并带入,收在高级项中。用户覆盖任一默认值后,卡片上出现记号标明该处已偏离默认。

卡片正面仅保留必填项:预设动作为一句步态描述,自定义动作为名称与描述。

本期范围

本期限定为侧视、单角色、单造型,全程本地假执行,不接后端。

以下不在本期实现:

#79 提出的用户自定义工作流不在本期实现。画布的卡片种类由产品定义,用户从加号菜单中选取,不自行创建。此为对 #79 范围的收缩,另在 #79 下说明。

验收标准

  • 进入画布后只存在一张起点卡片,全部推进依靠加号完成;画布上任意时刻已有的连接均为系统建立,用户找不到绘制连线的入口。
  • 在母版卡片上展开两次加号并各追加一个动作,两条分支自动连接且可同时处于生成状态;菜单中不出现「idle 首帧接入 walk 动画」一类选项。
  • 自定义动作经母版加号菜单进入,填写名称与描述后,其后续首帧、完整动画与审核流程与预设动作完全一致。
  • 一名未参与开发的成员在无人讲解的条件下,可独立完成从生成母版、挂载两个动作到进入审核的全程,过程中无需询问任何一条连线的连法。

附注:卡片的存在判据

后续再出现「画布是否应增加某种卡片」的提议时,按以下四条检验;四条均不满足者为卡片内的字段或勾选框,不构成卡片。

  1. 是否引入新产物,即具备独立生命周期、可被单独引用的对象。
  2. 是否改变拓扑,即多入一出、一入多出或跨线引用一类字段无法表达的关系。
  3. 是否使同类产物并存,例如两版候选并列比对而非覆盖式重生成。
  4. 是否使顺序可变。

按此判据,抠背景、切分归一化、脚底对齐、质检与导出格式均不成立,它们是卡片内部的工序或勾选项。结构上唯一成立的是过渡动画卡片,它需同时接收两个已完成动作的产物,满足第二条;但序列帧小游戏通常直接切换动作,#37 本期范围内亦无过渡的位置,故本期不做。

关联

产品定义见 #37 §3.8(工作流引擎与入口)、§3.5(动作定义与实例)、决策四(生成路线分流)。范围收缩说明见 #79。原型 PR 待补,仅用于 Review 不合并,定稿后内容落回本 Issue。

Metadata

Metadata

Labels

FullSpec影响面大的完整规格enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions