Skip to content
Technical

SVGフィルターエフェクト:高度なビジュアルエフェクトの作成

ぼかし、影、カラーエフェクト、複雑なビジュアル処理のためのSVGフィルターをマスターしましょう。フィルタープリミティブと創造的な組み合わせの完全ガイド。

Robin Monteiro2026年1月28日2026年10月10日3 min
Use this article with an AI assistant:
.md
SVGフィルターエフェクト:高度なビジュアルエフェクトの作成
R
Robin Monteiro

Founder of VectoSolve

Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.

How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author

Image vectorizationCutting machine filesEmbroidery filesSVG
Free previewNo signupFull-quality output

Key Takeaways

  • SVGフィルターはぼかし、影、歪みなどのGPUアクセラレーションされたビジュアルエフェクトをブラウザ内で直接適用する
  • フィルタープリミティブ(feGaussianBlur、feColorMatrix、feTurbulenceなど)をチェーンして複雑なエフェクトを作成できる
  • すりガラス、ネオングロー、エンボスなどのクリエイティブレシピは、シンプルなフィルタープリミティブの組み合わせで構築される
  • パフォーマンスは大きく異なる — feColorMatrixは軽量だがfeTurbulenceは計算負荷が高い
  • シンプルなエフェクトにはCSSフィルターをフォールバックとして使用し、SVGフィルターは高度なコンポジションに温存する

SVGフィルターの力

SVGフィルターはラスター画像なしで洗練されたビジュアルエフェクトを実現します。シンプルな影から複雑な歪みまで、フィルターはベクターグラフィックスを強力に変換します。

ぼかし、影、カラー変換を示すSVGフィルターエフェクトの概要
SVGフィルターはシンプルな形状を見事なビジュアルコンポジションに変換します

フィルターの基本

フィルター構造

xml
<defs>
  <filter id="myFilter">
    <!-- フィルタープリミティブをここに -->
  </filter>
</defs>

<rect filter="url(#myFilter)" .../>

フィルター領域

フィルター境界の制御:

xml
<filter id="f" x="-20%" y="-20%" width="140%" height="140%">
  <!-- 要素の外側にフィルター領域を拡張 -->
</filter>

Pro Tip: ぼかしや影のエフェクトを使用する際は、常にフィルター領域を拡張してください(例:x="-20%")。フィルター出力がクリップされて見える場合、フィルター領域が小さすぎます。


一般的なフィルターエフェクト

ぼかし(feGaussianBlur)

xml
<filter id="blur">
  <feGaussianBlur stdDeviation="5"/>
</filter>

可変ぼかし:

xml
<!-- 水平ぼかしのみ -->
<feGaussianBlur stdDeviation="10 0"/>

<!-- 垂直ぼかしのみ -->
<feGaussianBlur stdDeviation="0 10"/>

ドロップシャドウ(feDropShadow)

シンプルな影:

xml
<filter id="shadow">
  <feDropShadow dx="3" dy="3" stdDeviation="2" flood-opacity="0.5"/>
</filter>

カスタムシャドウ

より細かい制御:

xml
<filter id="custom-shadow">
  <feGaussianBlur in="SourceAlpha" stdDeviation="3" result="blur"/>
  <feOffset in="blur" dx="4" dy="4" result="offset"/>
  <feFlood flood-color="#000" flood-opacity="0.5" result="color"/>
  <feComposite in="color" in2="offset" operator="in" result="shadow"/>
  <feMerge>
    <feMergeNode in="shadow"/>
    <feMergeNode in="SourceGraphic"/>
  </feMerge>
</filter>

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

カラーエフェクト

カラーマトリックス(feColorMatrix)

グレースケール変換:

xml
<filter id="grayscale">
  <feColorMatrix type="saturate" values="0"/>
</filter>

セピアトーン:

xml
<filter id="sepia">
  <feColorMatrix type="matrix"
    values="0.393 0.769 0.189 0 0
            0.349 0.686 0.168 0 0
            0.272 0.534 0.131 0 0
            0     0     0     1 0"/>
</filter>

色相回転:

xml
<filter id="hue-rotate">
  <feColorMatrix type="hueRotate" values="90"/>
</filter>

カラー調整

明るさ/コントラスト:

xml
<filter id="bright">
  <feComponentTransfer>
    <feFuncR type="linear" slope="1.5" intercept="0"/>
    <feFuncG type="linear" slope="1.5" intercept="0"/>
    <feFuncB type="linear" slope="1.5" intercept="0"/>
  </feComponentTransfer>
</filter>

「SVGフィルターはブラウザのPhotoshopです — 賢く重ねれば、通常は重い画像編集ソフトウェアが必要なエフェクトを作成できます。」 - Sara Soueidan、SVGエキスパート


変位と歪み

タービュランス

ノイズの作成:

xml
<filter id="turbulence">
  <feTurbulence type="turbulence"
                baseFrequency="0.05"
                numOctaves="2"/>
</filter>

変位マップ

パターンによる歪み:

xml
<filter id="displace">
  <feTurbulence type="turbulence"
                baseFrequency="0.02"
                numOctaves="3"
                result="noise"/>
  <feDisplacementMap in="SourceGraphic"
                      in2="noise"
                      scale="30"
                      xChannelSelector="R"
                      yChannelSelector="G"/>
</filter>

ライティングエフェクト

ディフューズライティング

3D風ライティング:

