跳转到正文
全部教程English

AI 挥剑动画

把 4 秒 AI 挥剑动画,剪成一次利落的游戏攻击

用首页女剑士实测:去掉首尾待机、抽掉中间停顿帧,把 4 秒 AI 挥剑动画剪成 28 帧、1.17 秒的攻击,保持 24 FPS,并提供点击演示。

AnimGen更新于 8 分钟阅读
精修后的像素女剑士攻击:准备、举剑、挥砍和收招四个画面
本文目录

AnimGen 首页女剑士的挥剑预览有 4 秒。动作完整,但前后都有待机,中间还会压低身体停一下、举剑停一下、挥完再停一下。直接把整段视频接到攻击按钮上,玩家按下去后要等一会儿,动作也显得分成了几段。

这次把首尾等待剪掉,再抽掉中间拖慢节奏的帧,从 96 帧中留下 28 帧。下面是处理后的版本:仍以 24 FPS 播放,时长约 1.17 秒。也可以打开单次攻击演示,用按钮试试出招和回到准备姿势的节奏。

精修后 · 28 帧 · 24 FPS · 约 1.17 秒。已去掉首尾待机,并压缩起手与收招的停顿。

演示使用首页带灰底的 448 × 192 预览,保持原尺寸,没有插帧或重新生成。透明游戏资产仍需从对应的原始素材导出。

只裁掉首尾,动作还是会停顿

下面保留 4 秒原片作对照。可以留意:角色什么时候真正开始动,举剑后停了多久,剑落下后什么时候才开始回身。

修改前 · 首页原片 · 96 帧 · 24 FPS · 4 秒。仅用于对照首尾等待和动作中的停顿。

这次选段从原片第 17 帧开始,到第 78 帧结束,帧号从 0 算起。首帧保留起手前的姿势,末帧保留回身完成的姿势;它们前后连续等待的帧都去掉。

只做这一步,还有 62 帧,约 2.58 秒。因为举剑前、举剑后和挥完后的停顿仍然在,攻击依旧偏慢,需要继续处理片段内部。

版本 帧数 24 FPS 下的时长
首页原片 96 4.00 秒
仅去掉首尾待机 62 约 2.58 秒
再抽掉中间停顿与部分过渡帧 28 约 1.17 秒

缩短停顿,留下挥砍的连续动作

起手和收招需要保留到什么程度,可以沿着剑和身体的位置判断。这份素材的抽帧分成三段:

  • 起手,第 17–42 帧:从 26 帧缩到 9 帧。保留压低身体、抬剑、举过头顶的姿势,缩短几个姿势之间的停留。
  • 挥砍,第 43–51 帧:连续保留这 9 帧,让剑光划过、落剑和特效消散连在一起。
  • 收招,第 52–78 帧:从 27 帧缩到 10 帧。压缩挥完后俯身持剑的停顿,留下起身、收剑、回到准备姿势的过程。

精修后动画在第 0、8、11、25 帧的准备、举剑、挥砍和收招画面,按两行排列

上图来自精修后的动画,依次是 0.000、0.333、0.458 和 1.042 秒。姿势仍然能看清,姿势之间的等待已经缩短。抽帧时不要只留下这几张截图:抬剑、落剑和起身的中间过程还要连起来播放检查。

完整选帧顺序如下,数字是原片中从 0 开始的帧号。28 帧按这个顺序,以 24 FPS 播放:

text
17, 18, 20, 30, 32, 33, 35, 37, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 67, 68, 69, 71, 73, 74, 75, 77, 78

本次网页视频按这份选帧清单在本地重新编码。原片另行保留,方便对照。

在高级编辑器里调整自己的攻击节奏

