
本文目录
一段角色行走视频,单次播放看起来很自然,整段重复时却可能每隔几秒重新起步。放进游戏后,角色已经在往前走,身体却又回到准备迈步的姿势,停顿就会特别明显。
AnimGen 首页的水彩女性角色正好能说明这个问题。这次使用角色的 ProRes 4444 透明源文件:4 秒、24 FPS,共 96 帧。开头接近站立,随后进入连续行走。我们从中截出 32 帧,保持 24 FPS,一个周期约 1.33 秒。
打开原片、循环与横向移动对照。演示默认暂停,点击播放后可以连续观察几轮,也可以分别拖动两个视频的进度条。
把起步和连续行走分开看
先把完整的 4 秒预览(MP4,约 1.1 MB)播放一次。前几帧的步幅较小,角色逐渐迈开腿;后面才出现交替重复的行走动作。
起步本身有用途。游戏里的角色从静止转为移动时,可以单独使用这一段。持续行走则需要一个能接回自身的周期:末尾回到开头以后,双脚仍按原来的节奏交替,身体没有突然退回站姿。
选片段时,先观察脚,再看手臂和衣摆。同一条腿再次来到相近的步态位置,是寻找周期的起点;两条腿交换前后位置的相似轮廓,可能只走了半个周期。衣服遮住腿时,手臂摆动和脚尖方向可以帮助辨认。
这次选取的是第 33–64 帧
我们在 24 FPS 源文件中重新核对选区,保留零基索引 32–63 的连续 32 帧。完整预览和循环都从这份 ProRes 导出,画面尺寸保持为 496 × 864,没有补帧或加速。
| 项目 | 完整预览 | 选出的循环 |
|---|---|---|
| 帧数 | 96 | 32 |
| 播放帧率 | 24 FPS | 24 FPS |
| 时长 | 4 秒 | 32 ÷ 24,约 1.33 秒 |
| 在预览中的位置 | 第 1–96 帧 | 第 33–64 帧 |
| 可下载格式 | WebM,带 Alpha 透明度 | WebM,带 Alpha 透明度 |
这里的“第 33 帧”从 1 开始数。如果工具从 0 开始编号,同一段是索引 32–63。按时间表达,起点为 32 / 24 秒,终点边界为 64 / 24 秒,也就是约 1.33–2.67 秒,终点边界处的下一帧不包含在选区中。
保留的源帧:32, 33, 34, ... , 63(零基索引)
输出帧数:32
输出 FPS:24
周期时长:32 / 24 ≈ 1.333 秒
播放顺序:32 → 33 → … → 63 → 32 → 33 → …
这组数字用于复核本案例。换一段生成结果,稳定动作出现的位置和一个周期的长度都会变化,需要重新寻找选区。
重点检查第 64 帧接回第 33 帧
截完后,循环播放至少三遍。选区内部本来就是连续画面,最容易暴露问题的位置是最后一帧跳回第一帧的瞬间。
图中从左到右依次是原预览的第 63、64、33、34 帧,对应输出序列的最后两帧与最前两帧。图片来自透明循环文件,统一合成到浅色背景,人物保持原始比例。
观察跨过中间接缝时的三件事:脚是否沿原来的方向继续运动;身体高度和位置是否突然跳变;衣摆有没有瞬间换成另一种形状。可以慢速拖动视频看姿势,再恢复正常速度判断节奏。
首尾两帧不必完全相同。正常播放时,每一帧都会保持一小段时间;在末尾再塞入一张与首帧相同的图片,可能让同一个姿势停留两次,反而形成顿点。更合适的目标是让最后一帧到第一帧的变化,与片段内部相邻帧的变化接近。
如果交界处仍然明显,可以把选区起点或终点前后移动一帧,再播放比较。24 FPS 下,一帧约占 42 毫秒,少一帧或多一帧都足以改变脚步节奏。每次只动一个边界,更容易知道哪次调整起了作用。
在编辑器里保留这一段,先保持 24 FPS
使用这份预览复核时,在 AnimGen 的精修编辑器中查看 Source Frames,把中间这 32 帧按原顺序放入 Animation Sequence,移除序列里其他帧。已有序列需要先检查,避免把同一选区又追加一遍。将输出 FPS 保持为 24,再开启循环检查。
具体面板和选帧操作可以参照动画精修编辑器说明。源帧位置与输出序列位置要分开看:截取后,输出的第 1 帧已经是原预览的第 33 帧。
32 帧改用 48 FPS 播放,时长会缩短到约 0.67 秒,人物也会走得更快。这次保留源文件的全部 24 FPS 动作帧,让循环与原片保持相同的速度。若先丢掉一半帧,再通过重复帧导出成 24 FPS,丢失的中间姿势仍不会回来。
本文提供完整片段与循环片段的透明 WebM 下载。浏览器对照演示使用同一批帧合成的浅底 MP4,两种预览保持相同背景和帧率,便于比较动作。制作自己的素材时,可以从透明动画工作流开始。
| 素材 | 网页预览(浅色背景) | 透明素材(保留 Alpha) |
|---|---|---|
| 完整 4 秒片段 | MP4 · 约 1.1 MB | WebM · 约 2.2 MB |
| 32 帧行走循环 | MP4 · 约 396 KB | WebM · 约 810 KB |
以上文件都保持 496 × 864、24 FPS。观看动作可以打开 MP4;需要透明背景时,下载 WebM。网页无需加载约 35 MB 的 ProRes 原片。
让角色往前走,还要配合场景里的移动速度
循环文件反复播放脚步,角色在游戏世界里的坐标通常由游戏逻辑更新。将两者放在一起后,即使循环接缝已经比较顺,移动速度不匹配仍会产生滑步:脚接触地面时,身体前进得太快或太慢。
配套的横向移动演示使用同一份 32 帧透明 WebM 循环,同时改变角色在页面中的位置,默认移动速度为 125 px/s。浅色底来自演示场景,角色视频本身保留透明通道。可以调低或调高移动速度,观察脚底和地面的相对运动。演示到达右侧后会回到左侧,这是场景位置重置,和视频内部每 1.33 秒重复一次的步态是两个独立过程。
实际放进游戏时,从正常大小和正常速度开始看。以脚落地的一段为参照,让它在接触地面时尽量少滑动,再按玩法调整移动速度或动画播放速度。缩放角色后也要重新看一遍;同一套动作变大以后,一个步幅在屏幕上对应的距离会跟着变化。
本文的移动演示用于观察这层关系,没有把某个网页速度值写成角色的标准步速。导入 Godot 的过程可以接着看透明动画导入实测。
把确认好的周期带到目标项目
选区满意后,记录帧数、FPS 和画布尺寸。导出后再播放一次,确认步态、透明度和角色位置都与编辑时一致。更换格式或引擎时,重点核对帧序和播放速度,避免 24 FPS 的片段被按其他帧率播放。
游戏中的精灵图与独立 PNG 帧可以参照导出格式对比选择;如果透明边缘仍有残色,可以继续调整Alpha 阈值与边缘去色。
用这份4 秒预览寻找选区,再与32 帧循环预览对照。给自己的角色制作行走循环时,从一个完整步态开始,连续播放几遍,等动作接顺了再接入场景移动。
