スクリプト

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. フリーランスの開業届提出は開業freeeでとにかく簡単に
  2. なぜ?After Effectsのレイヤーをエクスプレッションで効率化
  3. なぜ?After Effectsの操作を「スクリプト」で効率化
  4. YouTubeで一時停止中のコントローラーを非表示にするブックマークレット

関連記事

  1. スクリプト

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

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

  2. スクリプト

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

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

  3. スクリプト

    アイソメトリックビューを簡易的に実現するスクリプト「isometricCamera.jsx」

    インフォグラフィックスにも相性のいいアイソメトリックビュー風カメラを手…

  4. スクリプト

    AEでも前方選択するスクリプト「selectForword.jsx」

    PremiereにはあるのにAfter Effectsにない標準ツー…

  5. スクリプト

    セット済みのフェード時間を調整するスクリプト「[batch]@fIn_fOut.jsx」

    既に[auto]fIn_fOut.jsxで追加された自動フェード用のス…

  6. スクリプト

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

    タイムライン上で連番管理したいレイヤーを選択した順に連番でリネームする…

コメント

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

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

CAPTCHA