Distance Shape

AIと読む
全ドキュメントを1ファイルで(llms-full.txt)
DistanceShape #Fx #ノード
Distance Shape

Text RenderDistance 出力(距離場)を受けて、塗り・縁取り・等高線のどれかを描くノードです。入れるのは普通の映像ではなく距離場なので、Render Texture 出力を繋いでも意図した絵にはなりません。

距離場は「0.5 が輪郭、輪郭から ±64px を 0〜1 に入れた」画像です。したがってこのノードの Threshold / Width / Rings / Flow / Softnessすべてピクセル単位です。

何が描かれるかは Rings と Width で決まる

  • Rings = 0、Width = 0 — 塗り。輪郭の内側が塗られます
  • Rings = 0、Width > 0 — 輪郭の帯(縁取り)。Width が帯の太さで、輪郭を中心に両側へ半分ずつ広がります
  • Rings > 0 — 等高線。Rings px ごとに線が並びます。線の太さは Width(1px 未満のときは 1px)。Rings が入っている間は縁取りモードにはなりません

ポート

  • Threshold — 輪郭のずらし(px、初期値 0)。正で太り、負で痩せます。等高線モードでは線の並び全体がずれます
  • Width — 帯/線の太さ(px、初期値 0)。負値は 0 として扱われます
  • Rings — 等高線の間隔(px、初期値 0)。負値は 0 として扱われます
  • Flow — 等高線の位相(px、初期値 0)。Rings が 0 のときは効きません。LFOなどで動かすと線が流れ続けます
  • Softness — エッジの柔らかさ(px、初期値 1)。負値は 0 として扱われますが、内部の下限が 0.01px あるので、0 にしてもわずかにアンチエイリアスが残ります
  • Color — 色(初期値 白)。アルファは出力の不透明度に掛かります
  • Invert — 白黒反転(初期値 OFF)。反転は最後に行われ、距離場が書かれていない余白も反転の対象になるので、ONにすると形が抜けて周囲が塗られます

距離場が書かれていない画素は「形の外」として扱われます。距離は文字の周囲の限られた範囲にしか書かれていないため、Threshold を大きく取っても、また Rings を粗くしても、データのある範囲より外へは広がりません

DistanceA / DistanceB と Blend

  • DistanceA だけ — Aの形をそのまま処理します。Blend は無視されます
  • 両方 — A→B を Blend(0〜1にクランプ、初期値 0)で補間します。0 でA、1 でB。距離のまま混ぜるので点の対応付けが不要で、穴の数が違う字(A と O など)でも破綻せずに形が溶けます
  • DistanceB だけ — B を A として扱います(Blend は無視)
  • どちらも未接続 — 出力は透明です

書体のモーフに使うときは、A と B の Text Render に同じ文字列を入れ、配置(Pos X / Pos Y / Scale など)も揃えておくと、書体の差だけが補間されます。

出力

Out の解像度は入力の距離場と同じです(DistanceA、未接続なら DistanceB)。入力の解像度が変わると作り直されます。背景は透過で、不透明度は描かれたマスク × Color のアルファです。

入力ポート

Port ID
DistanceARenderTexture
DistanceBRenderTexture
Blendfloat
Thresholdfloat
Widthfloat
Ringsfloat
Flowfloat
Softnessfloat
ColorColor
Invertbool

出力ポート

Port ID
OutRenderTexture

スクリプトから設定可能なメンバー

パス
blendInputfloat
thresholdInputfloat
widthInputfloat
ringsInputfloat
flowInputfloat
softnessInputfloat
invertInputbool

Synapse Apps(スクリプティング)

await synapse.modules.create({ type: "DistanceShape" })

このページへのリンク

同じページを参照しているページ