Rebounder Tech Blog

運用している当事者が書く、本番システムの記録。

Remotion / Reactの動画で動きが多すぎるとき、静止を残す運用

公開 読了時間 約2分執筆: Rebounder 開発チーム(当該システムの運用当事者)

※本記事にはアフィリエイトリンクを含む場合があります。内容は広告の有無に影響されません。

結論

Remotionの動画制作では、画面の揺れで静止判定を避けるより、動きの目的と意図した静止区間を明示するほうを選んだ。

2026年7月30日、Remotionで制作していた動画の動き方を見直した。QAは全項目PASSしていたが、試聴したオーナーの評価は「鬱陶しい・邪魔」だった。その日の変更では、小刻みな常時動作を禁止し、意図して静止させる区間を残す運用を選んだ。

Remotionの動画制作では、画面の揺れで静止判定を避けるより、動きの目的と意図した静止区間を明示するほうを選んだ。

Remotionの動きが多すぎるとき、何を減らしたか

制作基準を「大きく・少なく・意味がある」と定め、1シーンの動きは2〜3個までにした。静止対策として既存要素を揺らし続ける代わりに、場面転換や新情報の投入で進行を作る。

比較すると、選び直したのは次の点だった。

判断するもの 採らない運用 選んだ運用
静止区間への対処 ズーム・パン・揺らしで動きを足す 意図した保持区間を宣言する
動きを付ける理由 静止判定の基準を満たす 視線をどこへ導くかを説明する
退屈さへの対処 画素の変化量を増やす 新要素・状態変化・字幕切替の間隔を見る

この判断は、Remotionのアニメーション機能が足りなかったという話ではない。QAで使う数値を満たしても、試聴時の「邪魔」という評価は残った。そこで、数値を満たすために動きを足す行為を禁止した。

意図した静止をコードコメントに残す

従来の静止基準は「60フレーム超の未宣言静止ゼロ」だった。変更後は、意図した保持区間を「宣言静止」として扱い、60フレームを超えても許容する。ただし、静止をすべて通すわけではない。

運用条件は、区間と意図を該当シーンのコードコメントに書くこと、その中でも情報イベントの間隔を概ね3秒以内にすること、QAで宣言と実装の一致を確認することだった。情報イベントとは、新要素の出現・状態変化・字幕切替を指す。

実際のシーン実装にも、各ステップ確定の合間や、字幕切替とモニタ点灯を含む区間を宣言したコメントがある。締めの静止は「意図的な余韻」として例外を明記している。基本の間隔と、その間隔を適用しない箇所を、同じ場所に残した。

動いていることと、新しい情報があることを分ける

制作記録には「15秒間何も新しい情報がなくて退屈」という指摘もある。これに対して選んだのが、画素の変化量ではなく情報イベントの間隔を見る方法だった。画面が揺れていても、情報が増えるとは限らない。

この変更で視聴維持率が上がった、といった計測結果はここでは扱わない。記録から確認できるのは、試聴での指摘を受け、静止の扱いを変え、その意図をコードコメントへ移したところまでである。

静止そのものを数値で検出する際の注意点は、ffmpegの静止検出とビット深度に整理している。今回選び直したのは検出の精度ではなく、検出された静止をどのように扱うかだった。動きを増やす前に、その区間で視線を導く必要があるのか、情報を読ませるために保持するのかを決める。その判断を実装と一緒に残す運用にした。

よくある質問

Q1Remotionでアニメーションの動きが多すぎるときは?

この制作では、小刻みな常時動作をやめ、1シーンの動きを2〜3個までにした。静止を避けるためのズームやパンを足す代わりに、場面転換や新情報の投入で進行を作る方針へ変えた。

Q2静止区間を残すと動画のQAに落ちませんか?

この運用では意図した保持区間を宣言静止としてコードコメントに記録し、60フレームを超えても許容する。ただし無条件ではなく、区間と意図、情報イベントの間隔、宣言と実装の一致を確認する。

Q3情報イベントの間隔は何秒にしましたか?

基本は概ね3秒以内とした。新要素の出現や状態変化、字幕切替を情報イベントとする。一方、実装には締めの静止を意図的な余韻として例外にした区間もあり、全区間へ機械的に当てはめてはいない。

確認した環境

  • 2026-07-30の制作・運用変更記録
  • package.jsonの依存指定: Remotion ^4.0.500 / React ^19.2.8

この記事の根拠

  • Markdownファイル 40〜53行目コミット 4765b1c
  • TypeScriptファイル 1217〜1225行目コミット 4765b1c
  • JSONファイル 12〜18行目コミット 4765b1c

本文の主張は、上の記録に書かれていることだけです。運用しているリポジトリは非公開のため リンクは張れませんが、どのファイルの何行目を、どのコミット時点で見て書いたかは 記事ごとに残しています。推測で書いた箇所はありません。