xml
<filter id="diffuse">
  <feDiffuseLighting lighting-color="#white" surfaceScale="5">
    <fePointLight x="100" y="100" z="200"/>
  </feDiffuseLighting>
</filter>

スペキュラーライティング

光沢のあるハイライト:

xml
<filter id="specular">
  <feSpecularLighting specularConstant="1"
                       specularExponent="30"
                       lighting-color="white"
                       surfaceScale="5">
    <fePointLight x="150" y="60" z="200"/>
  </feSpecularLighting>
</filter>

Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

フィルターの組み合わせ

マージ操作

結果の重ね合わせ:

xml
<filter id="glow">
  <feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur"/>
  <feMerge>
    <feMergeNode in="blur"/>
    <feMergeNode in="blur"/>
    <feMergeNode in="SourceGraphic"/>
  </feMerge>
</filter>

コンポジット操作

オペレータでの組み合わせ:

xml
<filter id="cutout">
  <feImage href="mask.svg" result="mask"/>
  <feComposite in="SourceGraphic"
               in2="mask"
               operator="in"/>
</filter>

クリエイティブレシピ

すりガラス

xml
<filter id="frosted">
  <feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur"/>
  <feColorMatrix in="blur" type="saturate" values="1.5" result="saturate"/>
  <feTurbulence type="fractalNoise" baseFrequency="0.1" result="noise"/>
  <feDisplacementMap in="saturate" in2="noise" scale="5"/>
</filter>

ネオングロー

xml
<filter id="neon">
  <feFlood flood-color="#ff00ff" result="flood"/>
  <feComposite in="flood" in2="SourceGraphic" operator="in" result="mask"/>
  <feGaussianBlur in="mask" stdDeviation="5" result="blur"/>
  <feMerge>
    <feMergeNode in="blur"/>
    <feMergeNode in="blur"/>
    <feMergeNode in="SourceGraphic"/>
  </feMerge>
</filter>

エンボスエフェクト

xml
<filter id="emboss">
  <feConvolveMatrix
    order="3"
    kernelMatrix="-2 -1 0
                  -1  1 1
                   0  1 2"/>
</filter>
グロー、タービュランス、動的トランジションを含むアニメーションSVGエフェクト
SVGフィルターのアニメーションはウェブグラフィックスに深みとインタラクティビティを加えます

フィルターによるアニメーション

アニメーションぼかし

xml
<filter id="animated-blur">
  <feGaussianBlur stdDeviation="0">
    <animate attributeName="stdDeviation"
             values="0;10;0"
             dur="2s"
             repeatCount="indefinite"/>
  </feGaussianBlur>
</filter>

ダイナミックタービュランス

xml
<feTurbulence baseFrequency="0.02">
  <animate attributeName="baseFrequency"
           values="0.01;0.05;0.01"
           dur="5s"
           repeatCount="indefinite"/>
</feTurbulence>

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

パフォーマンスの考慮事項

パフォーマンスへの影響

フィルターパフォーマンス:
feGaussianBlur:重い(半径に依存)
feColorMatrix:軽い
feTurbulence:非常に重い
feDisplacementMap:重い
チェーンフィルター:累積的

最適化のヒント

  1. フィルター領域を最小化する
  2. ぼかし半径を縮小する
  3. チェーンエフェクトを制限する
  4. 静的フィルターをキャッシュする
  5. 可能な場合はCSSフィルターを使用する

ぼかし、グレースケール、ドロップシャドウなどのシンプルなエフェクトには、CSSのfilterがSVGフィルターよりも大幅に高速です。ハードウェアアクセラレーションされたコンポジティングを活用するためです。CSSでは再現できないエフェクトにSVGフィルターを温存してください。

CSSフィルターの代替

可能な場合はCSSを使用:

css
.blurred {
  filter: blur(5px);
}

.grayscale {
  filter: grayscale(100%);
}

ブラウザ互換性

サポート状況

広範なサポート:
- feGaussianBlur
- feColorMatrix
- feOffset
- feMerge

可変サポート:
- feDisplacementMap
- feTurbulence
- feDiffuseLighting

フォールバック戦略

css
.element {
  /* フォールバック */
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

@supports (filter: url(#shadow)) {
  .element {
    box-shadow: none;
    filter: url(#shadow);
  }
}

まとめ

SVGフィルターはCSSだけでは不可能な洗練されたエフェクトを実現します。計算負荷は高いものの、ビジュアル処理を正確に制御できます。インパクトのあるエフェクトに効果的に使用し、常にパフォーマンスを考慮してフォールバックを提供してください。

フィルター付きベクターエフェクトを作成


フィルタープリミティブエフェクトパフォーマンスコスト
feGaussianBlurソフトぼかし / すりガラス中(GPUアクセラレーション)
feColorMatrixカラーシフト、彩度低下低
feTurbulenceノイズ、有機的テクスチャ高(ピクセルレベル計算)
feDisplacementMap歪み、波紋エフェクト高
feDropShadowドロップシャドウ低〜中

Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

参考資料・関連リンク

Tags:
SVGフィルター
ビジュアルエフェクト
ぼかし
影
上級
Share:

Try VectoSolve Now

Convert your images to high-quality SVG vectors with AI

AI-Powered Vectorization

Ready to vectorize your images?

Convert your PNG, JPG, and other images to high-quality, scalable SVG vectors in seconds.