鈴木メモ

Illustratorの練習メモとか、最近はフォントを作ったり。

*

TTEditとOTEditの繰り返し作業を自動化する(HiMacroEx・Automator)

      2025/09/11 フォント

TTEdit、OTEdit for Windows、OTEdit for Macのフォント制作で、繰り返し作業を自動化する方法についてまとめてみます。この記事では無料の自動化ソフトであるHiMacroExとAutomatorの操作を説明します。

自動処理はフリーズ・強制終了がつきものなので、必ずテスト用ファイルで練習し、利用は自己責任でお願いします。

自作フォントの仕上げ作業

フォント制作では、最後の仕上げで巻き方向を修正(矢印方向を揃える)、オーバーラップ輪郭を削除(重なりを一体化)、Y極大点を追加(頂点にポイントを置いて縦書きの位置ズレを防ぐ)の繰り返し作業をします。

7,000字くらいあるのに手作業でこれはつらい、というわけで自動化(連続処理)します。『マクロ』か、『自動化ソフト(マウスとキーボードの記録ツール)』を使用できます。

自動化といえば

マクロを利用する

・TTEditとOTEdit for Windowsにある機能で、[ツール]-[マクロ]から使える。
・OTEdit for Macではマクロが非対応なので使えない。(※AutomatorにAppleScriptのコードを入れて、マクロっぽく動かすことはできる。)
・公式のサンプルマクロがあり、巻き方向を修正はあるが、オーバーラップ輪郭を削除、Y極大点を追加のマクロは入って無い。 (VBScript).vbsまたは(JavaScrip).jsファイル。目的ごとにそれぞれ違うマクロが必要で、内容を自分で書き換える必要がある。TTEdit用とOTEdit for Windows用のマクロは文字コードが違うため使い回せない。
・すでにあるマクロを使うだけなら一番簡単。書き換えや自作はプログラムが苦手な人には向かない。(ChatGPTがあれば自作出来るが、私は一ヶ月かかった。)
・(この後の記事で私が作ったマクロを配布予定。9月か10月位に出せるかな?)
・一回で7,000字処理も可能。10分~15分位かかる。

自動化ソフトを利用する

・今までの私のフォント制作では、仕上げ作業は自動化ソフトを使って完成させています。
・マウスのクリックやキーボードの打鍵を記録し、任意の回数それを繰り返すことができます。基本的に手で自分がやる動きをそのまま記憶させるだけなので、色んな用途に使えます。
・Windows(TTEdit/OTEdit for Windows)の人は、無料ソフトのHiMacroExをダウンロードして使う。
・Mac(OTEdit for Mac)の人は、Macに標準で入っているAutomatorがある。
・セッティングと操作のコツを掴む練習に30分位必要だが、多分大体の人は使える。
・一回で7,000字処理はできないこともある。繰り返しのスピード設定にもよりますが、分割してかけるので作業時間はマクロよりもかかる。
・マウスの座標位置を記録させるものは、TTEdit/OTEditの編集画面の位置をずらしたり、インターネットブラウザなどが前面に出てたりすると次回は正しく使えない。動作はするけど、内容に構わずに動き続けます。基本的に毎回使う時に新規に登録するのが確実です。
・クリックする場所の周囲や前後に関係ないフォルダやウインドウを置かないよう画面を整頓して動かす。大量の繰り返し途中でバグってカーソルがズレていって近くにあったフォルダを100回くらいクリックして大量にフォルダが開いてたことがあります。

使い方を練習するのに簡単な手順を書いておきます。

Windowsユーザー向け HiMacroExの使い方


TTEditまたはOTEdit for Windows使用の方向け。
HiMacroExをダウンロードし、Zipファイルを右クリックで「すべて展開」します。これ単体だとHiMacroEx.exeを起動させても動かないと思うのでXTRM Runtimeもダウンロードして入れます。これでHiMacroExが動くようになります。Yahoo!ツールバーをインストールしますか?と聞かれますが不要ならチェックを外してOK。

~~まずは「移動とクリック」だけで練習しよう~~


