AviUtlでタイマーを追加するためのスクリプト例

AviUtlでいろいろな種類のタイマーを追加するためのスクリプトを紹介します。

 

以下はサンプル画像です。

基礎知識

とにかくスクリプトが手っ取り早くほしい!という人は基礎知識を読むのは後回しにして、スクリプトの項を先に読んでください。

 

例えば⑤のスクリプトは以下のようになりますが、色付きの部分について説明します。

<?a=0 b=1 ot=b*obj.time+a 
mes(string.format("%01d:%02d:%02d.<s24>%02d<s>",ot/3600,((ot/60)%60),(ot%60),(ot*100)%100))?>

 

スクリプトに出てくる各パラメータ等の意味は以下の通りです。

aスタート時の初期タイム(単位:[s])。a=20なら20秒からスタート。

bタイムの進みの速さ。1なら等速、2なら倍速。-1ならカウントダウン

01d0を何個出力するか。01dなら1個。02dなら2個。03dなら3個。

手前の%とdは後述のot/3600(時間単位)などを出力するためのもの。

<s24>, <s>:挟んだ部分の文字サイズを24に変更。ここを消せば他部分と同じ大きさになる

 

スクリプト以外では、タイマーの文字自体は白と背景が重ならないように「影付き文字」をおすすめします。一番下のスクリプトの真上です。

 

スクリプト

下の図の各番号ごとに示します。

 

①, ② 秒のみ

①、②のようなタイマーは以下のスクリプトで出力できます。

<?a=0 b=1 ot=b*obj.time+a 
mes(string.format("%01d.<s24>%02d<s>",(ot%60),(ot*100)%100))?>
<?a=0 b=1 ot=b*obj.time+a 
mes(string.format("%02d.<s24>%02d<s>",(ot%60),(ot*100)%100))?>

③, ④ 分:秒

<?a=0 b=1 ot=b*obj.time+a 
mes(string.format("%01d:%02d.<s24>%02d<s>",((ot/60)%60),(ot%60),(ot*100)%100))?>
<?a=0 b=1 ot=b*obj.time+a 
mes(string.format("%02d:%02d.<s24>%02d<s>",((ot/60)%60),(ot%60),(ot*100)%100))?>

⑤ 時:分:秒

<?a=0 b=1 ot=b*obj.time+a 
mes(string.format("%01d:%02d:%02d.<s24>%02d<s>",ot/3600,((ot/60)%60),(ot%60),(ot*100)%100))?>

00:00:00.00のように時の部分を数字2つ分表示したい場合は%01dを%02dにします。

⑥ 秒の小数点以下なし

<?a=0 b=1 ot=b*obj.time+a 
mes(string.format("%01d:%02d:%02d",ot/3600,((ot/60)%60),(ot%60)))?>

時間単位を表示したくない場合は%01d: とot/3600, を消します。

⑦, ⑧ 秒の小数点以下を1/10秒または1/1000秒

<?a=0 b=1 ot=b*obj.time+a 
mes(string.format("%02d:%02d:%02d.<s24>%01d<s>",ot/3600,((ot/60)%60),(ot%60),(ot*10)%10))?>
<?a=0 b=1 ot=b*obj.time+a 
mes(string.format("%02d:%02d:%02d.<s24>%03d<s>",ot/3600,((ot/60)%60),(ot%60),(ot*1000)%1000))?>

1/1000秒はフレームレートを小さくしないと導入する意味は薄いです。

30fps(あるいは29.970fps)では1/100秒の部分ですら肉眼で見ると出現する数字に規則性がありますから…

⑨ SASUKEのようなタイマー

初期の持ち時間がa。bはカウントダウンなのでb=-1。

60秒以上を表示したいときは以下の通りです。

<?a=120 b=-1 ot=b*obj.time+a 
mes(string.format("%02d.<s34>%01d<s>",(ot),(ot*10)%10))?>

小数点以下のサイズは<s34>の数字をいじって調節可。

その他(カウンターの作り方)

タイマーではなく、等間隔で値が整数値だけ増えていく(あるいは減っていく)カウンターを作りたい、という人は以下の通りにすればいいでしょう。

 

1:拡張編集上で右クリック→メディアオブジェクトの追加→カスタムオブジェクト

2:カスタムオブジェクトの左下の「集中線」とあるタブを「カウンター」に変更

3:初期値がデフォルトで0(最初は0からスタート)、速度がデフォルトで1(1秒に1進む)なので好みの値にする

 

上のタイマーのスクリプトを応用して作ることも可能ですが、デフォルトでこのようないい機能が入っています。

コメント

  1. Lust より:

    コメント失礼いたします。

    1秒24コマ(fps)のタイマーを作りたいのですが、こちらのページのスクリプトで再現可能でしょうか?
    難しい場合はどうすれば良いでしょうか?

    当方AviUtl初心者なのですが、マシンスペックの問題でAviUtlに触れ始めました。
    スクリプトに関する知識が0に等しく、よろしければご教示いただけれますと幸いです。

    何卒よろしくお願いいたします。

    〈イメージ〉
    00:00:00:23
    ↓1コマ経過
    00:00:01:01

  2. より:

    コメント失礼します。
    こちらの動画のイントロにあるような小数点以下第10位まで表示されていて、最初の値が約1.6、決まった位置で0になるカウンターを再現することは可能でしょうか?(私が制作したいカウンターの長さは1.66秒ほどです)
    https://nico.ms/sm20503130

    • iid01 iid01 より:

      %09d<s>“,(ot),(ot*1000000000)%1000000000))?>
      で大体再現可能です
      bの値は-1.66/(長さ[秒])くらいで調整して、小数点以下は適当に(きれいな値だと小さい位が動かない)
      %09dと(ot*1000000000)%1000000000))は桁数に応じて決定
      フォントは好きなものを選択して中央揃えでOK

      • より:

        ありがとうございます!再現したいものを再現することができました。
        ひとつお聞きしたいのですが、小数点以下10桁に設定しようとすると上手くいかないのですがこれはどうしようもないのでしょうか。

        • iid01 iid01 より:

          例えば016dとしてotの後の0の数を16個にすればたぶんできると思います

          • より:

            初期値がaの値と異なったり、マイナスが表示されてしまいますね… とりあえず再現したいものはできたので大丈夫です。ありがとうございました!

タイトルとURLをコピーしました