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

Inkscapeで複数パスの間を塗りつぶすには

 独立した複数のパスの間を埋めるように塗りつぶすにはどうしたらいいのでしょうか?

(2022.12.3更新)

こんな絵を描きたい

 まず、どんな絵を描きたいのか、例を示します。

 次のように、独立した複数のパスがあるとします。それぞれのスタイルは異なるものにしてあります。

 このパスの間を次のように塗りつぶすにはどうしたらよいのか?という問題です。

 特に、3つのパスのそれぞれのスタイルは維持したままで、それらの間をいい感じに塗りつぶしたいとします。

パスの結合ではうまくいかない

 1本のパスに合体して、そのフィルを塗りつぶせばよいと単純に考えて、メニューからパス > 結合を操作して1本のパス(1個のパスオブジェクト)にした上でフィルを設定すると、次のようになります。

 この方法はうまくいきません。3本のサブパスから構成される1本のパスに結合したことで、サブパス同士のスタイルが1つに揃ってしまうし(スタイルはオブジェクトの単位でしか設定できないから)、フィルにあたる領域は各サブパスごとに囲われた領域になるので、サブパスごとに塗りつぶされるだけで、複数のサブパスに挟まれた領域は塗りつぶせません。(参考:「パスをつなぎ合わせる/切り離す」)

パスエフェクトを使えないか?

 また、Inkscapeのパスエフェクトには「複数の間を塗りつぶす(Fill Between Many)」というエフェクトがあります。(参考:「パスエフェクト/エクステンションとは」)

 このエフェクトを使えば、今回のような塗りつぶしができるように思われます。説明上は確かにそうなのですが、このエフェクト、Inkscapeのユーザにはあまり評判がよくありません。わかりやすい解説コンテンツがないということもありますが、いろいろ調べてみた結果わかったことは、このエフェクトは非常に複雑で面倒なたくさんの操作を行わなければならないように作られているらしいのです。

こんな手順で塗りつぶせる

 というわけで、そんなにうまい手順はなさそうと思われるので、代わりに次のような手順を考えてみました。

 塗りつぶしたい領域にピッタリの形で、かつ、ストロークを設定していない閉じたパスを最初のパスに合わせて作って、そのフィルを塗りつぶしてから最初のパスの下に重ねれば、見た目には最初のパスの間を塗りつぶしたように見えるじゃないか、ということです。

 まず、ピッタリの形のパスを作るために、塗りつぶしたい(塗りつぶしたように見せたい)複数のパスをすべて選択しておいて、編集 > 複製を操作します。

 すると、元の3本のパスにピッタリ重なるように、複製された3本のパスが生成されます。ピッタリ重なっているので見た目では分からないですが、次のように少しだけ移動してみると、ちゃんと複製されていることがわかります。

 複製後のパスが選択された状態のままで、パス > 結合を操作します。

 すでに書いたように、こうすると3本のパスのスタイルがみんな同じになってしまいますが、複製元のパスは下に隠れているだけで、元のまま残っています。

 次に、この結合して1本のパス(3本のサブパス)になったパスオブジェクトを、ノードツールで選択することで、ノードを表示させます。

 そして、塗りつぶしたい領域を囲うように、離れているノード同士を、ツールコントロールバーにある連結ボタンを押して連結します。(参考:「パスをつなぎ合わせる/切り離す」)

 この例では3個所を全部連結して、閉じたパスにします。

 次に、この閉じたパスのスタイルを設定します。塗りつぶすためだけに使うパスなので、塗りつぶしたい色(この例では水色)でフィルを設定し、かつ、ストロークは「塗りなし」を設定します。そして、この閉じたパスを複製元のパスの下側に重なるように、ツールコントロールバーの背面移動ボタンを押します。

 このように、最初の3本のパスの間を塗りつぶすような絵になります。

 塗りつぶす領域の形が気に入らないときは、ノードツールを使ってパスの形を変形します。

 これで、複数のパスの間を塗りつぶしたかのような見た目にすることができます。