起動させるとこの画面が出てくるので、とりあえず「記録」を押して、マウスを移動させてHiMacroExの画面外をクリックしてから、「終了(さっきの「記録)ボタン)」を押して見て下さい。ざーっと座標位置の移動履歴と、途中にクリックの動作が記録されてると思います。今度は左下ループを2にして「再生」。マウスポインターが同じ移動とクリックを2回分くり返します。再生中は他のパソコン作業が一切出来ませんので注意。無理にマウスを動かそうとするとバグります。基本的な使い方はこれでOK!

●履歴(とくに移動座標)について
・「クリア」で履歴は消せます。
・画面の長い座標記録は、後からマウスで複数選択して不要な部分を削除してしまってもOKです。
・[設定]で[マウス移動記録]をオフにすると、次回からはクリック動作(座標位置付き)のみのシンプルな履歴になります。ドラッグ操作がなければこれでもOK。

●再生や中断について

再生中断はPauseキーです。1,000ループ再生中に止めたいと思っても、マウスを動かして操作ができません。(Pauseキーはキーボード右上にあるか、キーボードによっては無いので[設定]-[オプション画面表示]で他のキーに変える)
・[設定]-[オプション画面表示]で、「再生終了時の通知」をつけておくと、大量ループの終了が分かりやすくて便利です。再生中は上のバー部分に残数がリアルタイム表示されています。
・[設定]で[時間記録]をオンにすると、自分の動作のタイミングも記録出来ます。記録の動作が速すぎると、ファイルを開いたり、ダイアログをOKで閉じるなど、PC側の動作を待つことなく次のクリックをしてしまって空振りになることがあるので、操作によっては時間記録も入れましょう。
・[再生]で再生速度を遅く・早くができます。速すぎると前述のようになるのでほどほどに。

●強制終了について(紙にメモしておいて下さい)
Ctrl + Alt + Deleteでシャットダウン。黒画面になり、サインアウト、タスクマネージャーなどの選択肢と、右下に電源アイコン(再起動など)が出ます。選択項目をTabか矢印キーで移動してEnterキーでサインアウトできました。

●できればショートカットキーで記録がおすすめ
キーボードにPagedownキーが無い場合は普通にメニューから「次の文字」をクリックで記録できますが、マウスで移動やクリックした記録はループ数が多いとバグってズレて行きやすかったように思うので、できればショートカットキーで記録させるのがおすすめです。

~~仕上げ作業を練習しよう~~

ここからはHiMacroExと、TTEdit/OTEditを組み合わせて使用します。

・HiMacroExの[設定]で[マウス移動記録]と[時間記録]をオフにしておく。
・TTEdit/OTEditでフォントファイルを開く。別名保存した自作フォントファイルでもいいし、新規ファイルにテスト用に10文字分くらいオブジェクトを置いたものでもOK(オブジェクト無しだとテストできません)。

●Y極大点を追加しよう

HiMacroExで「記録」ボタンを押して、TTEditのグリフ枠外の余白をクリックしてアクティブ状態に、キーボードで「Alt+Ctrl+Y(Y極大点を追加のショートカット)」、「Ctrl+Pagedown(次の文字のショートカット)」、「終了(さっきの「記録)ボタン)」を押します。Y極大点を追加のショートカットは本来Ctrl+Alt+Yですが、なぜか今やったら記録されなかったので、順番をAltキーを先に変えてみたら出来ました。ループ数入れて再生、Y極大点もちゃんと連続して打ててます。

●巻き方向を修正しよう
準備)TTEdit/OTEditでテスト用オブジェクトに「巻き方向を表示」の赤い矢印が画面に出てない場合は[表示]-[巻き方向矢印を表示]をオンにして作業して下さい。TTEditでは時計回り。OTEditでは反時計回り。向きが逆で覚えにくいので、常に「巻き方向を修正」をかければ正しくなっているとだけ覚えます。「巻き方向を修正」は同じオブジェクトに複数回かけても逆転したりしないので安心です。

