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

Relationships

None yet

Development

No branches or pull requests

Issue actions