{ // 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)いき、スクリプトを走らせるだけ。
便利なものがあり、動画編集のハードルも下がってきていますね。将来はもっと動画編集が簡単になってくれるといいですね。
No comments:
Post a Comment