角度を合わせちゃうエクステンションaiRotater
久々に日常使えるパネルを作ってみました。AI CC用ローテーターです。選択オブジェクトを回転します。基本的にどんなオブジェクトでも同時に選択したパスポイントに中心を揃えようとします。その際、そのパスポイントにおける接線と平行になる様に回転します。また、オフセットも設定可能で、接線に対して垂直方向にコントロールする事が出来ます。主に地図等の線と文字の関係を統一したりするのに便利でしょう。
選択したものが縦組の場合はverticalの方をクリックしましょう。通常では90°寝てしまうのを防ぐ事が出来ます。選択したアンカーがコーナー等の場合、アンカーに対して左側もしくは右側のラインの接線を参照するよう指定する事が出来ます。又、選択したオブジェクトがテキストオブジェクトかグループ化したオブジェクトでテキストを含む物であれば、テキストが保持しているマトリクスプロパティを利用し現状の回転角を知る事が出来るのですが、これを利用して実行前に水平に戻せるようにしてあります。また、ローカライズ処理はすっ飛ばしていますが、そのうち処理します。気長にお待ち下さい。
だらだら書いてますが、実際にどうなるか見て行きましょう。
まずパネルの機能から説明しますね。ボタンは2つです。applyは通常の動作をします。verticalは縦組み用です。横組でもパスに沿って90°寝ちゃうのはいやだって言う場合はこちらをクリックしましょう。
その下のテキストボックスはオフセットの数値を入力してください。値のバリデートはやってなかったりするので数値以外入れちゃダメだよ。
チェックボックスは、上がリファレンスするサイドの選択。チェックを入れると選択したアンカーのleftDirectionを基準に回転をかけます。下は選択したオブジェクトがマトリクスを取得可能であれば一旦オブジェクトの回転角度をリセットした後に回転をかけます。
基本です。まず回転対象のオブジェクトを選択します。続いてフィットさせたいアンカーをダイレクト選択ツールで選択します。一度に処理出来るのは1点です。対象アンカー以外が2つ以上選択されていると処理はキャンセルされます。複数のオブジェクトを一度に回転したい場合はグループ化をしておいてください。
こんなかんじですね。四角と白抜き文字はグループ化されています。ターゲットのアンカーポイントと共に選んだ状態が処理対称となります。
この様に選択オブジェクトの中心がターゲットのアンカーに揃えられ接線と平行になる様に回転されました。しかし、次の場合は接線に揃えると嬉しくないですよね?
こんな場合はverticalボタンの方をくりっくします。
こんな感じになるわけです。
次にオフセットですが、単位はポイントです。接線に対して垂直方向にオフセットします。もちろんマイナス方向へも動きます。
ご覧の様にカーブに対して自然な配置となります。
続いてスムースポイントではない場合に対する処理です。
この様にキンクしたアンカーは左右で接線が異なります。こういうケースに対しては揃える接線を選択する事が出来ます。デフォルトではrightDirection側を基準に回転を行う様になっています。
こうですね。チェックボックスにチェックを入れるとleftDirection側を参照する様になります。
既存の物を回転しようと思うと既に回転されていたというケースは少なくありません。AIの性質上テキストを含むグループやテキストそのものではその回転角を知る事が可能です。そこを利用して既に回っちゃってる物でも一旦水平に戻す事が出来ます。デフォルトではこの機能がオンに設定されています。回転をリセットされるのが困る場合は一番下のチェックボックスを外してください。
そして、インストーラーはこちら。CC版です。旧バージョンは近日対応予定です。
追記
早速のバグフィックスです。レビジョンひとつ分のマイナーアップデートです。条件に合致しない場合でもverticalで90°回ってしまう事がありました。
ご利用中に気になる挙動等ご連絡下されば、なるはやで対応致します。ご連絡はinfoアカウントです。@の後はサイトアドレスのchuwa以降です。ついったとかでも結構ですよ。右下の方にリンク設定しているのでそちらからアクセスしてください。
それともうひとつ、CS5〜6に対応するバージョンも用意致しました。ロジックは同一ですので見た目だけ変わっています。また、CS6でもアピアランスには追随しません。これはCS5に対応させる為の処置です。ご了承下さい。
CS5〜6版
airotaterCS-1.0.0.zxp
CC版、ローカライズしました。後日エクステンションのローカライズについて詳細を解説します。あ、出来る方はzxp展開してファイルあさって下さい。そうややこしい事でもありませんので。その際、わたしがまとめたCSInterface4.0.0の解説が役に立つでしょう。
ダウンロードはこちら
旧バージョンですが、ローカライズの予定はありません。あと、もっと古いのに対応するにはExtendscriptでUI組むしか無いのですが、paletteって結構融通効かなくって使えないのです。ので、設定部と実行部を切り分けた物にする事を検討しています。いちいちUI呼び出してクリックしないと揃わないのはあまりに非効率的だ。