在 AnimGen 打开生成结果或导入视频,通过选段与导出确定动作范围,再进入高级编辑器处理内部帧。

  1. 从源视频帧选出起手到收招的范围,加入动画序列。
  2. 在输出序列中选中多余的待机、停顿帧并删除。先处理变化很小的片段,每删一小组就播放一次。
  3. 起手和收招仍然拖沓时,再抽掉部分过渡帧。剑挥出的连续区间先保留,观察整体节奏后再决定是否继续修改。
  4. 输出保持 24 FPS,检查从准备姿势进入攻击,以及最后几帧回到准备姿势的衔接。确认保存后再导出。

24 FPS 下,删掉一帧会减少约 41.7 毫秒。把整个动画调快,会同时加快剑光和回身;按片段抽帧,可以分别处理起手等待与收招停顿。

如果某个地方删过头了,角色突然跳到另一个姿势,就把附近的过渡帧加回来。这里的 28 帧是这段女剑士素材的选法,自己的角色要沿着动作重新选。

点击一次,播放一次,结束后回到准备姿势

打开点击挥剑演示,试着点击攻击,再等它播放完。演示使用“准备”和“攻击中”两个主要状态,视频尚未开始时会显示加载提示:

  1. 页面打开时显示准备姿势。
  2. 点击攻击按钮,从选段第一帧开始播放。
  3. 播放期间再次点击,先忽略这次输入,避免动作不断被重置到开头。
  4. 动作播放完毕,返回准备姿势,并允许下一次攻击。

演示默认使用精修后的 28 帧版本。准备姿势取自精修片段第一帧,在等待点击时静态显示,不再把一段 idle 放进攻击播放时间。完成一次播放后,计数加一,画面回到这张图。重置按钮可以随时取消播放,并清空计数。

text
准备 → 点击攻击 → 从头播放一次 → 播放结束 → 准备
播放期间再次点击:不重启动作
点击重置:取消播放,计数归零

网页在视频实际播放结束时返回准备状态,时间读数也使用精修视频自身的时长。演示没有开启循环,播放倍率保持 1 倍。

连续点击也要实际试。一个始终能被重新启动的播放器,很容易在反复点击时只播放起手,剑还没有挥出去,动画就又回到第一帧。

如果后续希望玩家提前按键、当前攻击结束后接下一招,可以增加输入缓冲。当前演示没有保存播放期间的攻击输入;连击、闪避打断等规则可以等项目确实需要时再加。

剑光出现的时刻,还需要配合命中规则

演示负责播放和状态切换,没有碰撞或伤害判定。接入游戏时,还需要确定攻击何时能够命中。可以逐帧观察剑经过目标方向的区间,再在引擎里设置相应的有效窗口。

抽帧后也要重新核对时间。原片第 43–51 帧在新序列中是第 9–17 帧,占约 0.375–0.750 秒的播放区间。沿用原片的秒数,会让判定和挥剑错开。具体哪些帧允许命中,还要结合敌人位置与攻击范围检查。

攻击触发后是否允许移动、何时能接下一招、受到攻击时是否中断,都是游戏控制逻辑要处理的事情。先把动画放进一个简单场景,用实际输入检查,再决定这些规则。

导出时保留动作空间和统一的画布

挥剑会用到站立姿势之外的横向与上方空间。导出前检查剑尖、手臂和特效最伸展的画面,不要只按准备姿势裁出一个很紧的边界。如果生成时就容易超出画面,可以提前用Expand Canvas 留出动作空间。

准备姿势和攻击序列使用一致的画布与摆放方式,进入和退出攻击时更容易保持位置连贯。引擎里的原点也应使用一致约定;具体设置见画布与 pivot。

需要逐帧处理时可以导出 PNG 序列;已经确定动作后,可以使用精灵图或对应的引擎资产包。两种格式的取舍见精灵图与 PNG 序列对比。

用自己的角色测试时,先把“进入攻击、完整播放、返回准备姿势”接顺,再加入敌人和命中反馈。反复按几次攻击键,往往比持续循环播放更容易发现衔接和输入处理的问题。

查看图片细节