オンリーワンと呼ぶにはあまりにも

今仕事で抱えているアプリは、Adobe Illustrator で作られた図面を読み込んで OpenGL でリアルタイム表示し、図面の道路に沿って曲りくねった棒グラフを描画する、というものです。(OpenGL なのにバリバリの 2DCG です。orz)
その方法は、図面データ内のシェイプをマスクにしながら中心線に沿って太い帯を描画すると、シェイプの内側だけが塗られる…という感じなのですが、図面には道路の中心線なんて存在しないため、それを手作業で設定するプチ CAD みたいな UI も作りました。
もともと昨年、ある地域向けのシステム開発の一部として作ったもので、当時は一枚の図面を読み込めれば良く汎用性はあまり考えずに作っていましたが、今年になってそのシステムを別の地域に導入することになりました。
そこで、これまでハードコーディングされていたレイヤーの数や描画順・描画方法などを外部の設定ファイルに追い出すという汎用化の作業を先日まで慌てて作業していました。プログラムの変更は終わりましたが、昨日届いた新しい図面を見ていると、マスクとして使用するシェイプの分割が不十分な所があったので、今はその修正をしています。
確か、昨年の今頃も同じ作業をしていた*1はずなのですが、Illustrator の使い方をすっかり忘れていてあせりました。
今後のためにここらへんにメモを残しておきましょう。

目的 メニュー ショートカット 備考
シェイプを全く同じ位置にコピペ 編集(E)→コピー、編集(E)→背面へペースト CTRL+C, CTRL+B 前面へペースト(CTRL+F)でもOK。普通のペースト(CTRL+V)は位置がずれるので×
シェイプのレイヤ間移動 オブジェクト(O)→アレンジ→現在のレイヤーへ CTRL+O, A, L 前もって移動したいシェイプと、移動先のレイヤーを選択しておく
シェイプをパスで切断 オブジェクト(O)→パス→背面オブジェクトを分割 CTRL+O, P, D 前もってシェイプの手前にパスが来るようにしておく

最後の切断は無関係なシェイプを切ってしまう危険性があるので、対象となるものだけを作業用レイヤーに移し、他のレイヤーを全てロックしてから作業した方が安心です。

やり方さえわかればあとは単純なので、もの凄いスピードで作業を進めています。ちょっとだけ自分が手練れの Illustrator 使いになった気分?です。

いや確かに、たぶん日本全国どこを探してもいないでしょう。

シェイプの分割「しか」できない Illustrator 使い

というのは…。orz

…まあそういうのを言い出すと、

という称号もあるんですが、どーでもいいというか、全く役に立ちそうにありません…(^^;)。

*1:昨年は描画方法を考えながら作っていたので、マスク作業は全部こっちでやりました。しんどかった… orz