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

Inkscapeのクリッピング/マスキングの不思議な動作

 このページでは、Inkscapeのクリッピング機能/マスキング機能に見られる不思議な動きについてメモしたいと思います。

 クリッピング機能/マスキング機能はInkscapeでも良く使われるほうの機能かと思いますが、この不思議な動きのせいで「なんかクリッピング/マスキングがうまく動かない」と困ってしまうことがあるので、そんなときでもこれを読んでさっさと解決できるように記録しておきたいと思います。

  (参考:クリッピングとマスキング

(2025.06.06更新)

 なお、クリッピングとマスキングはどちらもオブジェクトの一部分を切り取る機能の一種ですが、どちらの場合もほぼ同じ動きのように見えるので、以下ではクリッピングの場合を例にメモしていきたいと思います。

クリッピング済みオブジェクトのクリッピング

 あるオブジェクトに1つのクリッピングパスを適用してクリッピングした状態で、そのクリッピング済みのオブジェクトにさらに別のクリッピングパスを適用して多重にクリッピングしたくてもできない、という話です。

 例を挙げると次のような感じです。

 緑色の矩形の上に星形のクリッピングパスを描き、その両方を選択しておいてクリップを設定メニューを操作します。すると2番目のように星形に沿って切り取られた状態(クリッピングされた状態)になります。

 ここでさらに円形のクリッピングパスを描き、その両方を選択しておいてもう一度クリップを設定メニューを操作すると、4番目のように円形のクリッピングパスに沿った切り取りが行われるだけになります。星形に切り取られたものをさらに円形の一部で切り取ってくれることを期待したのですが、そうはなりません。

 どうやらクリッピング対象のオブジェクト1つに対してクリッピングパスは1つしか設定できない(SVG形式の仕様上は可能らしいのですが)ので、Inkscapeは最後に設定したクリッピングパス「だけ」を採用するという動きをするようです。

 つまり1回目のクリッピングは無視されて次のように2回目のクリッピングだけが有効になっているかのように動きます。

 しかも結果として1回目のクリッピングに使ったクリッピングパス(星形オブジェクト)はデータとしても消失してしまいます。

 この動きが原因となって、すでにクリッピング済みのオブジェクトであることをすっかり忘れて、2回目のクリッピングをやろうとしてしまい、思ったクリッピング結果にならずに慌てることもあります。そんなときは慌てずにレイヤーとオブジェクトダイアログを表示させて、そのオブジェクトがクリッピング済みのものである(小さいハサミのアイコンが表示されている)かどうかを確認したいところです。


  では、クリッピング済みのオブジェクトをさらに別のクリッピングパスでクリッピングするにはどうしたらよいか?というと、次のような手順になります。

 1つ目のクリッピングパスでクリッピングしたオブジェクトの上に2つ目のクリッピング用のオブジェクトを描きます。このままクリッピングすると、上に書いたように2つ目のクリッピングパスだけが有効になってしまうので、2つ目のクリッピングを実行する前に、1つ目のクリッピング済みのオブジェクトを選択し、それだけでグループ化しておきます。そうすると当然クリッピング済みのオブジェクト1個だけを含むグループになりますが、続いてそのグループと2つ目のクリッピング用オブジェクトを両方選択しておいてクリッピングを実行すると、1つ目と2つ目のクリッピングパスを両方使ったクリッピングになります。

クローンを使ったクリッピング

 クローンオブジェクトをクリッピングしようとしたり、クローンオブジェクトをクリッピングパスとして他のオブジェクトをクリッピングしようとするときに、ちょっと不思議な動きをします。

 まず次のようなクリッピングを考えるわけです。

 星形オブジェクトのクローンを作ってそれをクリッピング対象にします。クリッピングパスのほうも円形オブジェクトのクローンを作ってそのクローンを星形オブジェクトのクローンに重ねてクリッピングを実行します。

 そうすると当然右端の絵のように円形に沿ってクリッピングされます。

 クローンをクリッピング対象にしてもクリッピングパスとして用いてもクリッピングは思ったとおりに機能しています。

 ところがこの例の中でクローン元のオブジェクトとクローンとを両方選択した状態でクリッピングしようと思ってクリップを設定メニューを操作しても何も起こりません

 例えばクリッピング対象としてクローンを選択する場合、クローン元オブジェクトも次のように一緒に選択した状態では何も起こりません。

 また同じようにクリッピングパスとしてクローンを選択し、かつ、クローン元オブジェクトも一緒に選択した状態でも何も起こりません。

 うっかりクローン元とクローンの両方を選択してクリッピングを実行しようとしても何も起こらないので慌てます。

 例えば次のようにたくさんあるオブジェクトをクリッピングしようとするときにうっかりクローン元とクローンが混じっていたりすると「なぜクリッピングできないんだ?」となってしまいます。

 この例は左上隅の星形オブジェクトをクローン元として縦横にタイルクローンを生成したものですが、実はタイルクローン機能の通常の結果として左上隅はクローン元と1個目のクローンがぴったり重なって描かれているので、この絵全体を選択した状態ではクリッピングできないことになります。

 そんな場合は「クローンの見分け方」のような方法を使ってクローン元とクローンが混じっていないか確認したいところです。

ぼかしを入れたオブジェクトのクリッピング

 ぼかしを入れたオブジェクトをさらにクリッピングすると、クリッピングによって切り取られた端のところはぼかされないはずと思っていたら、切り取られた端のところにもわずかにぼかしが入ることがあります。

 クリッピング後のほう(右側)の左上の境界のあたりを拡大するとわかります。

 色の薄くなった水平な帯のような部分があることがわかります。

 理由はわからないのですが、環境設定のレンダリングのパラメータとして「低品質」や「最低品質」を指定してあるとこのような動きをするようです。

 例えば、2つのオブジェクトをそれぞれクリッピングした上で、切り取ったところでぴったり合わせるようなことをしようとすると、この薄くなった帯状の部分が目立ってしまいます。

 この症状はぼかしを入れたオブジェクトをInkscapeがキャンバス上に描画しようとするときにおこるようで、SVG形式データの内部などでは特に違いがあるというわけではなさそうです。例えば画像ファイルにエクスポートすると期待通りクリッピングの境界線のところにはぼかしの入らない画像が保存されます。

 気になる場合はレンダリングの品質として高いほうを選びます。