スクリプト

選択レイヤーのソーステキストを編集するスクリプト「textLayerEditor.jsx」

選択した全テキストレイヤーのソーステキストを読み込み、テキストエリア上で編集できるエディターです。

[概要]

テキストはレイヤー選択順に改行されエディターに表示されます。

注意点としては、スクリプトでのソーステキスト書き換えの仕様で、文字ごとに色やサイズを設定していても1文字目のスタイルに統一されてしまいます。これで問題ない場合のみ使用してください。

[使い方]

  1. 編集したいテキストレイヤーを全選択
  2. スクリプトを実行
  3. 選択順に改行された状態でエディタに読み込まれる
  4. 1行1テキストとして編集する
  5. 「ソーステキスト置換」ボタンをクリック

[オプション]

  • 編集機能は「textLayerImporter.jsx」の一部機能を含み、「<br>改行」を1レイヤーと見なし複数行のテキストレイヤーもそのまま連続で編集可能
  • 「ソーステキスト置換」クリック時にも選択レイヤーを検知し直す
  • テキスト編集中はタイムライン上のテキスト選択を解除しないよう注意
  • 解除してしまったら同じ順序でもう一度選択するか、スクリプトを実行し直すのが安全
  • 代わりに置換直前に選択順を変えて置換するだけでテキストレイヤーの順序ミスを修正できる上級テクニックも

[解説]

var scName="textLayerEditor";
var sel=app.project.activeItem.selectedLayers;
var tx="",txArbr=[],txAr=[];

/*
===============
--- GUI準備 ---
===============
*/

function f_showDialog(){
	this.w = new Window("palette{properties:{resizeable:false, }}",scName);
	this.w.center();
        this.ed = this.w.add("edittext",[0,20,360,320],"",{multiline: true, alignChildren: "fill",});
        this.go = this.w.add("button",[0,20,220,40],"ソーステキスト置換");
    //プロジェクトウィンドウ全検索
    for (i=0; i<sel.length; i++){
        isTxt=sel[i].property("Source Text");
        if(isTxt!=null){
            tx+=String(isTxt.value).replace(/\r|\r\n|\n/g, '<br>\r')+"\r";
        }
	}
         
	this.show = function()
	{
        return this.w.show();
	}
}

var wobj = new f_showDialog;
    wobj.ed.text=tx;
    wobj.show();
    wobj.onResizing = wobj.onResize = function(){ this.layout.resize()};

/*
===============
--- ボタン操作 ---
===============
*/

wobj.go.onClick = function(){
    app.beginUndoGroup("textLayerEditor");
    var qty=0;

//まず"<br>改行"を"<brbrr>"に変換
    txArbr=wobj.ed.text.replace(/<br>\r|<br>\r\n|<br>\n/g, '<brbrr>');
    txAr = txArbr.split(/\r\n|\r|\n/);
    qty=Math.min(sel.length,txAr.length);
    for(i=0;i<qty;i++){
        sel[i].property("Source Text").setValue(txAr[i].replace(/<brbrr>/g, '\r\n'));
    }//for
    app.endUndoGroup();
}

改行のルールは「textLayerImporter.jsx」と同じく、

「1行目<br>2行目」ではレイヤー内改行されませんので注意。

1行目<br>
2行目

と、<br>直後の改行をレイヤー内改行とみなし、複数行の1レイヤーテキストにできます。

シンプルな字幕など、文字ごとにスタイルをいじらないテキストの連続置換に威力を発揮します。

ダウンロード

文章を分解してテキストレイヤーにするスクリプト「textLayerImporter.jsx」前のページ

【あったらヤなCM】001_概念「台」次のページ

ピックアップ記事

  1. YouTubeで一時停止中のコントローラーを非表示にするブックマークレット
  2. なぜ?After Effectsの操作を「スクリプト」で効率化
  3. なぜ?After Effectsのレイヤーをエクスプレッションで効率化
  4. フリーランスの開業届提出は開業freeeでとにかく簡単に
  5. amazonのスポンサー商品(広告)を非表示にするブックマークレット「amazO…

関連記事

  1. スクリプト

    選択レイヤー名末尾の数値を#で始まるエフェクトに適用する補助スクリプト「numSliderSette…

    複数の整列させるレイヤーの管理を効率化するエクスプレッション連動スライ…

  2. スクリプト

    パスに沿ってレイヤーを均等配置するスクリプト「posPathAlign.jsx」

    全選択レイヤーをパスに沿って均等配置するスクリプト。…

  3. スクリプト

    使用エフェクト一覧をテキストファイル出力するスクリプト「exportFxName.jsx」

    使用エフェクト一覧を、開いているaepファイルと同じフォルダにテキスト…

  4. スクリプト

    文章を分解してテキストレイヤーにするスクリプト「textLayerImporter.jsx」

    1行を1テキストレイヤーに変換するスクリプト。字幕を1つ1つコピペする…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA