お絵描きソフトInkscape(インクスケープ)の使い方を初級レベルから上級レベルまで広く紹介しています。
情報追加のリクエストや分かりにくい点があれば下のCONTACTフォームからどうぞ。

Inkscapeのオブジェクトの境界枠(バウンディングボックス)について

 このページでは、Inkscapeのオブジェクトを囲う枠(境界枠、バウンディングボックス)がどのように扱われるのかについてまとめたいと思います。

(2025.02.06更新)

 境界枠(バウンディングボックス)というのは、キャンバス上のオブジェクトの上下左右をぴったり囲う四角形のことで、通常はキャンバス上に表示されるものではなく、オブジェクトに対する処理(選択時のハンドルの表示、拡大縮小、位置合わせなど)を実行するときに使われるパラメータ(座標情報)ですが、設定によってはそれ自体を点線で表示させることもできます。

 バウンディングボックスは次のような処理のときに使われます。

  • 選択時のハンドルの表示
  • 位置合わせ
  • タイルクローンの配置
  • オブジェクトのパターン
  • 選択したオブジェクトだけエクスポート
  • エクステンションによる変形 

 一方で、バウンディングボックスではなく、ストロークの位置(アウトライン)を基準にして実行される処理もたくさんある(例えばフィルの塗りつぶし)ので、少し面倒ですが、どちらのタイプの処理なのかを区別しながら編集作業をしていく必要があります。

 そして、バウンディングボックスを使っている機能を利用するときにもっとも気をつけたいのは、バウンディングボックスには「仮想境界枠」と「幾何学的境界枠」の2種類があって、どちらを使うかを環境設定で切り替えられるということです。


 「仮想境界枠(decorated bounding box)」は、オブジェクトぴったり囲う位置で決まる四角形です。

 太いストロークや、パスのノードのところにマーカを表示させている場合も、それらを全部囲う位置になります。上の例ではマーカとして設定した小さい三角形や正方形のちょうど外側にバウンディングボックスがあります。

 「幾何学的境界枠(object bounding box)」は、オブジェクトのストロークの位置(アウトライン)で決まる四角形です。

 どちらのバウンディングボックスを用いるかは、Inkscapeを使う目的に応じて自分で決めて環境設定で設定しておく必要があります。

 例えば、どんな位置に位置合わせ(整列やスナップ)をさせたいかで選びます。オブジェクト同士を数学的な座標に応じて位置合わせしたいときは幾何学的境界枠に設定し、見た目の形に応じて位置合わせしたいときは仮想境界枠に設定するといった具合です。

 Inkscapeをインストールした直後のデフォルト設定では仮想境界枠のほうが設定されているようです。「変な位置にバウンディングボックスがあるなあ」と思ったら環境設定を確認すれば解決します。

 ちなみに仮想境界枠と幾何学的境界枠の違いはSVG形式の仕様に書いてあって、Inkscape独自の分類ではないですが、この2種類をどのように使い分けるかはSVG形式として定義されていないようなので、Inkscapeとしては「どちらを採用するかはユーザ自身に決めてもらおう」というポリシーなのかもしれません。

ちょっとややこしい話

 ここでちょっとややこしい話になります。バウンディングボックスには仮想境界枠と幾何学的境界枠の2種類があることを書いてきましたが、バウンディングボックスに従った機能の中には強制的にどちらか一方が使われるものがあります。例えば環境設定で幾何学的境界枠を選択してあってもエクスポート機能では無視されて仮想境界枠のほうが使われます。幾何学的境界を使ってエクスポートしようとするとオブジェクトの端のところがファイルに保存されないことになってしまうので仮想境界枠のほうを強制的に使うことにしたのかもしれません。反対にタイルクローン機能では仮想境界枠を選択してあっても幾何学的境界枠が強制的に使われます。

 各機能ごとに、2種類の境界枠を切り替えられるものなのか、仮想境界枠が強制的に使われる機能なのか、幾何学的境界枠が強制的に使われる機能なのかを押さえておかないと、意図したとおりに操作できないことになってしまうので注意しておいたほうがよさそうです。