本 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 规范三)。
采用的形式是卡片加号:每张卡片右下角设加号,展开后列出该卡片的全部合法下游,用户选定一项后新卡片生成并自动连接。用户不绘制连线,非法组合不出现在菜单中。
交互流程
- 进入画布时只有一张角色起点卡片。用户填写角色描述并提交,生成六张母版候选,选定其中一张后母版卡片锁定。
- 母版卡片的加号展开三项:生成动作、生成静态资产、导出。选取生成动作后展开第二层:预设动作或自定义动作。
- 选定 walk 后生成 walk 首帧卡片,连接已建立。用户填写步态描述并提交,首帧生成后确认。
- 首帧卡片的合法下游只有完整动画一项,加号不展开菜单,直接生成该卡片。完整动画输出 36 帧,逐帧显影后确认。
- 在母版卡片上再次展开加号即可追加 idle。两条动作分支相互独立,可同时处于生成状态。
- 全部动作确认后,从母版卡片的加号进入导出,勾选目标格式并出包。
演示素材沿用 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 动画」一类选项。
- 自定义动作经母版加号菜单进入,填写名称与描述后,其后续首帧、完整动画与审核流程与预设动作完全一致。
- 一名未参与开发的成员在无人讲解的条件下,可独立完成从生成母版、挂载两个动作到进入审核的全程,过程中无需询问任何一条连线的连法。
附注:卡片的存在判据
后续再出现「画布是否应增加某种卡片」的提议时,按以下四条检验;四条均不满足者为卡片内的字段或勾选框,不构成卡片。
- 是否引入新产物,即具备独立生命周期、可被单独引用的对象。
- 是否改变拓扑,即多入一出、一入多出或跨线引用一类字段无法表达的关系。
- 是否使同类产物并存,例如两版候选并列比对而非覆盖式重生成。
- 是否使顺序可变。
按此判据,抠背景、切分归一化、脚底对齐、质检与导出格式均不成立,它们是卡片内部的工序或勾选项。结构上唯一成立的是过渡动画卡片,它需同时接收两个已完成动作的产物,满足第二条;但序列帧小游戏通常直接切换动作,#37 本期范围内亦无过渡的位置,故本期不做。
关联
产品定义见 #37 §3.8(工作流引擎与入口)、§3.5(动作定义与实例)、决策四(生成路线分流)。范围收缩说明见 #79。原型 PR 待补,仅用于 Review 不合并,定稿后内容落回本 Issue。
本 Issue 定义画布的卡片加号编排形式,用来验证工作流编辑器的自定义能力。
背景
#37 §3.8 确定 Quick Start 与画布为两个入口、共用一条流程,画布面向需要精细控制的生产任务,但未定义精细控制的具体内容。
live demo 的画布沿用通用节点编辑器形式:卡片可拖动,连线由用户绘制,绘制后再校验。而合法连接在代码中写死为一条链,八张卡片首尾相接,不存在第二种连法。
用户为连线付出的操作成本没有对应的选择空间。同一份实现中的
custom-action卡片output: false,卡片内标注「当前不继续生成后续节点」,未接入下游。画布的自定义能力因此缺少定义,需先确定形态。
目标
确定用户在画布上可自定义的内容及其操作形式,并以一个仅用于展示、不合并的 PR 承载原型(依 01 规范三、03 规范三)。
采用的形式是卡片加号:每张卡片右下角设加号,展开后列出该卡片的全部合法下游,用户选定一项后新卡片生成并自动连接。用户不绘制连线,非法组合不出现在菜单中。
交互流程
演示素材沿用 live demo 中的 samurai:
base.png与 idle、walk、jump 各 36 帧,256×256 RGBA。全程为真实帧,不使用占位图。卡片种类
预设动作指 idle、walk、run、jump 一批,其规格与提示词已预先优化,走逐帧生成路线;自定义动作由用户描述,走图生视频路线。二者在画布上属同一种卡片,差别仅在动作定义的来源(#37 §3.5、决策四)。
加号的行为规则
菜单只在存在多个合法下游时展开。 首帧的合法下游只有完整动画,此时加号直接生成该卡片,不展开单项菜单。
加号可重复展开。 在母版卡片上展开两次即可追加两个动作。单角色挂载多个动作依靠重复展开同一加号完成,不另设批量入口。
菜单只列出合法下游。 非法组合不出现在菜单中,因此不存在连接后再报错的路径。
删除卡片时连带删除其下游。 删除母版将一并移除其下的动作与导出卡片,执行前提示影响范围。
卡片位置由系统排布。 允许拖动,但拖动仅改变视觉布局,不改变结构。
参数继承
项目级约束(视角、精灵尺寸、美术风格)在创建项目时确定,画布顶部以只读常驻条显示,例如「侧视 · 256×256 · 低饱和像素风」,卡片内不再重复采集。
动作定义级规格(帧数、FPS、是否循环、锚点、脚底线)随动作一并带入,收在高级项中。用户覆盖任一默认值后,卡片上出现记号标明该处已偏离默认。
卡片正面仅保留必填项:预设动作为一句步态描述,自定义动作为名称与描述。
本期范围
本期限定为侧视、单角色、单造型,全程本地假执行,不接后端。
以下不在本期实现:
#79 提出的用户自定义工作流不在本期实现。画布的卡片种类由产品定义,用户从加号菜单中选取,不自行创建。此为对 #79 范围的收缩,另在 #79 下说明。
验收标准
附注:卡片的存在判据
后续再出现「画布是否应增加某种卡片」的提议时,按以下四条检验;四条均不满足者为卡片内的字段或勾选框,不构成卡片。
按此判据,抠背景、切分归一化、脚底对齐、质检与导出格式均不成立,它们是卡片内部的工序或勾选项。结构上唯一成立的是过渡动画卡片,它需同时接收两个已完成动作的产物,满足第二条;但序列帧小游戏通常直接切换动作,#37 本期范围内亦无过渡的位置,故本期不做。
关联
产品定义见 #37 §3.8(工作流引擎与入口)、§3.5(动作定义与实例)、决策四(生成路线分流)。范围收缩说明见 #79。原型 PR 待补,仅用于 Review 不合并,定稿后内容落回本 Issue。