バグ回避(アウトライン文字の線の太さが変わる)

 Illustrator で作成したアウトライン文字をLiveMotion 2にドラッグドロップすると線の太さが変わってしまう現象の解決方法をメールでいただきましたので掲載します。
 まず、このバグを再現します。Illustrator 10で文字を入力しアウトラインにします。以下の3枚のキャプチャー画像にあるMの文字のX,Y座標に注意してください。











 一番上のMの文字が文字をアウトラインにしたままの状態です。2番目が0.5ポイントずれているものです。最後は座標は整数化されているものです。
 これらをLive Motion 2にドラッグドロップすると以下のようになります。



 2番目だけ文字の右側の縦線の太さが異なっているのがわかります。文字の線幅が変わってしまうのは座標が大きく関係しているとの事で、座標が整数化されていれば、このような現象は発生しないようです。また、LiveMotion 2でアンカーポイントを左上に設定すると、より綺麗に表示されるようです。

 Illustrator 10ではJavaScriptを実行することができるので座標を整数化するスクリプトを以下に示します。2パターンありますが、場合によっては0.5ずれてしまう事があるためです。(速攻で作ったので手抜きですが^^)

●その1
sel = activeDocument.selection;
for (i=0; i<sel.length; i++)
{
x = sel[i].position[0];
y = sel[i].position[1];
sel[i].left = Math.floor(x);
sel[i].top = Math.floor(y);
}

●その2
sel = activeDocument.selection;
for (i=0; i<sel.length; i++)
{
x = sel[i].position[0];
y = sel[i].position[1];
sel[i].left = Math.floor(x) + 0.5;
sel[i].top = Math.floor(y) + 0.5;
}

 これらのスクリプトをmatch.jsのように拡張子を.jsにしてテキストファイルで保存します。入力はエディタ(メモ帳、秀丸エディタ、SimpleText、TextEdit、JEDITなど)を使うと良いでしょう。
 保存したらIllustrator 10で座標値を整数化したいパス(文字はアウトラインにしてください)を選択してから「ファイルメニュー」→「スクリプト」「参照...」で保存したファイルを選択します。選択すると自動的にスクリプトが実行され座標値が整数化されます。頻繁に利用する場合には、Illustratorがあるフォルダ内のプリセットフォルダのスクリプトフォルダに、このテキストファイル(match.js)を入れておくと「ファイルメニュー」→「スクリプト」のメニューにすぐに項目が表示されます。

 サンプルデータは、ここをクリックするとダウンロードできます。ZIP形式です。

作成日時:2003年10月16日(木)午後10時34分