終了

フォントをランダムに変更するスクリプト

New Here ,
Feb 10, 2023 Feb 10, 2023

リンクをクリップボードにコピー

コピー完了

選択しているテキストレイヤーのフォントを、ランダムに変更していくスクリプトを書ける方いたら教えていただきたいです

var comp = app.project.activeItem;
var selectedLayers = comp.selectedLayers;
var fontList = app.fonts.list();

for (var i = 0; i < selectedLayers.length; i++) {
var layer = selectedLayers[i];

if (layer.property("Source Text")) {
var randomIndex = Math.floor(Math.random() * fontList.length);
var randomFont = fontList[randomIndex];

layer.property("Source Text").property("Font").setValue(randomFont);
}
}

このスクリプトだとエラーが出てしまってうまくいきません、app.fonts.listってとこらへんでエラーでる感じなんですが、よろしくお願いします

キーワード
スクリプティング

表示

816

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Feb 10, 2023 Feb 10, 2023

リンクをクリップボードにコピー

コピー完了

方法はわからないのですが、fonts.list() は、何か参考にされたのでしょうか。


テキストレイヤーの作成については、下記の記事が参考にならないでしょうか。
After Effects スクリプトリファレンス - TextDocument object 

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Feb 10, 2023 Feb 10, 2023

リンクをクリップボードにコピー

コピー完了

<追記>
先のリンクを参考にして、フォントを変更するスクリプトを作成してみました。


1行目に候補となるフォント名を入力して、4行目の数値でフォントを選択します。
数値は、0から始まり、フォント数が3個なら0〜2の値を入力します。
この数値をランダムにするコードを追加すれば、フォントをランダムに変えることができます。

 

var f = new Array ("ArialRoundedMTBold" , "BrushScriptMT" , "Noteworthy-Bold");     //フォント名
var textProp = app.project.item(1).layer(1).property("Source Text"); 
var textDocument = textProp.value;
textDocument.font = f[1];   // 0〜2の数値を入力
textProp.setValue(textDocument);

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Feb 10, 2023 Feb 10, 2023

リンクをクリップボードにコピー

コピー完了

<追記>
ランダムにフォントを選択する方法も作成してみました。
フォント名を追加するだけで利用できます。

var f = new Array ("ArialRoundedMTBold" , "BrushScriptMT" , "Noteworthy-Bold");     //フォント名
var n = Math.floor(generateRandomNumber()*(f.length));
var textProp = app.project.item(1).layer(1).property("Source Text"); 
var textDocument = textProp.value;
textDocument.font = f[n];
textProp.setValue(textDocument);

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Feb 11, 2023 Feb 11, 2023

リンクをクリップボードにコピー

コピー完了

IllustratorかPhotoshopのスクリプトは、app.fontsを使用してフォント名をまとめて出力できるようなので、エディターを使って「改行」を「","」に置換えると上記のスクリプトにフォント名を全て埋め込むことができます。

ae101.jpg

ae102.jpg

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
New Here ,
Feb 13, 2023 Feb 13, 2023

リンクをクリップボードにコピー

コピー完了

ありがとうございます、せっかく教えていただいて申し訳ないんですが、フォントを新しく追加するたびにスクリプトを変更するとなると実用的ではないので、力業の手動でフォントを入れるとゆうよりも、今使っているフォントを全て対象にできるスクリプトであってほしいんですが、わからないでしょうか?

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Feb 13, 2023 Feb 13, 2023

リンクをクリップボードにコピー

コピー完了

最新

After Effects のスクリプトでは、使用できるフォントを参照することが出来ないので、フォント名を配列して対応させています。
全てのフォント名を書き換える作業は、2〜3分で出来ると思います。


この方法以外だと、下記リンクが関連した内容に思えますが、Windows用のため、どのように動作するかは確認していません。
Find available fonts in Adobe After Effects with extendscript - Stack Overflow 

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines