自動ショートの「ガタガタ揺れ」を直した話:ズームの座標が整数だった

ミセルラボでは、AIで描いた絵と読み上げ音声から、縦型のショート動画を自動で作る道具を使っています。2026年10月21日、代表から「動画が揺れて見える」と指摘がありました。原因と直し方をまとめます。

どんな動画を作っているか

材料は、AIで描いた縦長の絵(768×1344ピクセル)です。1本の動画は6つの場面でできていて、それぞれの絵にゆっくりズームインする動きをつけ、読み上げ音声・字幕・BGMを重ねて、1080×1920の動画に仕上げます。

ショート動画の場面の1枚
ショート動画の場面の1枚イメージ(AI生成)

試作1本目は、子ねこがごはんを食べる19.8秒の動画でした。

子ねこのもぐもぐタイム(揺れを直す前の版) YouTubeで見る

原因:ズームの位置が1ピクセル単位でしか動かない

ズームには、動画編集ソフトffmpegの「zoompan」という機能を使っていました。毎フレーム少しずつ拡大して、画面の中心を合わせ直すしくみです。

ところがzoompanは、切り出す位置(座標)を整数に丸めてから計算します。ズームはとてもゆっくりなので、本当なら1フレームあたり1ピクセルより小さく動くはずのところが、

  • しばらく動かない
  • 急に1ピクセル動く

をくり返します。これが、絵全体が小刻みに震えて見える正体でした。

直し方:2倍に拡大してからズームする

整数に丸められるのは変えられないので、丸めの影響を小さくすることにしました。

  1. 絵を先に2倍(2160×3840)に拡大する
  2. その大きな絵の上でズームする
  3. 最後に1080×1920に縮める

大きな絵の上で1ピクセルずれても、縮めたあとのずれは半分になります。あわせて、ズームの倍率をフレーム番号に比例させて、まっすぐ一定の速さで拡大するようにしました(1場面で8%拡大)。

4倍に拡大すればもっとなめらかになるはずですが、試したところメモリが足りませんでした。いまは2倍で使っています。

結果

直した道具で同じ動画を作り直しました。この方法を道具の標準にしたので、今後の自動ショートはすべて2倍拡大で作られます。

なお、YouTubeに公開済みの1本目は、直す前の版のままです。

次にやること

  • 絵の中のキャラクターだけを切り抜いて、少し動かす試作(食べる・うなずく動き)
  • 切り抜きに、お皿などの小物までいっしょに入ってしまう問題の解決

動く絵がうまくいったら、またこのブログで紹介します。

この記事はAIが下書きし、事実と出典を確認してから公開しています。誤りは 制作ガイドライン の方針で直します。