縦型ショート動画のレイアウトを専用実装せず、既存のレスポンシブ縦積みで撮った
縦のレイアウトは、もう画面の中にあった
朝いちで開いたのは、前に自分で書いた縦ショート動画の計画メモだった。 縦ショート用のレイアウトを作る計画だったはずだ、というくらいの記憶しかなかったので、中身の確認から入らせた。 任せられる調べ物はサブエージェント(Sonnet 5)に振らせ、図まわりはメインのセッションで持たせる、という分担で指示した。
計画と既存の決定事項を読ませ、続けてチャート本体のレイアウト構造を洗わせた。 この時点では、専用レイアウトを書く前提を疑っていない。
縦幅で開いたページを見て、手が止まった
報告を待つあいだ、自分でもシミュレータのページを開いていた。
http://localhost:3200/lessons/progressive-tax-sim を、ウィンドウを細くしたまま眺めていた。
見出しがあり、チャートがあり、その下に税額の計算テーブルが続く。 縦に積まれている。 動画に入れたかったテーブルまで、最初から入っている。
これをそのまま縦のレイアウトにすればいいのではないか。 専用に組まなくても、これでいいかもしれない。 スクリーンショットを貼って、レスポンシブの縦表示を動画にする方針へ切り替えた。
計画メモに書いた「縦用のレイアウトを作る」という行は、着手して間もなく消えたことになる。
720×1280 を1.5倍で撮る
方針が決まってからは早かった。 縦版のレンダリング処理を書き換えさせ、720×1280 のビューポートを1.5倍で撮る形にした。 出力は 1080×1920 になる。
縦に積む中身はページの表示順のままにした。 上から見出し、チャート、税額の計算テーブル、最後にワードマークが並ぶ。
最初のプレビューで、テーブルが横に20pxはみ出した。 セルの余白を詰めて収めさせ、プレビュー画像で確かめさせた。
冒頭フレームには別の問題があった。 点灯しているべきなのは5%の区分だけなのに、余計なチップが写り込んでいた。 直させたうえで、すでに公開してある横版の冒頭フレームにも同じ混入がないかを確認させた。
レンダリングを待つ時間の使い方
レンダリングは長い。 横版は1002フレームある。 縦版に至っては、残り10分ほどという見込みが出た。
手を止めて待つのはもったいないので、その間に別の確認を進めさせた。
- ダウンロードボタンを出さない設定になっている本文中の島の状態
- ギャラリーの再生成コマンド
- R2 の既存キー配置と figures-status.json の記録
- 計画書の実施記録の更新
最後の1つは安全に触れた。 計画書を置いてあるディレクトリは Nuxt の監視外なので、書き換えてもHMRが走らず、撮影中の画面に影響しない。
ダウンロードボタンを再生ボタンの左に置く
シミュレータのページから MP4 を落とせるようにもした。 置き場所は再生ボタンの左横で、見た目は既存のピルに合わせている。
ギャラリー側のダウンロードリンクの規約を先に確認させてから作らせた。 おかげで、ギャラリーのJSONにも横版と縦版の両方のリンクが並んだ。 ギャラリーは図を選ぶと比較欄が出る作りなので、dev で該当の図を直接開かせて表示を確かめさせた。
出来上がった縦版は 1080×1920 の35.4秒だった。
他のセッションを止めてからコミットに入る
ギャラリーを再生成させ、ユニットテストを回させた。 3358件が green で通った。 差分チェックも通った。 空になった中間ディレクトリを片付けさせ、計画書の残タスクを更新させた。
ここでコミットとデプロイを頼んだ。 他のセッションは全部止めてあるはずで、混ざっているとしても計画書のタスクリスト更新くらいだと踏んだ。 実際、まず作業ツリー全体を確認させ、混ざっていた差分の中身を特定させてから、3つに分けさせた。
- 図修正17ファイル
- 動画一式19ファイル
- 計画書1件
最初の2つでは学習ゲートのクイズが出る。 1つ目は全問正解して受領証を発行させ、2つ目でも続けてクイズを出させた。 計画書だけの3つ目は LEARN_SKIP で通した。
デプロイと push
ビルドは約6.5分かかる。 バックグラウンドに回して結果を待った。
デプロイは Green で通り、margin は 1374.9 KiB だった。
dist/video/zeimu を消してしまわないためのガードも作動していた。
本番の検証もすべて green で、動画のパスが302で R2 の配信に飛ぶところまで確かめさせた。
最後に計画書の完了チェックとデプロイ実測CSVを更新させて、4件目のコミットにした。 作業ツリーはクリーンになった。 プッシュまで頼み、LFS の40オブジェクトを含む9コミットが origin/main に上がった。 Mac 側は次に pull すれば同じ状態から続けられる。
今日の学び
- 動画用のレイアウトを新しく組む前に、既存ページを縦幅で開いてみる。レスポンシブが仕上がっていれば、それがそのまま縦動画の画面になっていることがある
- 縦版は 720×1280 を1.5倍で撮って 1080×1920 に合わせた。はみ出した20pxはセルの余白で吸収できた
- レンダリングが10分単位で走る作業は、待ち時間に何を確認させるかを先に決めておくと手が止まらない
- コミットを頼む前に他のセッションを止めておくと、作業ツリーに混ざった差分を確認して分けるだけで済む