なんでやねんDTP・新館

はてなダイアリーから移行しました…

[形状に変換]効果の形状オプション_Illustrator

DTP TransitさんIllustratorアピアランスの[形状に変換]効果で囲み罫を付けるtipsが紹介されている。(コレは自動伸縮枠)
しかし、[形状に変換]効果の形状オプションの元となる数値はどのように決定されているのかは説明されていない。
それが判らない限り数値的に正確なモノは出来ないだろう。


以前の記事に記したようにフォントのバウンディングボックスサイズというのがあり、そのサイズは同じフォントでもバージョンによって差異がある。


以下はモリサワのA-OTF 中ゴシックBBBに[形状に変換]効果の[形状オプション/値を追加]で幅・高さとも「0mm」の設定で自動伸縮枠を生成した例(32Q)。
※作例はCS4*1




画像を見ていただくと、文字列をクリックした際のサイズ(バウンディングボックスサイズ)で枠が生成されているのが判るだろう*2

  • 以下、当初の理解しにくい記述をより理解しやすく改めた…つもり。乞寛恕。(2010.11.21記)


ここで、文字を枠の天地センターに置きたい場合、[形状に変換]した枠を「パスの変形/変形効果」で垂直方向に移動させる必要がある*3
これも画像を見れば明らかなように、例えばPr6の場合はバウンディングボックスサイズ「9.432mm」と文字サイズ「8mm」の差「1.432mm」の1/2にあたる「0.716mm」移動させればよい。



また、この状態で枠との天地アキをホントの「0mm」(枠サイズ8mm)としたければ、[形状オプション/値を追加]で「−0.716mm」と変更すればいい(9.432−0.716*2=8)し、



逆に天地のアキを「1mm」(枠サイズ10mm)に固定したければ「1−0.716mm」の「0.284mm」追加とすればよい(9.432+0.284*2=10)。



このあたりの枠内部のアキからアプローチする考え方は、複数行の文字列からなる枠を自動伸縮させる際に必要となるだろう。


また、形状オプションで枠サイズそのものを数値で指定する場合でも……



画像を見れば明らかなように、天地左右ともバウンディングボックスを基準にセンター配置されるので、正しく天地センターに収めるには



やはり、バウンディングボックスサイズ「9.432mm」と文字サイズ「8mm」との差の1/2である「0.716mm」垂直方向に移動する必要がある。


まとめると、
[形状に変換]効果の形状オプションの基準は文字列のバウンディングボックスサイズとなっており、その天地サイズはフォントに依存する。よって、正確な天地センター配置を求められる場合には、その数値を正確に把握する必要がある*4
[形状に変換]した枠を「パスの変形/変形効果」で垂直方向にバウンディングボックスサイズと文字サイズの差の1/2にあたる数値分移動することでセンターに配置できる。


が、正確さを求められない場合が多いという実態も……その場合はもちろん目分量で充分
但し、バウンディングボックスが基準なので、トラッキングなどにもご注意を……*5


また、このようにして苦労して作成したモノでも(共に枠は0.716mm移動)


アウトライン化すると……

あくまでもバウンディングボックスが基準なので「値を追加」では意味がなくなり、天地センター配置も、すべて裏目となってしまうので、ご注意を……。
この件はあかつき@おばなのDTP稼業録さんにも。


なお、DTP Transitさんの上記 自動伸縮枠のコメント欄に「効果/パス/オブジェクトのアウトライン」で天地のズレが解消すると書かれているが、これはテキストをアウトライン化したものと同サイズとなる*6


つまり下に示す通り、元は同じ文字サイズでも生成される枠はアウトライン化の後のバウンディングボックスを基準とする(個々の文字の実字面サイズに依存する)ため、「形状オプション/値を追加」では枠の天地サイズとしてはバラバラなモノしか作成できない結果となり、自動伸縮枠として使うには難がある。



当ブログ内の関連頁:その1その2

*1:CS5では移動数値はプラスマイナスが逆になるのかも…

*2:バージョンによって収容字種が異なるため、ベースラインより下の部分に増減がある

*3:ベースラインを移動では無理

*4:文字列をクリックすることで情報パネルや変型パネルに表示される

*5:最後の文字のトラッキングを「0」に

*6:試しにアピアランスを分割してみるとアウトライン化された文字列が現れる