お知らせ: にーやんのブログ 2 に移転しました。こちらのブログは、2009 年末までに削除します。

スポンサード リンク

続・高橋メソッド風AviSynthスクリプト

高橋メソッド風のAviSynthスクリプトを更新しました。ダウンロードは、にーやんのブログ :: 高橋メソッド風のAviSynthスクリプトから行ってください。

主な変更点は、以下の通り:

  • 文章ごとに持続時間(文章を切り替えるタイミング)を変更できるようにした。
  • 上記の変更に伴って、テキスト定義ファイルの記述の仕方を変更(global変数で指定)。

持続時間の可変への対応については、たぶん、かなり無理矢理な感じでやってます。やはり再帰関数を使っているので、ちょっと重いかもしれません。

なお、バージョン0.2(2005-04-14)は、秒数単位での指定で誤差が生じることがあったため、非公開としました。

高橋メソッド風のAviSynthスクリプト

ちょっと面白そうだったので、高橋メソッド風の動画を作成できるAviSynthスクリプトを作ってみました。

使い方等に関しては、下記のアーカイブに含まれているreadme.txtを読んでください。また、表示テキストの設定方法については、サンプル(sample.def/sample2.def)を参考にしてください。

(2006-05-13 追記)高橋メソッド風の動画を生成する AviSynth スクリプト(JScript 併用版)を公開しました。

ダウンロード

「AviSynthって何?」という人へ

AviSynth(下記「参考URL」を参照)をインストールさえすれば、Windows Media Playerなどの動画再生プレイヤーで、TakahashiMethod.avsを再生できるようになります(WMP10の場合はファイルメニューから開く)。

ただし基本的には、VirtualDubやTMPGEncなど、AviSynthに対応しているエンコーダを使って、AVIやMPEGなどにエンコードしてから、視聴することを想定しています。

中で再帰関数(Recursive function)を使っているため、リアルタイムプレビューには、あまり向いていないと思います。

サンプル動画

同梱しているサンプル(sample2.def)を使って、MPEG-1形式の動画にしてみました。2.95MBあります。

http://niiyan.s8.xrea.com/data/TakahashiMethod3.mpg

この動画は、近いうちに消すかもしれません。

なお、BGMには、FLESH&BONEさんのループ素材を使用させていただいています。

更新履歴

  • ver.0.1(2005-04-11)

    • 初版
  • ver.0.2(2005-04-14)(非公開)

    • 文章ごとに持続時間(文章を切り替えるタイミング)を変更できるようにした。
    • 持続時間をフレーム単位ではなく、秒単位で指定するようにした。
    • 上記の変更に伴って、テキスト定義ファイルの記述の仕方が変更になっています。
  • ver.0.2a(2005-04-15)

    • 持続時間の設定をフレーム単位に戻した。小数点以下の四捨五入により、表示のタイミングがずれて、前後のテキストが重なることがあったため。
  • ver.0.3(2005-05-31)

    • 外部音声との合成(BGMの追加)を可能にした。
    • 一般的なテキストデータを、定義ファイルの形式に変換するためのバッチファイル(Txt2TakahashiMethod.bat)を同梱。
    • text_numbers(行数)を定義ファイル内で指定するように変更。(バッチファイルを利用すると、自動的に設定されます。)

参考URL

タイムコードをフレーム番号に変換する関数

説明

タイムコードを利用する関数集。フレーム番号に変換する関数(TimeCode)と、それを利用した選択範囲指定関数(TrimTC)を含む。

ダウンロード

timecode.avs(ZIP 形式で圧縮)

  • Import("timecode.avs")

TimeCode関数

TimeCodeはタイムコードをフレーム番号に変換する関数です。

  • 書式 TimeCode(clip clip, string timecode)

  • 引数

    • clip: ビデオクリップ。
    • timecode: タイムコード。HH:MM:SS:MSという形式で記述する。
  • 使用例 TimeCode("00:00:00:033") # 29.97fpsのクリップなら、1を返す。

TrimTC関数

TrimTCは、TimeCode形式で選択範囲の開始点と終了点を指定する関数です。TimeCodeとセットで使用します。

  • 書式 TrimTC(clip clip, string start, string end)

  • 引数

    • clip: ビデオクリップ。
    • start: 選択開始時間。
    • end: 選択終了時間。
  • 使用例

    TrimTC("00:00:00:000", "00:02:36:623") # 29.97fpsのクリップなら、Trim(0,100)と同じ。

注意

エラー対策は一切していません。 動作未保証。