HiMacroExで「記録」ボタンを押して、TTEditのグリフ枠外の余白をクリックしてアクティブ状態に、キーボードで「Alt+E(編集メニュー)」、「W(巻き方向を修正)」、「Ctrl+Pagedown(次の文字のショートカット)」、「終了(さっきの「記録)ボタン)」を押します。ループ数入れて再生すると文字に処理がかかってなかったり、ループ数分の文字数が進んでなかったりしたので、処理の待ち時間不足と予測。履歴に直接キーボードで改行して500の待ち時間を追加。上手く動作するようになりました。(ミリ秒なので1000で1秒です。)待ち時間を追加せずに[再生]で再生速度を遅くしてもある程度効きます。

●オーバーラップ輪郭を削除しよう

巻き方向を修正の履歴のVをWにキーボードで書き換えればオーバーラップ輪郭を削除になります。
こちらも処理に待ち時間がかかるものです。シンプルな文字なら待ち時間は300位でも大丈夫でしたが、複雑なパスを3層に重ねて実験したところ2000位まで時間を伸ばさないと途中の空振りがあったので、筆文字やチョーク系のフォントの人は様子見て加減して下さい。

●応用)他の用途に使うには

・余白をクリック、Ctrl+A、Delete、Ctrl+Pagedown(次の文字)を記録させると連続削除ができます。

●縦書きと最終チェックについてはブログの下の方に続きがあります。

Macユーザー向けAutomatorの使い方


OTEdit for Mac使用の方向け。マクロもHiMacroExも非対応なので、Automatorを使います。
①マウスを実際に動かして記録ボタンで記録する
②AppleScriptをコピペする
の順番で説明します。

—–①マウスを実際に動かして記録ボタンで記録する方法

実際に私のフォント制作で使ってた方法で、初めての人の練習になるように手順を書いています。でも再生が遅くてバグが起きやすい弱点があります。②のコピペの方法まで続けて読んで下さい。

~~事前準備をしよう~~

・事前準備)まずMacの「システム設定」 → 「プライバシーとセキュリティ」 → 「アクセシビリティ」で白いロボットアイコンのAutomatorを選択して登録します。同じ手順でOTEditも登録。Macを再起動。AutomatorからOTEditを操作出来るようになりました。

~~まずは「次の文字」だけで練習しよう~~


・Automatorを起動します。AutomatorはMacのDockのLaunchpadアイコンの中に元から入っています。[アプリケーション]フォルダでも中に入ってます。


・「新規書類」をクリック。→「ワークフロー」を選択し、「選択」をクリック。→新規のワークフローが開きます。


・イメージ的なもの)新規のワークフローの左側は項目が山盛りになっていますが、Automatorは「バイキング方式」なので、実際はほとんど使用しません。多機能ゆえの選択肢の多さなんですが無視して大丈夫です。


・Automatorの新規ワークフローと、OTEditの新規フォントファイルを並べて配置しておきます(オブジェクト無しのままでOK)。



・OTEditのツールバーに「次の文字」アイコンを表示させて下さい。[ツール]-[ツールバーをカスタマイズ]で設定できます。左下の表示を「アイコンとテキスト」にして下さい。多分これにしないと後でクリック履歴にアイコン名が出ないと思います。


・Automator右上の赤い「記録」をクリックしてマウスの記録を開始します。


・OTEditの枠をクリック(タイトル文字部分をクリックしないように)してアクティブ状態に、「次の文字」アイコンをクリック。左上にある付箋みたいな表示の、右の四角マークをクリックで記録を終了。

・Automatorはおそらくクリック座標とクリックとクリックの間の時間を記録しているようです。マウスの移動の軌跡は記録していません。そのため、記録中はてきぱき動かすと再生実行も早くなります。

・マウスのクリック履歴が2行増えています。もし不要な履歴があればキーボードのDeleteキー(キーボードによってはbackキー)で削除できます。


・左側[ユーティリティ]をクリック、[ループ]をドラッグしてマウスの履歴の下に配置する。
・ループの内容を設定します。「ループして自動的に停止」、「10」、「回」。


・後でループ数が増えてくると再生の終了が分かりにくいので、「ユーティリティ」-「通知を表示」をドラッグして追加します。タイトルに「完了しました」と入力。画面右上通知欄にタイトル内容が出るので便利です。設定しなくても良いです。


・マウス履歴の右下「再生速度」を「5x」か「10x」に早く変更。(「タイムアウト」は効かないみたいなのでそのまま。)右上「▶実行」で再生されます。再生中は他のパソコン作業が一切出来ませんので注意。無理にマウスを動かそうとするとバグります。

●途中停止はできないみたい

・再生実行の停止はショートカットが「Command」キー+「.(ピリオド)」キーらしいのですが、マウスを高速で擬似操作中なためか、私の環境では停止できなかったです。中止ボタンも触れないです。ループ数は少なめにして、終わるまでそのまま待ってて下さい。

●強制終了について(紙にメモしておいて下さい)


・強制終了はCommand+Option+Escキーです。再生中はパソコンで調べられませんので、紙にメモしておいて下さい。矢印キーで上下して、Enterキーで終了まで全部キーボードで操作します。
・Automatorはバグると、カーソルが震えるような謎の動きをしてループが終わらないことがあります。マウス録画の再生ではわりとしょっちゅうです。遅いかな、カーソルが変かな、と思ったらAutomatorを閉じて起動し直して下さい。

●保存などのコツ


・左上ファイル名クリックでワークフロー(アクションと順番まるごと)を保存できます。


・アクション項目を左側にドラッグしてグループとして保存できます。が、後で右側へ追加する時は中央の枠から1つずつ入れる形になります。マウス動作の記録部分は全部「操作を記憶」になってしまって中身が分かりにくいのであまり使い勝手は良くないです。

~~仕上げ作業を練習しよう~~


・Automatorの新規ワークフローと、OTEditでフォントファイルを開く。別名保存した自作フォントファイルでもいいし、新規ファイルにテスト用に10文字分くらいオブジェクトを置いたものでもOK(オブジェクト無しだとテストできません)。


・OTEditのツールバーに「次の文字」「巻き方向を修正」「オーバーラップ輪郭を削除」アイコンを表示させて下さい。[ツール]-[ツールバーをカスタマイズ]で設定できます。左下の表示を「アイコンとテキスト」にして下さい。

●Y極大点を追加してみよう

・記録の前に)OTEditのショートカットキーを確認し、まずは手元でテスト用オブジェクトにかけてショートカットキーが動作するか確認して下さい。「shift ⇧」+「command(またはcmd)⌘」+「Y」です。

●巻き方向を修正しよう

・記録の前に)OTEditでテスト用オブジェクトに「巻き方向を表示」の赤い矢印が画面に出てない場合は[表示]-[巻き方向矢印を表示]をオンにして作業して下さい。TTEditでは時計回り。OTEditでは反時計回り。向きが逆で覚えにくいので、常に「巻き方向を修正」をかければ正しくなっているとだけ覚えます。「巻き方向を修正」は同じオブジェクトに複数回かけても逆転したりしないので安心です。

●オーバーラップ輪郭を削除しよう

・複雑なオブジェクトで結合処理に時間がかかって空振りがあるようなら再生速度を遅めに加減してください。

—–②AppleScriptをコピペする方法

基本操作は①マウスを実際に動かして記録ボタンで記録する、で説明しているので、①を練習してからこの②の方法を試して下さい。

今まで使ったことなかったんですが、AutomatorではAppleScriptに直接コードを書き込んでマクロのように使う事もできます。ChatGPTにコードを書いてもらって実行。座標に依存しないのでバグが出づらく、早いです。もっと早く気がつけばよかった。Macで次があればこれを使います。コードが書けない人でもコピペするだけなので大丈夫です。

~~仕上げ作業を練習しよう~~


・Automatorの新規ワークフローと、OTEditでフォントファイルを開く。別名保存した自作フォントファイルでもいいし、新規ファイルにテスト用に10文字分くらいオブジェクトを置いたものでもOK(オブジェクト無しだとテストできません)。

・Automatorで左側[ユーティリティ]をクリック、アクションの一番上[AppleScriptを実行]をドラッグしてワークフローに入れる。

・すでに入ってるコードは今回は不要なので、削除。以下のコードをコピペして入れる。ハンマーアイコンをクリックで数秒待つと、文法チェックされてカラフルな色付きに整形されます。

《初期設定はループ100回、通知頻度10、巻き方向を修正、待機時間0.3秒です。》


