私は字幕付きの映画を見ていて、よく話している言葉と字幕の内容がかなり違うのが気になります。それで文句を言っていたのですが、自分が字幕を作製する立場になりました。
Adobe After Effects を用い、最初はできるだけ正確な翻訳を作り字幕にして挿入したのですが、これだと読むスピードが追いつかず、字数を詰めて表現も変える事になりました。話ている内容とかなり違いますね。
実際、正確な訳を字幕にするのは無理ですね。自分でやってみて初めて実感できました…。
Showing posts with label After Effects. Show all posts
Showing posts with label After Effects. Show all posts
Friday, 2 December 2011
Friday, 11 November 2011
After Effects 字幕挿入スクリプト
クライエントの要望で動画に字幕を入れる作業をする事になりました。一つずつフォーマットをしていたのでは日が暮れるので、こちらのスクリプトを使いました。
これを適当な名前、例えば'subtitle.jsx'として保存してテキストファイルで別に字幕ファイルを作製、改行で画面を区切る。後はAFのコンポジションにテキストレイヤーを追加して、字幕が表示される所と消える所にマーカーを付けて(Macだとcontrol+8)いき、スクリプトを走らせるだけ。
便利なものがあり、動画編集のハードルも下がってきていますね。将来はもっと動画編集が簡単になってくれるといいですね。
{
// Subtitle generator by !Rocky
// modified by Colin Harman ( http://colinharman.com/ ) to work on a Mac
//
// Save this code as
// "subtitles.jsx"
//
// Create a text file with your subtitles.
// Each line of text is one on-screen line.
// To have several lines on-screen at the same time,
// simply separate them with a pipe ( | ) character.
// eg "Character 1 talks|Character 2 interrupts"
//
// Create a new text layer in your comp, adjust its position,
// make sure the text's centered, so it looks nice
// Add markers (Numpad *) where each subtitle line must be shown/hidden.
// With the text layer selected, run the script, and select the subtitles file.
// Enjoy!
function makeSubs() {
var layer = app.project.activeItem.selectedLayers[0];
if (layer.property("sourceText") != null) {
var textFile = File.openDialog("Select a text file to open.", "");
if (textFile != null) {
var textLines = new Array();
textFile.open("r", "TEXT", "????");
while (!textFile.eof)
textLines[textLines.length] = textFile.readln();
textFile.close();
var sourceText = layer.property("sourceText");
var markers = layer.property("marker");
for (var i = sourceText.numKeys; i >= 1; i--)
sourceText.removeKey(i);
var line = 0;
var subTime, subText;
for (var i = 1; i <= markers.numKeys; i++) {
subTime = markers.keyTime(i);
sourceText.setValueAtTime(0, " ");
if ((i % 2) == 0) {
subText = " ";
}
else {
subText = textLines[line].replace("|", "\x0d\x0a");
line++;
}
sourceText.setValueAtTime(subTime, new TextDocument(subText));
}
}
}
}
makeSubs();
}
これを適当な名前、例えば'subtitle.jsx'として保存してテキストファイルで別に字幕ファイルを作製、改行で画面を区切る。後はAFのコンポジションにテキストレイヤーを追加して、字幕が表示される所と消える所にマーカーを付けて(Macだとcontrol+8)いき、スクリプトを走らせるだけ。
便利なものがあり、動画編集のハードルも下がってきていますね。将来はもっと動画編集が簡単になってくれるといいですね。
Subscribe to:
Posts (Atom)