台本を字幕として、After Effectsに流し込むスクリプトを書きました。 詳細は動画をご覧ください。

楽をするために苦労しました。開発期間はおよそ1か月です。

記事: AfterEffectsに字幕を挿入するスクリプトを作った

ダウンロード

最新版

ファイル
sa4ae-2016-06-rain.zip
サイズ
3521324 byte (3.35 MB)
SHA-256
dcc8cc6ddb430ea033092f4799d5b87122a38218249e5ae4a212e8f19c838981

過去のバージョン

ファイル
sa4ae-2015-christmas.zip
サイズ
1130111 byte (1.07 MB)
SHA-256
9bd292c9d3383dcce69dd6dfcb55f09ba9eb7c03cc363952dcd9a60747d72129

内容物

  • bin … バイナリが格納されています。
  • doc … 文書が格納されています。
    • README.html … README.md.txt のHTML版です。
    • Update.html … 更新情報です。
    • LICENSE.txt … このツールのライセンスです。
    • Dependencies.txt … このツールが利用しているライブラリの表示とライセンス表示です。
    • Template.xltx … 台本のExcelテンプレートです。
    • 強制停止(Force Stop).bat … プログラムが暴走した時に強制的に止めるバッチファイルです。暴走したらごめんなさい。
  • ScenarioAnalyser.jsx … After Effects に読み込ませるスクリプトです。
  • TypewriteredText.jsxinc … ScenarioAnalyser.jsx から呼び出される、字幕を作成するスクリプトです。
  • sa4ae.exe … ScenarioAnalyser.jsx の実行時に指定する台本解析機です。

使い方

  1. After Effects の編集、環境設定、一般設定から、スクリプトによるファイルへの書き込みとネットワークへのアクセスを許可にチェックを入れます。
  2. ファイル、スクリプトから、スクリプトファイルの実行を選択し、“ScenarioAnalyser.jsx” を選択します。
  3. 台本を選択します。
    • 台本ファイルの場合、そのファイルのプロジェクトフォルダを選択します。
    • Excel の場合はファイルを選択します。
    • Google スプレッドシートの場合は、実行時に解析を開始します。
  4. Excel、Googleスプレッドシートの場合、Wavファイルを格納しているフォルダを選択します。
  5. 「台本解析器を選択」を選択し、“sa4ae.exe” を選択します。
  6. 各パラメタを設定します。
  7. 台本解析開始を実行します。

字幕プロジェクトの構造について (ver.2015-christmas)

こんな感じのフォルダ構造になっています。

  • root: プロジェクトフォルダの根っこ。名前は何でもいい
    • scenario: ここにシナリオを入れる
      • act-[3ケタの番号]: act-001 など
        • sc-[3ケタの番号]-[名前].krr: sc-001-introduction.krr
        • sc-[3ケタの番号]: フォルダ
          • [名前].krr: 一番階層が深いパターン
      • act-[3ケタの番号]-sc-[3桁の番号]-[名前].krr: これでも認識する

ほかのディレクトリは将来使うかも……といった感じです。 .krrファイルと同じ階層にvoiceというフォルダを設け、ファイル名を指定の命名規則にのっとったものにすることで、そのファイルの長さが、字幕の表示終了までの長さに揃えられます。

ver.2015-christmas:
ファイルの長さに応じて字幕の長さを決定する部分は、出来上がっていますがコードがめちゃくちゃになっていて、どうしようもないことになっているので、リファクタリング後の次のバージョンで使えるようにします。

文法簡易リファレンス (ver.2015-christmas)

凝った文法リファレンスは準備中です。基本となる文書はできているのですが、構文解析を実装しないと書けないです。

概念

改行

この文法は、改行に意味を持ちます。 空行とは、行頭の次の文字が改行である行のことです。

改行の次の文字(行頭)から始まり、改行で終わる文字列です。

段落

2つ以上の空行で区切られた行のかたまりです。

ここに日本語が入る。別にそれは英語でもロシア語でも構わないけど。

これで段落を変えることができた。

全角と半角

全角と半角は基本的に区別されません。

