スクリプト

After Effectsスクリプトでのフォント関連設定は2段階の手間が必要

スクリプトで初めてフォントの設定を変更する場合、必ずと言ってもいいほど躓くポイントがあります。

通常はプロパティに値を直接setValue()すればいいのですが、フォントはそうはいきません。この謎の仕様によって苦しむ方が多くいると思います。私も細かくリファレンスを漁りトライ&エラーを繰り返すことによって、やっとのこと仕様を理解できた過去がありますので、備忘録として残しておきます。

フォント関連は個別プロパティにsetValue()が効かない

他のプロパティを書き換える方法を覚えても、フォント関連のプロパティを書き換えるスクリプトは、これらとは違うことで、戸惑う方もおられるでしょう。

これでは書き換えることはできず、特に行揃えはリファレンスで「read only」とあり、数年間断念していた程です。

スクリプトでの指定はPostscriptNameが必要

After Effectsでフォントを変更したい場合は、文字ウィンドウに表示されるフォント名ではなく、Postscript名で指定しなくてはいけないそうです。

調べてみたところ、スクリプトでは PostScriptフォント名を使うようになっています。

https://shadeco.video/adobe-forum_yaev

Windows10ではデフォルトでフォントの情報を調べる術がありません。フォント別にテキストレイヤーを量産し、フォント名を一つずつスクリプトで拾う方法もありますが、インストール済みのフォント情報を閲覧できるフリーソフト「フォントインストーラーSAKURA」というものを見つけたので、ダウンロードしてみて、これを調べました。

例えば「源ノ角ゴシック Code JP」の太さ「N」のPostscript名は

このように「SourceHanCodeJP-Normal」という表記であることがわかります。

スクリプトでのフォント指定方法

これを使って、スクリプトで選択テキストレイヤーのフォントをいじってみましょう。

var actItm = app.project.activeItem;
var sel = actItm.selectedLayers;
var txtProp = sel[0].property("Source Text");

var txtDocument = txtProp.value;//値を設定する準備

/*-----ここから1プロパティずつ設定-----*/

// フォント名をPostscript Nameで指定
txtDocument.font = 'SourceHanCodeJP-Normal';
// フォントサイズを50pxに
txtDocument.fontSize = 50;
// 左揃えに
txtDocument.justification = ParagraphJustification.LEFT_JUSTIFY;

// 指定したプロパティを反映させる
txtProp.setValue(txtDocument);

フォント設定の書き換えは、値をどこに設定するかの準備→設定する値を1つのプロパティごとに指定→指定したプロパティを最後にブチ込むという手間が必要です。

10行目の「.font」に代入しているテキストがフォントのPostscript名です。

txtDocument.font = 'SourceHanCodeJP-Normal';

このように通常目にするフォント名と、Postscript名は違うことが多いです。

(After Effects上でのフォント表記)

機会は少ないでしょうが、スクリプトでフォント名を指定したい場合は、フォントに設定されているPostscript名を知る必要があります。

Postscript名の備忘録

手持ちのインストール済みフォントから、過去使ったことがあるフォントのPostscript名だけ備忘録として下記に残しておきます。

フォント名Postscript Name
02うつくし明朝体02UtsukushiMincho
03スマートフォントUI03SmartFontUI
DF祥南行書体W5DFSNGyoSho-W5-WIN-RKSJ-H
DF綜藝体W5DFSoGei-W5-WIN-RKSJ-H
DF優雅宋W7DFYuGaSo-W7-WIN-RKSJ-H
DF隷書体DFLeiSho-SB-WIN-RKSJ-H
F910新コミック体F910-Shin-comic-tai
UtrilloPro-MUtrilloPro-M
HG教科書体HGKyokashotai
HG行書体HGGyoshotai
HG正楷書体-PROHGSeikaishotaiPRO
HGP明朝EHGPMinchoE
Mgen+ 1cp blackmgenplus-1cp-black
mplus-1c-hiragana-blackmplus-1c-hiragana-black
MS ゴシックMS-Gothic
MS 明朝MS-Mincho
S2GP殴り書きS2G-Nagurigaki-font-PRO
アームドレモンArmedLemon
えり字ERIJI
けいふぉんとKeifont
コーポレート・ロゴMCorporate-Logo-Medium
しねきゃぷしょんcinecaption
たぬき油性マジックTanuki-Permanent-Marker
はれのそら明朝HarenosoraMincho
はんなり明朝HannariMincho
ヒラギノ角ゴ Pro W3HiraKakuPro-W3
ヒラギノ明朝 Pro W3HiraMinPro-W3
ふい字PHuiFontP
メイリオMeiryo
源ノ角ゴシック Code JP NSourceHanCodeJP-Normal
源暎アンチック v5 MediumGenEiAntiqueNv5-M
衡山毛筆フォント OTFKouzanBrushFontOTF
KozGoPr6N-RegularKozGoPr6N-Regular
KozMinPr6N-RegularKozMinPr6N-Regular
青柳隷書SIMO2_Oaoyagireisyo2
赤薔薇シンデレラakabara-cinderella
黒薔薇シンデレラkurobara-cinderella
切絵字kirieji
平成角ゴシック Std W3HeiseiKakuGoStd-W3
游ゴシック RegularYuGothic-Regular
游明朝 RegularYuMincho-Regular
ArialArialMT
Bank Gothic LightBankGothicBT-Light
Caviar DreamsCaviarDreams
CenturyCentury
Century GothicCenturyGothic
Code-LightCode-Light
Comic Sans MSComicSansMS
Copperplate Gothic LightCopperplateGothic-Light
Courier NewCourierNewPSMT
DS-DigitalDS-Digital
Times New RomanTimesNewRomanPSMT

フォント一つとってもAfter Effectsで使用しようとするとちょっと手間ですね。

しかしスクリプトでのフォント設定は2段階必要だと覚えておけば、スクリプトが反映されない際の解決策になります。今後も注意すべき仕様などあれば、ご紹介していきます。

レイヤーに連番を振るスクリプト「[_nn]seqNumRenamer.jsx」前のページ

使用フォント一覧をテキストファイル出力するスクリプト「exportFontName.jsx」次のページ

ピックアップ記事

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

関連記事

  1. スクリプト

    aep内全フッテージのファイルパス一覧をテキストファイル出力するスクリプト「exportFootag…

    実行すると、開いているaepファイルと同じフォルダに、aepに読み込…

  2. スクリプト

    なぜ?After Effectsの操作を「スクリプト」で効率化

    出来る範囲はマウスやキーボードで編集者が直接できる操作に限られますが、…

  3. スクリプト

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

    実行すると、開いているaepファイルと同じフォルダに、使用エフェクト…

  4. スクリプト

    選択順にレーザー線を追加するスクリプト「fakePlexus.jsx」

    記事「レーザーの線で繋ぐエクスプレッション」をスクリプト化。…

  5. スクリプト

    ソーステキストをスプレッドシートで一括管理するスクリプト+aep「aepSyncer@TSV.jsx…

    aep内の置換したいテキストを表計算で管理→一括置換できるスクリプトで…

コメント

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

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

CAPTCHA