なんでやねんDTP このページをアンテナに追加 RSSフィード Twitter

2010-11-20 [形状に変換]効果の形状オプション_Illustrator このエントリーを含むブックマーク このエントリーのブックマークコメント

DTP TransitさんIllustratorアピアランスの[形状に変換]効果で囲み罫を付けるtipsが紹介されている。(コレは自動伸縮枠)

しかし、[形状に変換]効果の形状オプションの元となる数値はどのように決定されているのかは説明されていない。

それが判らない限り数値的に正確なモノは出来ないだろう。


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


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

※作例はCS4*1


f:id:works014:20101120132923j:image


f:id:works014:20101120122427j:image:w530


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

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

ここで、文字を枠の天地センターに置きたい場合、[形状に変換]した枠を「パスの変形/変形効果」で垂直方向に移動させる必要がある*3

これも画像を見れば明らかなように、例えばPr6の場合はバウンディングボックスサイズ「9.432mm」と文字サイズ「8mm」の差「1.432mm」の1/2にあたる「0.716mm」移動させればよい。


f:id:works014:20101120122431j:image:w530


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


f:id:works014:20101121112445j:image:w530


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


f:id:works014:20101121112446j:image:w530


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


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


f:id:works014:20101120145748j:image:w530


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


f:id:works014:20101120145749j:image:w530


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


まとめると、

[形状に変換]効果の形状オプションの基準は文字列バウンディングボックスサイズとなっており、その天地サイズはフォントに依存する。よって、正確な天地センター配置を求められる場合には、その数値を正確に把握する必要がある*4

[形状に変換]した枠を「パスの変形/変形効果」で垂直方向にバウンディングボックスサイズと文字サイズの差の1/2にあたる数値分移動することでセンターに配置できる。


が、正確さを求められない場合が多いという実態も……その場合はもちろん目分量で充分

但し、バウンディングボックスが基準なので、トラッキングなどにもご注意を……*5

f:id:works014:20101120154019j:image:w530


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

f:id:works014:20101121112447j:image:w530


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

f:id:works014:20101121112448j:image:w530

あくまでもバウンディングボックスが基準なので「値を追加」では意味がなくなり、天地センター配置も、すべて裏目となってしまうので、ご注意を……。

この件はあかつき@おばなのDTP稼業録さんにも。


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

f:id:works014:20101121152536j:image:w530


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


f:id:works014:20101121162358j:image:w530


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

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

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

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

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

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

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

詠み人知らず詠み人知らず 2010/11/20 16:02 偶に、フォントのサイズに対してめちゃめちゃでかいバウンディングボックスをもつフォントがあったりするわけですが、そう言うのには使えないテクニックなんですね。

works014works014 2010/11/20 16:15 詠み人知らずさん コメントありがとうございます。
>めちゃめちゃでかいバウンディングボックスをもつフォント
が何かわかりませんが、移動量が大きくなるだけではありませんか?