■ スナッピング設定詳細 〜 Object Snapping
□ Snap bounding boxes to object @
これは「整列/配置」を使えば済む事がほとんどなので個人的にはあまり使いません。
@+(BorC)にすると、選択ツールを使用して、ノードの位置に関係なくバウンディングボックスの「角」がスナップします。
バウンディングボックスの「辺」も結果的にはスナップしますが、たとえば矩形のバウンディングボックスをドラッグして拡大し、角を相手のどこかにスナップしたいとき、@+Cの設定では「角と相手のノード」がスナップ有効範囲内になければスナップできません。
また@+Bの設定では、「角をセグメントに」スナップできますが、バウンディングボックスの中心の矢印をドラッグしても角が相手に着いていない場合スナップできません。
選択ツールでの変形時にスナップできるのは拡大/縮小のときだけです。
歪み/回転モードではどこにもスナップしません。
「テキストをパス上に」をオブジェクトで行う時には@+Bをonにすれば可能になります(ただし1個ずつ、手動で)。
また選択範囲の1辺にノードが1つも接していないオブジェクト(例:斜めに歪めた楕円)の選択範囲の角をノードにスナップする場合@+C、セグメント上にスナップする場合@+Bで選択ツールを使用してスナップできます。
なお@を有効にしてもノードツール使用時は無意味です。
□ Snap node to objects A
これとCをセットで使うことで Node to Node が可能になります。
ハンドル操作を行う時や、既にノード同士がスナップしているオブジェクトを選択ツールで変形・編集する場合などには、BやCが有効のままでもAをoffにすれば無効になります。
Node to Node は1つのノードを相手のノードにスナップできるほか、オブジェクトのノードを全て選択してドラッグすることで、選択ツールでドラッグしたときと同じように形状を保持したままスナッピングすることも可能です。
Aの設定はノードツールでも選択ツールでも有効ですが、選択ツールでスナップできるのはスナップポイントだけです。
□ Snap to object paths B
A+Bをonにすると、ノードツール使用時は"1つのノード"またはハンドル(の方向点)が、選択ツール使用時にはスナップポイントまたは変形時の回転軸が、セグメントをレールにしてその上を走るようにスナップします。
※このとき方向点は自分自身が方向を決めているセグメントにもスナップするため、閾値が大きいとマウスでは操作が困難になります。
またマウスでハンドルを操作する時、スナッピングを一時的に無効にするショートカットはありません。
ただし、ノードツールで2つ以上のノードを選択しているときは基本的には Node to Segment はできません。選択中のノードのうち、1つのノードのハンドルが、左右いずれかまたは両方ともハンドル長=0(方向点が自身のノードにスナップしている状態)ならば、ハンドル長0のノードを掴んでいる時に限り、そのノードだけはセグメントにスナップします(不安定)。
2つ以上のノードが選択状態(青色)でも、マウスで掴んでいる(赤色の)方向点はセグメントにスナップしますが、ノードを掴んでいる時はスナップしません。つまり方向点がスナップするのはその方向点がアクティブな時(またはノードと一致する時)だけです。
ノードを鈍角の頂点に合わせるとき・ノードを通るストロークを新たに引く時は必ずoffにしないとズレたりします。
選択ツールを使用して拡大/縮小する時は、スナップポイントがセグメント上にスナップ(斜めに歪めた矩形などは必ずしも角がスナップするとは限りません)、ゆがみ/回転時には回転軸が自分を含めたオブジェクトのセグメント上にスナップします(ゆがみ/回転時、スナップポイントはどこにもスナップしません)。
オブジェクトを2つ以上選択しているとき、回転軸は全体を1つと見た時の選択範囲で重心・辺の中心などを求めますが、セグメントに対してはあらゆる場所にスナップします。グループ化でまとめられたオブジェクトでも同じです。
□ Snap to object nodes C
A+Cをonにすると、通常は
ノードツール使用時のみ Node to Node のスナップが有効になります。
複数または全てのノードが選択状態の時は、選択状態のノードの内どれか1つが相手のノードにスナップします。
ノードツールで選択できるのは1つのオブジェクトだけで、パス連結してあればその全てが、グループ化では1オブジェクト単位での選択になります。スナップ先のノードに対しては、そこにノードが有れば何処にでもスナップできます。これは選択ツールでも同じです。
選択ツール使用時は、選択範囲の角とノードが一致する場合そのノードがスナップ(ストローク幅 > 0のとき、これは有り得ません)、選択範囲の角を挟む2辺にそれぞれノードが1つ以上接している場合はその選択範囲の角が相手のノードにスナップします。
選択範囲の角のすぐ近くにスナップポイントが有る場合もあるため、@+A+Cをonにするとズレたりします。
選択ツールを使用して拡大/縮小する時は、スナップポイントがノードにスナップ、ゆがみ/回転モードでは回転軸が自分を含めたオブジェクトのノードにスナップします。上に同じく、ゆがみ/回転モードではスナップポイントが全て無効になります。
なお、パス化する前の円または楕円に限り、弧の有無に関わらず中心のみスナップポイントになります。
スナップ先がパス化前の円や矩形の場合は、中心(円/楕円のみ)・弧の開放点・制御点(=パス化したときノードとなるポイント)に対してスナップできます。例えば角を丸めた矩形はスナップされる側の時に限り8ヵ所にスナップできますが、角を完全に丸めて楕円にすると4ヵ所になります。
パス化前の星やポリゴンはスナップポイントが選択範囲の4つ角のみですが、スナップ先の場合はその図形の全ての角にスナップできます。
その他は
選択ツール使用時のスナップポイントについて
□ Snap sensitivity D
デフォルトの新規作成ドキュメントにセットされている値(=10)はかなり強力です。スクリーンピクセル数でなく、100%表示の時にスナップが効き始めるピクセル数と思われますが、1000%以上Zoomしてスナップさせるようなときは1以下でも良いかもしれません。選択したノードやオブジェクトがドラッグしても動かない時はスナップが効き過ぎています。
微妙な操作をするときは[Alt]+ドラッグすると一時的にスナップが無効になります(ハンドル操作を除く)。
この数値でObject Snappingの全ての項目の閾値が変わります。
□ Alway snap E
常に有効にすると、ダイアログ上は閾値が50ですが、実際には最大の10000になるため、パスのハンドル操作などはキーボードでしか行えなくなります。一旦onにしてoffにすると閾値が50になってしまいます。
■ スナッピング設定詳細 〜 Grid Snapping
□ Snap bounding boxes to grid F
これは普通にonで。ただし選択オブジェクトのWxHがグリッドの間隔x整数倍と一致しなければ非常に合わせ辛くなります。逆に、拡大/縮小時にWやHをグリッドに合わせると便利です。
選択ツールでグリッドにスナップさせる時は、FとGどちらか1つを有効にした方が良いです。
特にストローク有りのオブジェクトでは、拡大/縮小・変形するときデフォルトではストローク幅も同時に変化するため、バウンディングボックスとスナップポイント(またはノード)が引っ張り合いになりスナップし辛くなります。
これも@と同じく有効にしても
ノードツール使用時は無効です。
なおグリッド設定の[Major grid line every]は、グリッドの分割線ではなく「何本おきにハイライト線を入れるか」なので、大きめの数字にしても全てのマス目にスナップします。
Major grid lineはZoom downしたとき通常のグリッド線色で表示され、Zoom upしてスクリーンピクセルでのグリッド間隔が8ピクセル以上になったときハイライト色で表示されます。
つまりデフォルトのグリッド間隔=1pxでは、Zoom率を801%以上にしたとき初めてMajor grid lineが設定した線色で見えてきます。
スナッピングとはちょっと話がズレますが、モニタ表示を前提とした網点(トーン)を、グリッドやパターンを駆使して市販の網点の線数・番数と同じになるように作っても、svgをブラウザで表示したときにモアレが出ないようにする事は非常に困難(というか現時点では無理)です。
これはInkscapeの性能云々ではなく、網点のピッチとモニタのドットピッチが整数:整数の関係にならなければ必ず光の干渉が発生するためです。
またモニタのドットピッチはモニタの機種によって異なります。
□ Snap node to grid G
ノードとグリッドが一致する事は図形以外では殆どないのですが、正n角形や円を描くときはonにしておくと何かと便利です。
またノードツールを使って、1つのノードをグリッドにスナップさせたいときもonにします。
これも複数のノードが選択されている状態や選択ツール使用時にonになっていると、色んな場所のノードまたはスナップポイントが引っ張り合いになるので目的の場所に合わせ辛くなります。
デフォルトのグリッド間隔は1ピクセルになっていますが、例えばWeb素材などの用途でストローク幅1pxの水平線・垂直線をグリッドに合わせて引くときに、グリッド間隔を0.5pxにしてハイライト線を2に設定、ハイライト線以外のグリッドにベジェ線の始点終点をスナップさせる形でベジェ線を引かないと1pxの線としてラスタライズされません(さらにストロークの端部形状を「四角」に、エクスポートの開始位置・終端位置を「整数px」にする必要がある)。詳しくは
解像度のお話参照
|
例えば、左図は上下共にストローク幅1pxの線を引いてあります。 上はストロークの選択範囲が間隔1ピクセルのグリッドのマス目に一致、下はストロークのノードを同じグリッドにスナップした結果です。 |
下はラスタデータの最小単位(ピクセル)の境界を跨いで0.5pxずつはみ出ている事になるので、結果、幅2pxのグレーの線としてラスタライズされているのが分かります(上の場合でも端部がデフォルトの「角」になっていると始点終点がぼやけます)。同じように3pxの線ならエッジが0.5ずつはみ出て4pxになります(印刷用途のベクタデータなら気にする必要はありません)。
実際には0.5px刻みのグリッドなんて1600%までズームしなければ見えてこないので、線を引いた後でFの設定で1pxのグリッドにスナップ(または座標を直接指定)させた方が作業性は良いです。
また+の字を引く場合にも、水平線と垂直線の幅が違ってしまう事が有るので、矢印キーでの移動量を0.5pxにしておくと修正が楽になります。
Inkscapeに限らずCGを描く上での基本中の基本的なことですが、ベクターツールではつい忘れてしまう(←オレ)のでここに書いておきます。
またsvgをブラウザで表示する場合、ブラウザの種類によってその見え方が違ってくるので注意しなければなりません
(IEとFirefoxでは同じデータを表示しても同じ絵にならない)。
□ Snap sensitivity H
常に有効がデフォなので略
□ Alway snap I
グリッドを表示させてるのにスナップしなかったら意味が無いのでonに。
ただし既にグリッドと一致しているオブジェクトをグリッド表示状態で動かそうとした時、Dと同様に常に有効がonではマウスでは動かなくなります(ズームアップ作業時)。
合ってないのに動かない・合わない時は、その反対側がスナップしている事が多いです。
グリッドスナッピングも[Alt]+ドラッグで一時的に無効にできます。
■ スナッピング設定詳細 〜 Guide Snapping
□ Snap bounding boxes to guides J
A+Bの時のように、ガイドをレールにして選択範囲(の角)がスナップします。
ガイドがグリッドと正確に一致しない限り、グリッドを表示したまま(Grid Snappingが有効のまま)使うのは避けるべきです。
これも@やFと同じく有効にしてもノードツール使用時は無効です。
なおガイドの位置やグリッド間隔はダイアログでは1/100刻みの調整になりますが、XMLエディタではいくらでも小数点の桁数を増やせます。適当にドラッグしたガイドの位置は通常1/10万pxまで記録されているため、正確な位置にガイドを挿入したい場合は数値(座標)を直接指定する他ありません。
□ Snap points to guides K
A+Cの時のように、ガイドにスナップポイントやノードがスナップします。
ガイドとガイドの交点にスナップできるのはKがonのときだけです。
選択ツールでは、図形がパス化前の円(または楕円)に限り、楕円の傾きに関わらず、角やノードではなく選択範囲の重心(対角線の中心点)がガイドにスナップします。このとき円をパスに変換するとスナップポイントにしかスナップしなくなります。
逆に、ノードの位置に合わせてガイドを挿入したい場合、マウスドラッグでガイドをノードにスナップさせることは出来ず、そのノードの座標を正確に調べる必要があります。
XMLエディタのd属性に各ノードの座標が記録されていますが、正直、座標の数値がどのノードの座標なのか読み辛いので、マクロツールでこれを行う物を作ってみました。
詳しくは
アレするとこうなるよ(役に立たないTips2)参照。
以下略
全てのスナッピングに共通で、例えばガイドとガイドの交点にノードをスナップする時、片方のガイドにスナップしてからもう一方へ近づけていくと、既に合わせてある方のガイドから剥がれてしまい、どちらか一方にしか合わせられない事があります。
スナップの閾値を調節(値をできるだけ下げる)しても上手くいかない時は、ガイドなら水平・垂直なので1辺に合わせたら[Ctrl]+ドラッグすれば方向が限定(デフォルト=15°)されて動くので剥がれにくくなります。
それでもダメな時は、いっそのこと片方のガイドに合わせたら、そのガイドをスナップが効かない位置まで移動してから[Ctrl]+ドラッグすれば確実に上手くいきます。
以上のことから、スナッピングオプションは全ての項目を有効にしてしまうと互いの機能が引っ張り合いになってしまうので、期待した動作に合わせた設定を、場合によっては頻繁に切り替えながら操作する事になります。
特定の設定をonにするショートカットが無いので、スナップ操作を行う時にはDocument Propertyダイアログをパレットのように常に表示しておいた方が良いかもしれません。