このサイトはアフィリエイト広告を利用してます

タイプスケールを自動作成

フォントサイズの悩みをIllustratorスクリプトで即解決!

最適なフォントサイズをどう選べばいいのか、迷っていませんか?

  • 適切なフォントサイズの基準がわからない
  • フォントのジャンプ率を計算するのが手間
  • フォントでデザインに統一感を出したい
  • このような悩みは、デザインの現場でよく耳にするものです。
    そこで今回は、フォントサイズをバランス良く設定するためのIllustratorスクリプト【TypeScale】をご紹介します。

    【TypeScale】を使うと、見出しや本文の各フォントサイズを比率に基づいて簡単に確認でき、デザインの一貫性を保ちながら作業時間も短縮できます。

    本記事では、【TypeScale】スクリプトの使い方からソースコードまで詳しく解説。
    フォントサイズの調整を効率化したい方におすすめのツールです。

    それではどうぞ

    Profile
    この記事を書いている私は、DTPデザイナーとしてIllustratorの操作経験が15年以上あり、スクリプトも自ら作成し、デザイン作業の効率化を図っています。
    本ブログでもスクリプトに関する記事を定期的に公開していますので、ぜひご参考にしてください。
    関連記事:「完全無料」で作業の効率化!Illustratorスクリプト特集!

    「クリエイティブ」がわかる転職エージェント

    ●「量より質」を重視した求人のご紹介
    ●「クリエイティブがわかっている」
    ●「求人企業を深く知る・密接な関係」

    【TypeScale】スクリプトの概要

    DESCRIPTION
    まずは、【TypeScale】とはどのようなスクリプトかをご説明します。

    スクリプトのダウンロード

    【TypeScale】は、こちらからサンプルとしてダウンロードできます。
    
使用前に、必ず「注意事項と免責事項」をご確認ください。安全に利用していただくための重要な情報が記載されています。

    ダウンロード:TypeScale.jsx

    スクリプトの機能

    【TypeScale】は、私が自作したオリジナルスクリプトで、一貫した比率でフォントサイズを変更する必要がある場合に便利です。
    以下に主な機能をご紹介します。

    選択可能
デザイン内容に応じて、以下の4種類の比率から最適なものを選べます。これによりデザインの幅が広がります。

    ・乗算比率
    ・加算比率
    ・黄金比率
    ・白銀比率

    任意のフォントサイズから生成開始
基準になるフォントサイズを自由に指定できるため、安心して作業を進められます。
    フォントサイズの個数を指定
