コンポジションにあらかじめテロップ用のレイヤーを作成する TEXT1、TEXT2 など 設定したいフォントなどを適用したテキストレイヤーを必要な分だけ作成しておく
CSVを作成する
telop.csv
TextLayer,Telop
TEXT1,命果てるもの
TEXT1,海馬を横切る鼓動
TEXT1,永遠がそこにあるなら
TEXT1,終わりは何故怖いの
TEXT1,花の香りよ
TEXT1,煙る時雨柔らかい熱は
TEXT1,解けて冷たく沈む自我に命は燃えている
TEXT1,かたちの無いもの
TEXT1,それに囚われるもの
TEXT1,歪に揺れる蜃気楼
TEXT1,吸い込まれてしまいそう
TEXT1,何故悲しいの
TEXT1,どうして泣いているの
TEXT1,脳裏をよぎるテレパシー
TEXT1,死ぬ間際にわかるなら何?
スクリプトを実行し、CSVを選択する
(function () {
// 現在選択しているコンポジションを取得
var comp = app.project.activeItem;
// コンポジションが選択されていることを確認
if (comp && comp instanceof CompItem) {
app.beginUndoGroup("Create Telop Text Layers");
// ファイル選択ダイアログでCSVファイルを選択
var csvFile = File.openDialog("CSVファイルを選択してください", "*.csv");
if (!csvFile) {
alert("CSVファイルが選択されていません。");
app.endUndoGroup();
return;
}
var telopData = [];
csvFile.open("r");
// ヘッダ行をスキップ
csvFile.readln();
// CSVを読み込み、配列に格納
while (!csvFile.eof) {
var line = csvFile.readln();
var columns = line.split(",");
telopData.push({
textLayer: columns[0],
telop: columns[1]
});
}
csvFile.close();
// telopDataの順番を逆にする
telopData.reverse();
// CSVデータに基づいてテキストレイヤーを複製し、テキストを変更
for (var j = 0; j < telopData.length; j++) {
var data = telopData[j];
// 対応するテキストレイヤーを探す
var textLayer = comp.layer(data.textLayer);
if (!textLayer) {
alert("テキストレイヤー '" + data.textLayer + "' が見つかりません。");
continue;
}
// テキストレイヤーを複製
var newTextLayer = textLayer.duplicate();
newTextLayer.name = data.telop;
// 複製したテキストレイヤーのインポイントとアウトポイントを設定
// newTextLayer.inPoint = audioLayer.inPoint;
// newTextLayer.outPoint = audioLayer.outPoint;
// テキストの内容を変更
newTextLayer.text.sourceText.setValue(data.telop);
// 新しいレイヤーをコンポジションの一番上に移動
// newTextLayer.moveToBeginning();
}
app.endUndoGroup();
} else {
alert("コンポジションを選択してください。");
}
})();