niiyan's blog

niiyanの個人ブログ。

mojimoji 関数: テキストの移動と拡大縮小

SubtitleとAnimateを組み合わせてテキストを移動させるでは、Subtitle と Animate を組み合わせて、テキストを移動させたり、拡大縮小させたりする方法を紹介しました。

その方法では引数の指定が面倒だったので、今回、これを関数化してみました。名付けて、mojimoji 関数。

ダウンロード

mojimoji_20080408.zip - Windows Live (2008-04-08 更新)

シンタックス

mojimoji
mojimoji(clip input, string moji, int start, int end, int x1, int y1, int "x2", int "y2", int "size",
\ string "font", int "text_color", int "halo_color", int "size2", int "lsp")
mojimojiOvr
mojimojiOvr(clip input, string moji, string "fx", string "fy", string "fopacity", string "fzoom",
\ int "size", string "font", int "text_color", int "halo_color", int "x", int "y", float "opacity")

パラメータ

共通
  • input: ビデオクリップ。
  • moji: 表示するテキスト。
  • size: テキストの標準サイズ。
  • font: 使用するフォント。
  • text_color: テキストの色。
  • halo_color: テキストの縁の色。
mojimoji のみ
  • start: 開始フレーム。
  • end: 終了フレーム。
  • x1: start 時点におけるテキストの x 座標。
  • y1: start 時点におけるテキストの y 座標。
  • x2: end 時点におけるテキストの x 座標。
  • y2: end 時点におけるテキストの y 座標。
  • size2: end 時点におけるテキストのサイズ。拡大縮小時のみ指定。
  • lsp: 行間の高さ。Subtitle の同名パラメータに相当。
mojimojiOvr のみ
  • fx: Overlay フィルタの ol_x_offset を定義した ConditionalReader 形式のファイル。
  • fy: Overlay フィルタの ol_y_offset を定義した ConditionalReader 形式のファイル。
  • fopacity: Overlay フィルタの ol_opacity_offset を定義した ConditionalReader 形式のファイル。
  • fzoom: 文字サイズを定義した ConditionalReader 形式のファイル。
  • x: テキストの x 座標。fx を使わず、位置を固定したい場合に指定。
  • y: テキストの y 座標。fy を使わず、位置を固定したい場合に指定。
  • opacity: 不透明度。fopacity を使わず、不透明度を固定したい場合に指定。

mojimoji.avs 内で設定可能な global 変数

mojimoji.avs の中で、以下の global 変数の値を設定/変更することができます。

# デフォルト値の指定
global mojimoji_text_color = $000000 # フォントの色
global mojimoji_halo_color = $EFEFEF # 文字の縁、および、文字を重ねるクリップの背景色
global mojimoji_font = "MS Pゴシック" # フォント
global mojimoji_size = 18 # フォントの大きさ
global mojimoji_lsp = 0 # 複数行表示時の行間の大きさ(-1 なら常に 1 行として扱う)
global mojimoji_mask_tolerance = 10 # マスクの許容度(大きくするほど、より多くの色を透過色とみなす)

font_color, halo_color, font, size, lsp を省略した場合には、上の 4 つの値がそれぞれ適用されます。最後の mojimoji_mask_tolerance は同じ色とみなす許容範囲を指定する。ColorKeyMask の tolerance パラメータに相当。

使用例

mojimoji
# 関数定義ファイルのインポート
Import("mojimoji.avs")
# ソースクリップ
BlankClip(100, 320, 240, fps=15, color=mojimoji_halo_color)
# 右から左へ
mojimoji("               ∧∧\n   ┃   ┏━┃     (,,゚∀゚)     ┃┃\n ━┏┛ ┏━┃ ━━/ つ━━┛ .┃┃\n ━┏┛ ┛  ┃   〜( ,ノつ      ┛┛\n   ┛       ┛     (/        .┛┛", 0,24, 320,80, -320,80)
# 下から上へ
mojimoji("               ∧∧\n   ┃   ┏━┃     (,,゚∀゚)     ┃┃\n ━┏┛ ┏━┃ ━━/ つ━━┛ .┃┃\n ━┏┛ ┛  ┃   〜( ,ノつ      ┛┛\n   ┛       ┛     (/        .┛┛", 25,49, 0,240, 0,-240)
# 拡大
mojimoji("               ∧∧\n   ┃   ┏━┃     (,,゚∀゚)     ┃┃\n ━┏┛ ┏━┃ ━━/ つ━━┛ .┃┃\n ━┏┛ ┛  ┃   〜( ,ノつ      ┛┛\n   ┛       ┛     (/        .┛┛", 50,98, 150,120, -400,-40, 1, size2=64)

zoome動画: mojimoji.avs サンプル動画 1: mojimoji - niiyan X zoome

mojimojiOvr
# 関数定義ファイルのインポート
Import("mojimoji.avs")
# ソースクリップ
BlankClip(100, 320, 240, fps=15, color=mojimoji_halo_color)
# mojimojiOvr 関数
mojimojiOvr("キタ━(゚∀゚)━!", "xoffset.txt", "yoffset.txt", "opacity.txt", "zoom.txt")

※注: "xoffset.txt", "yoffset.txt", "opacity.txt", "zoom.txt" は、サンプルとして mojimoji.avs に同梱されています。

zoome動画: mojimoji.avs サンプル動画 2: mojimojiOvr - niiyan X zoome

更新履歴

  • 2005-10-22: 初版。
  • 2007-10-23: ZIP 形式で圧縮したものに差し替え。内容は変更なし。
  • 2008-04-08: 変更点については、mojimoji 関数を更新を参照。