set total to 100 -- (ここに繰り返し回数を入力して下さい)
set notifyEvery to 10 -- (ここに通知頻度を入力して下さい)
set menuName to "巻き方向を修正" -- (ここに「編集」にあるメニュー項目を入力して下さい)
set waitSec to 0.3 -- (ここに待機時間を入力して下さい:単位は秒)

tell application "OTEdit" to activate
tell application "System Events"
	tell process "OTEdit"
		repeat with i from 1 to total
			-- 編集メニューからメニュー項目をクリック
			click menu item menuName of menu 1 of menu bar item "編集" of menu bar 1
			delay waitSec
			-- 次の文字へ
			click menu item "次の文字" of menu 1 of menu bar item "表示" of menu bar 1
			
			-- 通知(任意の頻度で)
			if i mod notifyEvery = 0 then
				display notification ("残り回数:" & (total - i)) with title "ループ進行状況"
			end if
		end repeat
	end tell
end tell

 

・右上の「▶実行」ボタンを押すとOTEditが動きます。マウスの疑似操作ではないので、途中でやめたくなったら「■中止」ボタンが使えます。
注意!)「一時停止」ボタンは使わないで下さい。(AppleScriptのループでは「中止」扱いで、再開はできません。残数通知のみ再開され、数が合わなくなります。)
注意!)コード左上の実行/停止ボタンは使わないで下さい。(中止が正しく効かず、グリフクリックで意図しないループ再開動作が起こることがあります。)

・OTEditが最前面でないとループが止まります。(Automatorをクリックした、イラレを起動した、デスクトップ表示にした等)

・再生実行中にマウスで文字一覧パネルの他のグリフをクリックすると、そこから「次の文字」が継続してしまいます。他のグリフを触らないで下さい。

・残り回数の通知が画面右上の通知センターに出るようになっています(通知に音は出ません)。通知が出てない場合はMacの「システム設定」-サイドバーにある赤いベルアイコンの「通知」-「Automator」を選択-「通知を許可」をオン。

●Y極大点を追加してみよう
●巻き方向を修正しよう
●オーバーラップ輪郭を削除しよう
すべて1つのコードで書込みを変えるだけで実行できます。

・コードの冒頭、「繰り返し回数」「通知頻度」「編集メニュー項目」「待機時間」を好みで書き換えできます。
「繰り返し回数」:上限はなく、7,000ループも実験して可能でしたが、心配なら1,000位ずつに分割して下さい。
「通知頻度」:初期値は10ごとですが、1,000ループなどでは大量の通知は煩わしくなると思うので通知頻度を100刻みや500刻みなどに粗くして使って下さい。(1文字刻み7000通知とかはMacに負担になりそうなので推奨しません。)
「編集メニュー項目」:「Y極大点を追加」、「オーバーラップ輪郭を削除」に書き換えて使えます。入力したメニュー名は公式の表示と1文字でも違っていると実行できません(半角Yが全角Yだとエラーになります)。
「待機時間」:短くしたい時は0ではなく0.1を推奨します(動作の安定)。複雑なパスのオーバーラップ輪郭を削除など時間のかかる処理は2秒位まで伸ばして様子を見て下さい。

●応用)他の用途に使うには

・コードを部分的に削除して、待機時間を1~2秒位にゆっくりにすればスライドショーとして再生できます。
・連続削除は、編集メニュー項目を「すべてを選択」にして一度実行し、編集メニュー項目「削除」にして2回目の実行をかければコードはそのままで使えます。
・このコードで出来ないことはChatGPTにこのコードをコピペして改造してもらうか、①のマウスで録画方式を使って下さい。

実験記録)繰り返し上限とスピード(ストップウォッチで実測してみた)

TTEdit/OTEditをクリックしてアクティブ状態にして、次の文字へ。という動きで比較。

●HiMacroExのくり返し(マウス操作を記録)
ループ上限:9999回。1,000回、2,000回でも動きます。1,000超えたあたりからやや心配。
ループ100回=13秒。ループ1,000回=1分45秒。ループ7,000回=12分15秒。