必要なフォントサイズの個数を指定できるため、一度の操作で完結させることが可能です。

    スクリプトの使い方

    【TypeScale】は、以下の手順で利用できます。

    STEP1.ファイルメニューからスクリプトを選択
    STEP2.【TypeScale】を選択
    STEP3.基準の【フォントサイズ】を入力
    STEP4.使用したい【比率】を選択
    STEP5.フォントを作成する【個数】を入力
    STEP6.【OK】ボタンをクリック

    操作プレビュー
    なお、次の記事では、Illustratorスクリプトの基本的な使い方や、具体的な活用事例について詳しく解説しています。
    ぜひこちらの記事も参考にしてください。

    動作チェック

    このスクリプトは、以下の環境で動作確認済みです。

    Illustrator CS6【Windows】
    Illustrator 2024【Mac】

    それぞれの環境で問題なく動作することを確認しました。



    【TypeScale】スクリプトのソースコード

    SOURCE CODE
    ここでは、【TypeScale】の動作フローと各処理条件が一目でわかるソースコードを紹介します。
    理解しやすいよう、説明用のコメントアウトも含まれていますので、参考にしながらコードの動きを確認してください。

    
    //ウィンドウ ここから
    var win = new Window ('dialog', 'TYPE SCALE',[100,100,250,410]);
    win.add ("statictext", [15,15,80,35], "フォントサイズ:");
    var te00 = win.add('edittext',[85,15,110,35],"6");
    win.add ("statictext", [115,15,130,35], "pt");
    win.textTitel = win.add('panel',[10,40,130,160],'スケール');//中枠
    var radio01 = win.add("radiobutton",[25,60,100,75]," 乗 算:");//ラジオボタン
    var radio02 = win.add("radiobutton",[25,85,100,100]," 加 算:");//ラジオボタン
    var radio03 = win.add("radiobutton",[25,110,180,125]," 黄金比");//ラジオボタン
    var radio04 = win.add("radiobutton",[25,135,180,150]," 白銀比");//ラジオボタン
    var te01 = win.add('edittext',[90,55,120,80],"1.25", );
    var te02 = win.add('edittext',[90,80,120,105],"2");
    win.add("statictext", [15,170,80,190], "個 数:");
    var te03 = win.add('edittext',[60,170,85,190],"5", );
    var btnOK = win.add("button",[15,205,130,240],"OK",{name:'ok'});//OK枠
    var btnCancel = win.add("button",[15,250,130,285],"cancel",{name:'cancel'});//CANCEL枠
    //ウィンドウ ここまで
    
    //初期設定 ここから
    te00.justify = 'right'; //文字右揃え
    te01.justify = 'right'; //文字右揃え
    te02.justify = 'right'; //文字右揃え
    te03.justify = 'right'; //文字右揃え
    te00.active = true;//アクティブにする
    //te01.enabled = false; //テキストを非表示
    //te02.enabled = false; //テキストを非表示
    //初期設定 ここまで
    
    radio01.onClick = function(){
        te01.active = true;
    }
    
    radio02.onClick = function(){
        te02.active = true;
    }
    
    //キャンセルボタンの処理ここから
    btnCancel.onClick = function(){ win.close(); }  //パネル外枠閉じる
    //キャンセルボタンの処理ここまで
    
    //OKボタンの処理ここから
    btnOK.onClick = function(){
         if(!radio01.value && !radio02.value && !radio03.value && !radio04.value){
            alert("ラジオボタンを選択してください。");
            return; // 何も選択されていない場合は処理を中断
          }
         win.close(); //パネル外枠閉じる 
        main();
    };//btnOK
    //OKボタンの処理ここまで
    
    win.show(); //ウインドウパネルの表示
    
    //メイン処理 ここから
    function main(){
        var doc = app.activeDocument;
        app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM;   //アートボードの座標を基準にするように設定
        var base = change(te00);
        var high = change(te03);
        var top = 0;    //Y軸 原点
        var height = 0; //テキストの縦幅
        var selLay = doc.activeLayer;
        
        if(!selLay.locked){
            for(var i =0 ; i < high; i++){
                var text = doc.textFrames.add();
                text.contents = "TYPOGRAPHY";
                text.paragraphs[0].size = base;
                text.paragraphs[0].fillColor = cmykColor(0,0,0,80);
                text.left = 0;    //右側からの距離
                text.top = top - height;    //上側からの距離
                text.selected = true;   //テキストを選択
                var sel = doc.selection;    //選択中のテキスト
                top = sel[0].top;   //Y軸を取得
                height = sel[0].height;     //高さを取得
                 if(radio01.value === true) {
                    base *= change(te01);
                } else if(radio02.value === true) {
                    base += change(te02);
                } else if(radio03.value === true) {
                    base *= 1.618;
                } else if(radio04.value === true) {
                    base *= 1.414;
                } 
            }
        } else {
            alert ('指定レイヤーのロックを解除してください。');
        }
    }
    //メイン処理 ここまで
    
    //パネルの文字列を変換 ここから
    function change(str){
        var cText = eval (str.text); //eval():文字列をJavaScriptのコードとして解析して実行
        return cText;
     }
    //パネルの文字列を変換 ここまで
    
    //CMYKを設定 ここから
    function cmykColor(c,m,y,k){
        var CMYK = new CMYKColor();
        CMYK.cyan = c;
        CMYK.magenta = m;
        CMYK.yellow = y;
        CMYK.black = k;
        return CMYK
     }
    //CMYKを設定  ここまで
    



    注意事項と免責事項

    ATTENTION
    【TypeScale】は、商用利用可能です。ただし使用につきましては、下記の注意事項と免責事項を必ずお守りください。

    注意事項

    ・予期せぬエラーやデータ損失を防ぐために、スクリプト実行前には必ずデータを保存してください。
    ・事前にスクリプトの動作確認を行い、環境に適しているか確認してください。
    ・Illustratorのアップデートによりスクリプトの動作が変わる可能性があります。アップデート後の不具合についてはサポートできませんので、あらかじめご了承ください。

    免責事項

    ・ご利用はすべて自己責任でお願いいたします。
    ・スクリプトの使用によるトラブルや損失について、当方は一切の責任を負いません。
    ・商用利用における成果物の品質や結果に関しては、一切の責任を負いません。
    ・本スクリプトの著作権は制作者に帰属します。無断で転送・販売・配布することは禁止いたします



    まとめ:フォントサイズの悩みを解決する【TypeScale】スクリプト

    summary
    今回は、見出しや本文の各フォントサイズを比率に基づいて自動生成してくれるIllustratorスクリプト「TypeScale」をご紹介しました。
    「TypeScale」の特徴を振り返ると、以下のポイントが挙げられます。

    ・4つの比率から選択することができる
    ・任意のフォントサイズから生成を開始できる
    ・作成するフォントサイズの個数を指定できる

    今までフォントサイズの決定にかかっていた時間を、このスクリプトで大幅に短縮できます。効率的で論理的なタイプデザインを実現し、作業時間を大きく節約しましょう。ぜひお試しください!

    ダウンロードはこちら:TypeScale.jsx

    というわけで、今回は以上です。
    『フォントサイズの悩みをIllustratorスクリプトで即解決!』を最後までお読みいただきありがとうございました。

    Illustratorスクリプトのおすすめ書籍!

    サンプルプログラム330本掲載

    また、以下の記事で今回紹介した書籍以外にもスクリプトに関する書籍を紹介しているので参考にしてください。

    ガネメ現役サラリーマン

    投稿者の過去記事

    ◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやパソコンのセキュリティ知識・参考になった書籍などを紹介しています。
    たまに、脇道にそれることもあります。

    ◇このブログはアフィリエイト広告を利用しています

    ◇取得資格
    ・情報セキュリティマネジメント
    ・ITパスポート
    ・色彩検定 2級
    ・色彩検定 UC級
    ・屋外広告士
    ・第2種電気工事士
    その他・・・・

    プロフィール

    face

    ガネメ
    鹿児島県在住
    現役サラリーマン

    ◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやセキュリティ知識、参考になった書籍などを紹介しています。
    たまに、脇道にそれることもあります

    ◇取得資格
    ・情報セキュリティマネジメント
    ・ITパスポート
    ・色彩検定 2級
    ・色彩検定 UC級
    ・屋外広告士
    ・第2種電気工事士
    その他・・・・

    詳しいプロフィールはこちら

    アーカイブ

    カテゴリー

    使用中のレンタルサーバー

    ピックアップ記事

    1. Illustratorスクリプトでレイヤーを操作する
      新規レイヤーを作成したい レイヤーをロックしたい レイヤーを削除したい…
    2. 日付を自動取得する
      スクリプトで現在の日付を取得する方法を知りたい 日付の「月と日」を二桁表示したい …
    3. スクリプトの実行を簡略化
      デザイン効率化戦略:スクリプト実行を効率化する スクリプトを実行する手間を減らしたい…




    ブログランキング・にほんブログ村へ   
    PAGE TOP