Resting Frame Rules(静止帧规则)是一套关于动画与视频合成中“静止时刻”的构图规范。核心原则是:当运动停止时,每个元素要么完整地在画面内,要么完全在画面外,不能停留在被边缘切掉一半的状态。
【用途】 该规范用于指导动画与视频合成中的元素摆放,避免画面在停止运动后出现“照片被边缘切掉”这类看起来像失误的效果。运动中元素被边缘切割可以被理解为运动,但一旦停止后仍被切割,就会被理解为意外裁切。
【元素何时算“静止”】
- 动画结束,或暂停时间足够长,让人读作停止;
- 元素无运动地出现;
- 视频最后一帧,即视频停在仍在运动的元素上时。 “帧”指画布,或承载元素的合成容器(例如面板)。
【不算作被切的情况】
- 全出血:元素在某条轴上横跨整个帧、越过两侧边缘,例如比画布更大的背景、横贯全宽的条带;
- 元素自身框内的裁剪:照片在其框内以“cover”方式适配、遮罩、面板内缩放,属于取景而非边缘切割;
- 设计有意为之的裁切:如设计在底部裁切的手机样机、轮播中露出下一张卡片边缘作为提示。只有在设计或用户明确要求时才保留。 运动中元素可以被边缘切割。
【实现要点】
- 入场结束于画面内:从完全在帧外开始(至少超出边缘一个元素自身尺寸),或从画面内以透明度或缩放开始;最后一个关键帧把整个元素放进画面内并留出边距。
- 出场结束于画面外:最后一个关键帧把元素完全移出边缘,或透明度为0,并在此结束图层。
- 滚动或平移停在整个条目上:移动行或列表的父级而非每个条目,停止时帧的边缘落在条目之间的空隙里;比帧更大的条目不适合滚动,应缩小或改为全出血。
- 缩放结束于画面内:放大会把元素推出边缘时,要么结束在能容纳的缩放比例,要么移入面板使缩放在元素自身框内裁剪。
- 视频以静止收尾:最后一帧上显示的每个元素都已完成运动,不要以出场或尚未完成的入场结尾;保持最终布局,或让出场在结束前完成。
- 比帧更大的元素,在该轴上要么是全出血,要么缩小到适配。
【检查流程】 在动效编写完成后及每次修改后:
- 找到场景中的静止时刻:每个图层的各动画或变换中每次移动的最后一个关键帧时间、无运动出现时的起始时间、以及最后一帧。timeMode 为 "layer" 时,关键帧时间从图层起点计算;有 parentId 的图层随父级移动,只有父级也静止时才静止;同时停下的多个图层共享一个时刻。
- 在每个时刻调用 picsart_scene_query_layout 查询布局,对已静止的图层读取 onCanvas:full 或 off 表示完整或已移出,符合预期;partial 表示被画布切割,只有其框在某条轴上越过两侧边缘时才算全出血,否则记为问题。带 clippedBy 的图层被承载它的合成切割,clippedBox 在某一侧小于其框时同样记为问题。
- 用 picsart_scene_patch 修正每个问题,作用于结束该次移动的关键帧,或图层不移动时作用于 transform.position:入场结束或保持时,按超出边缘的量向内移动;出场结束时,向外移动直到框完全越过边缘;行或列表移动父级,使每个条目完整或消失;大于帧的元素按第6条处理。注意:把本应留在屏幕上的元素推出画面是错误的修正方式,应向内移动或改变其行为。
- 在修改过的时刻再次检查。 布局工具读取的是几何而非像素。当它未给出图层框(例如在不测量文本的引擎上),或问题存疑时,查看该时刻的 picsart_scene_contact_sheet。
【适用场景】 适用于Picsart生成式AI技能中涉及动效、滚动、缩放与视频结尾的合成场景,尤其是需要保证停止后构图干净的动画与视频制作。
【限制】 资料未提供该规则的独立运行环境、收费、价格或平台要求等信息,暂未提供。