TextSplit

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

入力した文字列を1文字ずつの点に分解し、PointCloud / Material / Count を出力します。点1つが1文字に対応するので、Point Key / Wave / Attribute / SpringPoints といった点群向けのノードがそのまま文字のアニメーションになります。このノード自体はアニメーションを持ちません。

  • 本文はノード上のテキスト欄に直接入力します。Text ポートを繋ぐと、以降はそちらから来た文字列が本文になります
  • 改行は空白に置き換えられ、常に1行に畳まれます
  • 上限は128文字。超えた分は切り捨てられ、そのときコンソールに警告が出ます
  • 絵文字や結合文字は1文字として数えます
  • Count には実際に出した文字数が出ます(Wave の Stagger を文字数から決める、といった用途)

レイアウト

点は等幅で横一列に並び、列全体の中心が原点になります。Spacing(既定1)が隣り合う文字の間隔です。全角文字は等幅で揃いますが、欧文は字幅を見ずに同じ間隔で並ぶので、詰め具合は Spacing で調整します。回転は無回転、スケールは等倍、色は白で出力され、位置以外の変化は後段のノードの仕事です。

Font

ドロップダウンで選びます。既定の Auto は日本語が出るフォントを自動で探します。それ以外は同梱フォントとOSにインストール済みのフォントが並びます。本文かフォントを変えたときだけ文字が焼き直されます。

Material 出力

Material は「その点が何文字目か」に応じた字を貼るマテリアルです。CopyToPoints の Mesh に板(Primitive の Quad)、Points にこのノードの PointCloud、Material にこの出力を繋ぐと文字列が並んで表示されます。両面描画・アルファ合成で、字のない部分は透過します。SceneRepeat でコピーを増やした場合、各コピーは文字列を先頭から引き直します。

入力ポート

Port ID型
Textstring
Spacingfloat

出力ポート

Port ID型
PointCloudPointCloudOutput
MaterialMaterialOutput
Countint

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

パス型
textInputstring
spacingInputfloat
textValuestring
fontNamestring

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

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

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