●Automatorのくり返し(マウス操作を記録)([ユーティリティ]-[ループ])
ループ上限:1000回。500位からはバグって動きません、不安定。停止ボタンNG。
ループ100回=50秒。ループ1,000回=計測NG。5分経過多分500字辺りでカーソルが小刻みになってクリックできなくなっており、強制終了をかけました。

●Automatorのくり返し([ユーティリティ]-[AppleScriptを実行]、待機時間0。コード内ループ)
ループ上限:上限なし。動作安定。停止ボタンOK。
ループ100回=5秒。ループ1,000回=45秒。ループ7,000回=4分35秒。

縦書きも忘れずに!

横書き文字の大量のループが終わると安心してしまいますが、縦書きの仕上げ作業も忘れずに!
横書き用と縦書き専用文字がはっきり分けられているグリフは、まるごと作り忘れの可能性もあるので気を付けて。

縦書きがなんだか変な時は

Y極大点を追加したのに縦書きがなんか変だ・・と思ったら多分スライダーの設定がまだなんだと思います。
TTEditもOTEditもメニューの「ヘルプ」か、「?」マークから詳しい解説に飛べるので公式ヘルプを参考にして下さい。

かならず目視で最終チェックを

自動化で処理した後はかならず目視で全文字チェックして下さい。巻き方向を修正・オーバーラップ輪郭を削除が上手くいってない場合があります。重なり部分が白く抜けてたり、一体化されてなかったりします。
1文字ずつ見るには毎回マウスクリックは大変なので、[ツール]-[マクロ]で公式の「スライド表示」マクロを使うか(Windows)、「Ctrl+Pagedown(次の文字のショートカット)」でキーボード操作にするか(Windows)、マウスとキーボードの記録ツールを覚えたついでに、「次の文字」アイコンをマウスクリック・繰り返し数100回、スピードを遅めに設定でスライドショーのようにして使うこともできると思います。

ごく稀ですが巻き方向を修正が効いてない場合、太字・細字のフィルタ処理の後や複雑なパスのものに出やすいので、混み合ったポイントを削除すると直ることが多いです。
また、オーバーラップ輪郭を削除が完全同座標の同一オブジェクトの重なりがある場合効かないことがあります。この場合は見て分からないので検証用に別名保存したフォントファイルにマウスとキーボードの記録ツールを使って全文字に白抜きフィルタを適用すると洗い出すことができます。(中身が白抜きにならないのを目視で発見できる。)

上記の2つの問題は印刷物ではおそらく問題にならないですが(トラブル事例が見られないので、多分ですが)、WEBフォントとして表示すると該当のグリフだけCSSのBoldが効かない、Boldにするとうっすら縁だけ残して文字全体が白く抜ける、などの表示の不具合につながります。

コピーやフィルタを『TTEditでシフトJISの連続処理』に使う時は注意して

巻き方向を修正、オーバーラップ輪郭を削除、Y極大点を追加では問題になりませんが、他の作業にHiMacroExやマクロを使う時の注意点です。

フォント制作では文字一覧をシフトJISにして制作することが多いですが、繰り返しの内容によってはシフトJISの連動文字部分が多重がけになります。コピーやフィルタ適用では注意が必要です。ユニコードやCIDでは心配いりません。後で別で記事にまとめるかもしれない。

というわけで

自作のWindows用マクロを制作してみたので、いくつか公開する予定ですが
その前に自動化ソフトの紹介(この記事)と、公式フィルタとマクロの紹介と、シフトJISの連動文字についてと、マクロの個別の説明文、と色々書かなくてはたどり着けないので配布はしばらく先になりそうです。

この記事を書いてる途中でAutomatorのAppleScript実行に気がつけたので、まとめてみたかいがあった。

 

※※※書き忘れがあった!あとで追記します。TTEdit/OTEditの「次の文字」の動きの違い(9/5 19:30)

TTEdit/OTEditの「次の文字」の動きの違いについてを忘れてました。TTEditはシフトJISでもユニコードでも「次の文字」で文字一覧通りに動きます。OTEditはCIDベースなのでシフトJISやユニコードの文字一覧の状態で「次の文字」で動かしても文字一覧の通りには動きません。常にCID順で動きます。※※あとで手順の方にOTEditの人はパネルをCIDに切り替えるを追記します。