ファイル形式

ファイル名は*.krrである必要があり、ファイルの内容はテキストファイル、エンコードはUTF-8である必要があります。

要素

(行頭に特に何も指定されていない)行

行に書かれている内容がメッセージとして利用されます。 行頭に要素を表す記号がある場合、何らかの要素として処理されます。

VOICEROID拡張

VOICEROIDで利用する場合、行に書かれた内容が、そのままVOICEROIDで利用されます。 ただし、行中で[読み]式などを利用すると、その式に従って変形を加えた後、VOICEROIDで利用されます。

!: コメント

コメントです。無視されず、解析結果としては保持されますが、解析結果から何かを実行する場合には、ほとんどの場合、無視されます。

! これはコメント。誰にも読まれることなどない。そう、コメント。

# 文字列: 話者

誰が話しているかを設定します。これは、段落のはじめに記述されます。段落単位で有効で、指定がない場合、上の段落のものを代わりに利用します。文字列が空の場合、何も表示しません。

# ゆかり
こんばんは、結月ゆかりです。

今日は冬至だそうです。
! 上の「ゆかり」が推測されます。

VOICEROID拡張

ver.2015-christmas:
ほとんど実装されていません。

将来のバージョン:
原則としてcharacterフォルダに定義された話者とキャラクター、そして音声効果によって利用されます。

話者のオプション

話者は、その文字列の後に、2つのオプションを指定することができます。

(感情): 話者の感情

話者の感情を表現します。

# ゆかり(おこ)

将来のバージョン:
character設定ファイルに定義された立ち絵やモーション、音声効果を、この感情の設定に従って利用できるようにしたいと思っています。

[式]: 話者に対する操作の適用

話者に対して特定の操作を実行します。VOICEROIDなどの音声効果をここで設定します。

# ゆかり [音声効果 [高さ: 0.8]]

ver.2015-christmas:
無視されます。音声効果の引数を読み取る部分が出来上がっていないためです。

[操作 対象もしくは引数] で、行中に出現することがある要素です。 対象もしくは引数は、操作によっては省略できることもあります。

# ゆかり
式は、以下のように使われます。

[音声効果 [高さ: -0.3] [抑揚: 2.0]]
ふふっ、キミの言いたいこと、[読み-表記]理解る[読み わかる]よ。

[操作 [名前: 値]]: 名前付き引数

式の引数に対して、[名前: 値]と指定することで、複数の引数の値を指定する際に、名前を付けて引数を指定することができます。

ver.2015-christmas:
無視されます。音声効果の引数を読み取る部分が出来上がっていないためです。

操作一覧

[読み-表記] / [読み {読み方}]

表記と読み方を変えたいときに利用します。VOICEROID等を利用するときに利用します。

キミは知らないだろうが、ボクは[読み-表記]識って[読み しって]るよ。
そうだ、ボクはキミの[読み-表記]内に秘めたる深淵[読み こころ]に訊いてるんだ。

将来のバージョン:
ルビとしてさらに活用したいです。

[音声効果 {音声効果の設定}]

VOICEROIDが対象の場合のみ読み取られます。VOICEROIDの音声効果を、引数の通り変更します。段落単位で有効で、段落が変わると音声効果適用前の状態に戻ります。

ver.2015-christmas:
無視されます。音声効果の引数を読み取る部分が出来上がっていないためです。

バージョン情報

1.1 (2016-06-rain)

Scenaro Scripter リリースに合わせて、 Scenario Analyser for After Effects を改修しました。

ADD

  • Google スプレッドシート、Excelから字幕文字列を読み込む機能を追加
  • Wavファイルを保存しているディレクトリの指定機能を追加

CHANGE

  • バイナリファイルの数が多くなってきたので、binディレクトリにバイナリファイルを集約し、sa4ae.exe から起動できるように変更。

FIX

  • Marginが適切に設定されていなかった問題を修正

ver.2015-christmas

最初のバージョンです。

既知のバグ

  • どんなバグが眠っているかすらわかりません。

利用条件

MIT

あとがき

ま、自己満足だよね……。