GUIの中には、描画要素にドロップシャドウで影をつけたり、盛り上がったようなエンボス効果を施している場合があります。JavaFXではこのような装飾をエフェクトと呼ぶ機能で実現します。
今月はこのエフェクトについて取りあげます。
また、後半ではノードの回転やスケーリングなどの変形についても紹介します。
エフェクト
前述したように、エフェクトはノードに対して装飾を加える機能です。
標準で提供されているエフェクトを表1にまとめました。ただし、単独では使われないエフェクトもあるので、それは除いてあります。
これらのクラスはすべてjavafx.scene.effect.Effectクラスのサブクラスとして定義されています。
クラス名 | 説明 |
---|---|
Blend | 2種類のエフェクトをブレンドする |
Bloom | ノードを輝かせる |
BoxBlur | 矩形のぼかし |
ColorAdjust | 色の調整 |
DisplacementMap | ジオメトリの調整 (凸凹をつける) |
DropShadow | ドロップシャドウ |
GaussianBlur | ガウシアンぼかし |
Glow | ノードを光らせる |
InnerShadow | ノードの内側に影をつける |
Lighting | エンボスなどライトに関連するエフェクト |
MotionBlur | 動きのあるぼかし |
PerspectiveTransform | 遠近法を用いた変換 |
Reflection | 反射 |
SepiaTone | セピア色への変換 |
Shadow | 影 |
BloomクラスとGlowクラスは同じようなエフェクトなのですが、Bloomはノードの外側に放射光が描画されるのに対し、Glowは単に明るく描画されるという違いがあります。
また、ぼかしだけでも3種類あります。BoxBlurクラスは品質よりもパフォーマンスを優先させる場合に使用し、GaussianBlurクラスは品質を優先させる場合に使用します。MotionBlurクラスはノードが動いているようなぼかしになり、アニメーションなどと組み合わせて、スピード感を醸しだすために使用します。
これらすべてのエフェクトを紹介するには分量が足りないため、今回はGaussianBlurクラス、DropShadowクラス、Reflectionクラス、Lightingクラスについて使用法を紹介します。