動画編集の際にストップウォッチのように時間を計測して、それを合成表示したい時があります。ある動作の開始から終了までの時間を比較したり、一定の距離を移動するのにかかる時間を計測したりする場面にストップウォッチの機能があれば、よりわかりやすい作品作りに役立ちそうです。
時間計測に使えそうな「タイムコード」ジェネレータ
動画編集に使用しているFinal Cut Pro X(FCPX)の標準機能でストップウォッチのように使えそうなのがジェネレータの「タイムコード」です。時間測定対象のクリップに「タイムコード」ジェネレータを接続して長さを揃えます。インスペクターにある公開パラメータの中のFormatを「HMS」にすれば、時:分:秒の形式で百分の一秒まで対象クリップの中の時間を計測・表示します。
時間を測定したいクリップに「タイムコード」ジェネレータを接続 |
もちろん動画にはフレームレートがあり、30fpsで編集していれば30分の1秒以下は計測できませんが、そこまで厳密に測定する場合は高速度撮影など別の方法が必要になります。
任意の場所の時間測定がなかなか難しい
なんとなくこの「タイムコード」だけで要望が満たされそうな気がするのですが、いざ使ってみるとストップウォッチとしては問題だらけなことに気づきます。まず初めに、表示される時間がプロジェクト内でのクリップの位置に依存しています。測定対象のクリップがプロジェクトの先頭ではない場合、ストップウォッチの開始時間がゼロからではなくなってしまいます。
クリップの置かれている位置に関わらず、対象クリップ先頭からの時間を表示させたい場合は公開パラメータのTimecode Baseを「プロジェクト」から「ソース」に変更します。
Timecode Baseを「ソース」に変更すると... |
これで対象クリップの先頭からの時間表示になるのですが、なぜか先頭の「時」の部分が「01」となってしまいます。バグなのか仕様なのか不明ですが、これではストップウォッチとして表示するには不適当です。公開パラメータにOffsetがありましたのでマイナス1時間を入力してみましたが、セットできませんでした。
「タイムコード」のオフセットにマイナス値は指定できない |
ほとんどの場合は秒や分単位くらいまでしか必要ありませんから、この先頭の「01:」をマスクで見えなくしてしまえばなんとか使用可能です。
スローモションや早送りでの時間計測ができない
素早い動作の時間測定をするような場合、対象クリップの再生速度を変えてスローモーションにすることが多いと思います。接続されている「タイムコード」側も同様の速度変更ができれば問題ないのですが、サポートされていないようです。
ここまでのやり方では対象クリップの速度変化に、時間を測定している「タイムコード」の速度を連動させることはできません。クリップの再生速度を変化させない場合のみストップウォッチとして使用できる方法です。
測定対象クリップの再生速度を変化させても「タイムコード」側は変化しない |
ここまでのやり方では対象クリップの速度変化に、時間を測定している「タイムコード」の速度を連動させることはできません。クリップの再生速度を変化させない場合のみストップウォッチとして使用できる方法です。
タイムコードだけの動画ファイルを別途用意
スローモーションにした時にもクリップの正確な時間を計測・表示させるための方法を考えてみました。最初に思いついたのが、ゼロから必要な時間までタイムコードだけが入っている動画ファイルを先に作っておいて、編集時にクリップと一緒にして速度を変化させてしまうという原始的な方法です。
必要な長さのタイムコードだけが入った動画ファイルを作成しておく |
編集時には測定対象クリップとこのタイムコードの入ったクリップを複合クリップにしておくと便利です。トリミングも速度変化も一つの複合クリップに対して行えば済みます。
測定対象クリップとタイムコードのみのクリップを複合クリップにしておくと便利 |
このやり方で何本か動画を編集しましたが、思った通りの機能が実現できています。先頭で信号待ちしているバイクを素早く発進させる方法として、右足着地のままの発進を試している際の動画で使用してみました。
「タイムコード」ジェネレータを直接複合クリップに変換
別途タイムコードだけの動画ファイルを用意する方法で、必要な機能は満足できているのですが、長さの異なるものを毎回作成するのは面倒です。もっとスマートな方法がないか、さらに検討している時に、「タイムコード」ジェネレータと測定対象クリップをそのまま複合クリップにしてみました。
複合クリップ作成時には「タイムコード」の開始時間はいつもゼロ |
複合クリップ作成時の「タイムコード」ジェネレータは必ずゼロの位置に置かれていますので、出来上がった複合クリップの時間はプロジェクトのどこに置かれてもゼロから始まるようになりました。時間部分に現れる意味不明のオフセット「01」も出ませんので、時:分:秒の全ての桁を使用したストップウォッチになります。さらに、複合クリップに対して速度変化操作を行うと、「タイムコード」の動きもそれに合わせて変化してくれました。スローモーションさせながら、その時の実時間を測定するという使い方ができます。まさに動画編集で使用するストップウォッチが出来上がりました。
「タイムコード」ジェネレータを含んだ複合クリップで自由なストップウォッチ機能が実現 |
表示は百分の一秒単位になっていますが、ストップウォッチとして実際に測定可能な最小時間はフレームレートが30fpsの場合で約0.03秒になります。指定できるフレームレートは最高でも60fpsまでなので、百分の一秒単位で計測することは不可能ですが、まず問題になることはないでしょう。
「タイムコード」ジェネレータのTimecode Baseを「ソース」にすると「01:」から始まることや、複合クリップに含めた時に必ず開始時刻が「00:00:00.00」なること、速度変化をさせた時に「タイムコード」のカウント速度も変化することなど、それがFCPXの正しい仕様なのかどうか明確ではありません。そのため、今後のリリースアップ時に動きが変わる恐れがありますが、今の所一番簡便な動画編集用ストップウォッチの実現方法となっています。