自分のタイムラインを、自分の手で引っ張る
午後、自作の動画エディタに「タイムライン上のスライドを、端っこを持って引っ張ったら長さが変わる」機能を入れました。
Filmora を触ったことがある人なら、見慣れた操作だと思います。
動画ブロックの右端をマウスでつかんで、横にドラッグすると、そのブロックだけが伸び縮みする。
後ろのブロックが押されてズレる。
これを自分の道具でやってみたかったんです。
引っ張れるようになった瞬間

実装し終わって、ブラウザでスライドの右端にマウスを近づけたら、カーソルが「↔」に変わりました。
引っ張ってみました。
ブロックがにゅっと伸びて、後ろのブロックが押し出されて、タイムライン全体がスライドして、再生時間の表示も変わって。
それだけのことなんですが、しばらく眺めていました。
「自分で引っ張れる」って、何が違うのか

これまで、スライドの長さを変えたいときは、インスペクタにある数字をキーボードで打ち変えていました。
「3.10」を「4.50」に書き換える、みたいな操作です。
それでも動いていました。
動いていたんですが、何かを直しに行くたびに、画面の中で目線が長く動いていたんです。
タイムラインを見て、インスペクタを見て、数字を打って、保存して、またタイムラインに戻る。
引っ張れるようになると、目線がそこから動きません。
タイムラインを見ながら、その場で右端を引っ張る。
離す。
終わり。
「引っ張れるようになっただけで、こんなに違うのか」と思いました。
思ってたバグじゃなかった話

実装し終わって、動かしているときに、こう言われました。
「『今日はそんな小さな気づきのお話です』が『今日はそんな気づきのです』って音声が切れてる」
ぎくっとしました。
「もしかして、私が今日入れた機能のせいで、音声が切れる長さまでスライドを縮められてしまったんじゃないか」と。
念のため、データを直接見に行きました。
manifest.json に書かれた長さと、実際の音声ファイルの長さを、スクリプトで突き合わせました。
結果は、全部のスライドで「manifest の長さ ≧ 音声の長さ」。
私の実装したクランプ処理は、ちゃんと効いていました。
じゃあ何が起きていたのか。
その音声ファイル、もともと短いテキストで合成したものでした。
あとから字幕だけ「今日はそんな小さな気づきのお話です。」に書き換えていて、音声を再生成するのを忘れていたんです。
それで音声と字幕が合わなくなっていました。
過去の自分の操作ミスでした。
自作のエディタには「字幕だけ更新する」便利機能を入れていて、それを使った後に音声を再生成するのを忘れていたんです。
便利と忘却はセットで来る

直し方は分かりました。
1分で直りました。
でも、これからも同じことが起きるはずなんです。
「便利」を入れた瞬間、人間の頭にメモが残ります。
そのメモは、いつか落ちるんです。
だから、また別の機能を入れることにしました。
タイムラインのスライドブロックの中に、「ここまでが音声、ここから後ろは無音」という線を入れます。
スライドの長さと、実際の音声の長さがズレていたら、ブロックの右側に薄い色の余白が見えるようにします。
目で見ればすぐ気づく状態にしておきたいんです。
便利機能は返上しません。
便利のまま、ズレを見えるようにする方向で直します。
自分の道具を、自分のサイズに合わせていく

このエディタを作り始めてから、何度もこういう瞬間がありました。
「あ、これ動きはするけど、毎回やるには面倒だ」と気づいて、ボタンを足す。
「あ、自分のミスで音声がズレてるけど、目で見えない」と気づいて、目印を足す。
既製品のソフトを使っていた頃は、こういう「あ、こうしたい」が出てきても、その先に何もなかったんです。
「このソフトは、こういう仕様だから」で終わってしまっていました。
自分で作ると、続きがあります。
「こうしたい」と思ったら、明日のタスクに追加できる。
Issue を立てて、それが片付いていくのを見ながら、今日も少しずつ自分のサイズに近づいていく感じがあります。
道具を自分で作ると、「終わり」がなくなるんだなと思いました。
完成しない代わりに、ずっと馴染んでいく。
それで、いいと思いました。