ユーザー定義関数集(myFunctions.avs)をver.0.4に更新

ユーザー定義関数集(myFunctions.avs)を更新しました。ダウンロードは、にーやんな日々..._〆(゚▽゚*) :: インターレース素材系関数集からお願いします。

今回の更新は、おもにバグ修正に伴うものです。前のバージョンを使っている人があれば、新しいものに差し替えてください。

# 変更点

  • iDust関数で最終フレームが欠ける不具合の修正。
  • iDust/iDustB関数で音声が短くなる場合があったのを修正。
  • FaeryDustMod関数の追加(※インターレース用ではありません)。

FaeryDustMod関数については、にーやんな日々..._〆(゚▽゚*) :: Dustを使うと最終フレームが直前のフレームの画像に置き換わる現象についてを参照。そこで紹介しているスクリプトに、画像の大きさをチェックするようにした関数です。

また、FaeryDustMod関数はインターレース素材用ではありませんので、注意してください。今回、暫定的にインターレース素材系関数集に追加しましたが、あらためて、別の形で紹介しなおすことになると思います。その際、インターレース素材系関数集からは削除されることになるでしょう。

ユーザー定義関数: BlackenFields

# BlackenFieldsとは?

1フィールド、または、特定の範囲の連続したフィールドを、黒色(または、その他の色)に塗りつぶす関数です。

実際には、本当に塗りつぶすわけではありません。黒いフィールド画像を重ねる(Overlayする)ことによって、黒く塗りつぶしたように見せかけます。

# ダウンロード

BlackenFields.avs のダウンロード (ZIP 形式で圧縮)

# 書式

BlackenFields(clip clip, int "start", int "end", bool "debug", int "color")

  • 引数
    • start: 塗りつぶし開始フィールド番号。
    • end: 塗りつぶし終了フィールド番号。デフォルトはstart。1フィールドのみ塗りつぶす場合は省略。
    • debug: debug=trueで設定モード。デフォルトはfalse。
    • color: 塗りつぶす色の指定。デフォルトは$000000(黒)。

# 使い方

  1. BlackenFields.avsをImportする。

    # 例:
    Import("BlackenFields.avs")

  2. debug=trueで設定モードにする。
    ここでは、他の引数は指定しません。

    # 例:
    BlackenFields(debug=true)

    • サンプル画像: サンプルクリップ(関数適用前) サンプルクリップ
    • サンプル画像: debug=trueにした場合
      debug=trueの場合
    • 設定モードのサンプル画像の説明
    • 上部: 各フィールドを縮小した画像(左が偶数フィールド、右が奇数フィールド)。
    • 下部: フレーム画像(元のフレームサイズにあわせるために、縦に圧縮されている)。
  3. 塗りつぶしたいフィールド番号を指定する。
    塗りつぶしたいフィールド番号を指定します。フレーム番号ではなく、フィールド番号であることに注意してください。フィールド番号は、画像上部のフィールド別画像で確認することができます(debug=true時のみ)。

    # 例: 151フィールドを塗りつぶす
    BlackenFields(151, debug=true)

    • サンプル画像: 151フィールドを塗りつぶし指定
      塗りつぶすフィールドの指定
  4. 設定モードを解除する。
    debug=falseとするか、引数debugの指定部分を削除して、設定モードを解除します。これで設定は完了です。

    # 例:
    BlackenFields(151)

    • サンプル画像: 設定モードを解除したところ
      設定モードを解除したところ

# 註

  • 複数の連続したフィールドを塗りつぶしたい場合

    # 例: 151から153までのフィールドを塗りつぶす
    BlackenFields(151, 153)

  • 黒以外の色で塗りつぶしたい場合

    # 例: $ff0000(赤)で塗りつぶす
    BlackenFields(151, color=$ff0000)

# 更新履歴

  • v1.*: BlackenFieldとして公開。
  • v2.0(非公開):
    • 1から書き直した。
    • 複数のフィールドを黒くすることが可能。
    • 上記の変更にあわせて、BlackenFieldsと改名した。
  • v2.1(非公開):
    • debugモードを更新。
    • フレーム数の表示などを追加した。
  • v2.2:
    • debugモードをサブ関数として分離(BlackenFieldsDebug)。
    • 黒以外の色を指定できるようにした。
  • (2007-10-23 追記)ZIP 形式で圧縮したものに差し替えました。内容は v2.2 から変更はありません。

Page 4 of 8: « 1 2 3 4 5 6 7 8 »