Text Render

AIと読む
全ドキュメントを1ファイルで(llms-full.txt)
AppTextRender #Generator #ノード
Text Render

文字列を1つ、背景透過の RenderTexture に描き出します。Generator カテゴリの通常ノードとして、ノード追加メニューにそのまま出ます(以前は Apps SDK の低レイヤーノード扱いで既定では隠れていましたが、現在は「Show App SDK modules」の設定に関係なく表示されます。ノードidが AppTextRender のままなのはその名残で、保存済みプロジェクトはそのまま開けます)。

出力解像度は生成時に固定され、既定はグローバル解像度です。ノード上部のラベルに Text 1920x1080 のように現在の解像度が出ます。描画はパラメータが変わったときにだけ1回行われるので、値が動いていなければGPU負荷はかかりません。

本文とフォント

  • 本文 — ノード上のテキスト欄に直接書くか、Text ポートに文字列を流し込みます(Text Queue や Lyric Sequence から)。ポートを繋ぐとその値が本文になります。行は出力幅で自動折り返しされ、揃えは既定で中央です(揃えを変えるポートやUIはなく、Apps SDK から alignment を 0=左 / 1=中央 / 2=右 で書けます)
  • Font Size — 既定 96(1未満は1として扱われます)。ノード上の欄とポートは同じ値です
  • Color — 文字色。既定は不透明の白。ノード上のカラーピッカーとポートは同じ値です
  • Font — ドロップダウンでフォントを選びます。先頭の Auto は「日本語などのCJKが出るフォントをOSから自動で探す」動作で、Yu Gothic / メイリオ / BIZ UDGothic / ヒラギノ角ゴシックなどの候補を順に試します。候補が1つも見つからない環境ではTMP標準の LiberationSans に落ち、CJKは豆腐になります
    • ドロップダウンにはPCにインストールされたフォント(Windows: Fonts フォルダとユーザー単位のフォント、Mac: /System/Library/Fonts・/Library/Fonts・~/Library/Fonts)がアルファベット順に並びます
    • Font ポートに文字列を流すと、ドロップダウンと同じ名前でフォントを切り替えられます(StringArray で拍ごとに書体を替える、など)。空文字は Auto です
    • 選んだフォントは番号ではなく名前で保存されます。別のマシンでそのフォントが無い場合や解決できない名前は Auto に落ちます
    • Refresh Fonts ボタンで、アプリ起動後にインストールしたフォントを拾い直します

文字のスタイル(縁取り・影・太さ)

いずれもポートから変調できます。

  • Bold(FaceDilate)— 文字の太さ。-1〜1にクランプ、既定 0。正で太く、負で細く
  • Outline Width / Outline Color / Outline Soft — 縁取りの幅(0〜1)・色(既定は黒)・縁のぼかし(0〜1)。幅 0 で縁取りなし
  • Shadow Color / Shadow X / Shadow Y / Shadow Dilate / Shadow Soft — 影。Shadow Color のアルファが 0(既定)なら描かれません。X / Y はずらし量で、1 がフォントサイズに比例した「にじみ幅いっぱい」に相当します。Shadow Dilate は影の太さ(-1〜1)、Shadow Soft はぼかし(0〜1)。ずらし 0 でぼかしを上げるとグローになります

配置

フォントサイズを変えずに、文字全体を動かすためのポートです。LFOで揺らす・ビートで拡縮する用途はこちらを使います。

  • Pos X / Pos Y — 正規化座標。0 が中央、±1 が出力の端。既定 0
  • Rot — 回転(度)。既定 0
  • Scale — 全体の倍率。既定 1(負の値は 0 扱い)
  • Scale X / Scale Y — 軸ごとの倍率。Scale に掛かります。既定 1
  • Shear — 斜体。y に比例して x をずらします(既定 0)。拡縮のあと・回転の前に掛かるので、文字が傾いてから全体が回ります

吹き出しボックス

文字の実寸にパディングを足した角丸の矩形を、文字の下に敷きます。

  • Box Color — 既定は透明で、アルファが 0 のあいだは描かれません
  • Box Pad — パディング(px、既定 16、負の値は 0)
  • Box Radius — 角丸の半径(px、既定 12、負の値は 0)

ボックスは配置(位置・回転・拡縮・斜体)に文字と一緒に付いてきます。本文が空のときは描かれません。

Distance 出力(距離場)

Render Texture と同じ解像度で、文字の距離場を出します。値 0.5 が文字の輪郭で、輪郭から ±64px の範囲が 0〜1 に線形で入っています(内側が 1 寄り、外側が 0 寄り。RGB は同じ値、アルファは 1、文字が無い所は 0)。色・縁取り・影のスタイルは距離場には反映されず、配置だけが効きます。

しきい値で切れば膨張・縁取り・等高線を、2枚を混ぜればフォント間のモーフを作れます。受け側は Distance Shape を使ってください。

Apps SDK からは従来どおり render.createText で生成でき、fontSize / colorR / colorG / colorB / colorA / text / alignment / fontName を書けます。

入力ポート

Port ID型
Textstring
ColorColor
FontSizefloat
Fontstring
FaceDilatefloat
OutlineWidthfloat
OutlineColorColor
OutlineSoftnessfloat
ShadowColorColor
ShadowOffsetXfloat
ShadowOffsetYfloat
ShadowDilatefloat
ShadowSoftnessfloat
PosXfloat
PosYfloat
Rotationfloat
Scalefloat
ScaleXfloat
ScaleYfloat
Shearfloat
BoxColorColor
BoxPaddingfloat
BoxRadiusfloat

出力ポート

Port ID型
Render TextureRenderTexture
DistanceRenderTexture

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

パス型
textInputstring
fontSizeInputfloat
fontInputstring
faceDilateInputfloat
outlineWidthInputfloat
outlineSoftnessInputfloat
shadowOffsetXInputfloat
shadowOffsetYInputfloat
shadowDilateInputfloat
shadowSoftnessInputfloat
posXInputfloat
posYInputfloat
rotationInputfloat
scaleInputfloat
scaleXInputfloat
scaleYInputfloat
shearInputfloat
boxPaddingInputfloat
boxRadiusInputfloat
fontSizefloat
colorRfloat
colorGfloat
colorBfloat
colorAfloat
textstring
alignmentint
fontNamestring

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

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

このページへのリンク

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