レッスンへ移動
ae↗独立系
デザインスタジオ
← レッスン一覧へ

ピクセル・模様・動き / SVG素材の実験

陰影を先に。
色はあとに。

グレーで形をつくる。
その中を光に通らせる。
明るさごとに、新しい色を。

小さな金属をつくる ↓読了約8分 · SVGの実験

ひとつの素材。さまざまな色。

形 → 陰影 → 色
SVG素材 / 明るさを色に変換23 / 100
ドラッグで反射を調整 · SPACEで停止
04 / 陰影が色になる

変換表で各ピクセルの明るさを新しい色にします。

形 + 陰影 + 変換表 → 素材

考え方 / 形と色を分ける

形はそのまま。
グレーに、 新しい意味を。

まずグレーで光を完成させると金属表現を調整しやすくなります。文字が輪郭、内側の縁が丸み、動くグラデーションが反射をつくり、変換表で同じ光に新しいパレットを与えます。

SVG標準のフィルターだけを使い、WebGLや画像テクスチャは不要です。システムのサンセリフ書体で文字を編集できます。準備なしで試せて、サンプルの編集にはSVGとJavaScriptの基礎が役立ちます。

01 / 形から始める

アルファで文字を表す。

太い文字をグレーで描きます。色の画像と、不透明度だけのアルファ画像をSVGのSourceGraphicとSourceAlphaで取り出せます。縁をつくる形にはアルファを使います。

GGSourceGraphicSourceAlpha
色の画像 = 塗り × アルファ
形 = SourceAlpha

試してみよう: 「形」で短く太い言葉を選びます。Oの閉じた穴とCの開いた形を比べ、外側も内側も効果が保たれるか見ましょう。

02 / 内側の縁を探す

アルファをぼかして、引く。

SourceAlphaをぼかし、鮮明な元のアルファから引きます。正の値が形の内側の帯になり、文字の穴にも縁ができます。黒い帯をグレーの塗りに乗算して陰影をつくります。

−=鮮明なアルファぼかしたアルファ内側の縁
縁 = max(0, アルファ − ぼかし(アルファ))
素材 = グレー × 暗い内側の縁

arithmetic合成でk2=1、k3=−1を使い、最初の入力を鮮明なアルファにします。結果は許容範囲に収まります。ぼかしを広げると縁も広がり、画像処理で面取りの印象をつくります。

試してみよう: 「縁」で内側の縁を1から20へ増やします。細い線ほど強く影響されることを観察しましょう。

03 / 光の道をつくる

繰り返せる帯。

単色を線形グラデーションに替え、最初と最後を同じ明るさにしてspreadMethodをrepeatにします。gradientTransformを1周期動かすと同じ画像に戻り、縁は固定したまま光が通ります。

移動量 = 位相 × 帯の周期
1ループ = 帯の1周期

アニメーションではグラデーションの変換だけを更新します。素材と形は固定です。スライダー、ドラッグ、矢印キーで同じ位相を調整します。

試してみよう: 「光の移動」で短い周期と長い周期を比べます。同じ速度なら短い周期ほど文字に多くの帯が見えます。

04 / グレーにパレットを与える

明るさを3つの値に。

グレーのピクセルはRGBが同じ値です。feComponentTransferで各成分を別々に変換し、type="table"で等間隔の値を補間します。5色がグレー0・25・50・75・100%の色を決めます。

入力のグレー出力の色0%25%50%75%100%
R = tableR(g)
G = tableG(g)
B = tableB(g)

color-interpolation-filters="sRGB"を使うとカラーピッカーの値と一致します。アルファは変えず輪郭を保ちます。色の帯と数値表は実際のフィルターの値を示します。

試してみよう: 「色」と色タブで潮の金色をミントの光に替え、50%の色を編集します。変換だけが変わり、グレーの光は同じです。

05 / 表面を仕上げる

質感にも同じ色の規則を。

小さなガウスぼかしで素材を柔らかくし、feTurbulenceの再現できるノイズを無彩色にします。形で切り抜いてグレーに少し混ぜてから色を変換し、粒子と光を同じ色の規則に従わせます。

質感のあるグレー = グレー × (1 − 粒子) + ノイズ × 粒子
最終色 = 変換表(質感のあるグレー)

反射が動いてもノイズのシードは固定なので、粒子を増やしてもちらつきません。ぼかしすぎると細い穴が閉じたり輪郭が柔らかくなります。小さな書き出しも確認しましょう。

試してみよう: 光を止めて粒子0%と25%を比べ、読みやすい量へ減らします。柔らかさ0と3も比べましょう。

06 / つくり方を残す

絵と一緒に効果も保存。

SVGには文字、グラデーション、フィルターをまとめて保存します。再生中ならループする光、停止中ならその瞬間を保存します。システム書体はOSで形が変わるため、輪郭を固定したいときはベクター編集ソフトでパス化してください。

画面保存は現在の素材とクリーム背景を1600 × 1000のPNGにします。単独HTMLには操作をすべて収録。動きを減らす設定では停止で始まり、非表示や画面外では更新を止めます。

試してみよう: 動くSVGと停止したPNGを保存します。前者は再利用できるつくり方、後者は選んだ一瞬を残します。

実践 / ひとつの光、ふたつの表情

反射はそのまま。
その、 表情を変える。

強いハイライトで停止し、言葉、周期、縁、位相を固定します。冷たい青から始め、変換表の5色だけを替えて暖かい作品にします。

2つの画像を比べましょう。形と光が一致し、色が異なる表情を生むはずです。

文字に戻る ↑
自分でつくる:動くサンプル +

サンプルにはSVGの組み立て、素材の設定、パレットの表、スタイルを収録しています。HTMLをブラウザーで開くだけで、サーバー、外部フォント、インストールは不要です。

<feComponentTransfer color-interpolation-filters="sRGB">
  <feFuncR type="table" tableValues="0.027 0.090 0.325 1.000 1.000" />
  <feFuncG type="table" tableValues="0.027 0.235 0.737 0.741 0.953" />
  <feFuncB type="table" tableValues="0.098 0.569 0.914 0.349 0.882" />
  <feFuncA type="identity" />
</feComponentTransfer>

動くサンプルをダウンロード ↓

個別のソース: SVG素材の組み立て · 操作と書き出し.