Text 3D

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

文字列を書体のベクタアウトラインのまま輪郭にして Z 方向に押し出し、Mesh として出力します。Image Extrude の兄弟ですが画像を通らないので解像度の設定がなく、曲線の細かさは Detail で決めます。Mesh は Mesh RendererCopyToPoints に繋いで描画します。メッシュは文字列全体の外接矩形の中心が原点で、前面(既定カメラ側)が z のマイナス側です。

計算はフレームを止めずに裏で行われ、本文・フォント・パラメータのどれかが変わったときだけ焼き直します(Live/Bake の切り替えはありません)。本文は Text ポートのほか、ノード上のテキスト欄に直接打てます。欄の中で Enter を押すと改行になり、行ごとに配置されます。重なった文字(斜体や字間を詰めた場合)は 1 つの塗り領域として結合されます。

ノード上の設定

  • テキスト欄 — 本文。Text ポートに接続すると、そちらの値が本文になります
  • Font — 書体のドロップダウン。Auto(既定)は日本語が出る書体を OS から自動で選びます。Refresh Fonts で起動後にインストールした書体を拾い直します。Font ポートに書体名の文字列を流しても選べます
  • Left / Center(既定)/ Right — 行の揃え。メッシュ全体は常に中心に置かれるので、効くのは複数行のときの各行の位置です

ポートの補足

  • FontSize — 1 文字(1 em)のワールド単位での大きさ(既定5、下限0.01)
  • Depth — 押し出しの厚み(既定1)
  • Bevel — 前後の縁の面取り幅(ワールド単位、既定0 = 面取りなし)。細い部分で面取りが破綻する文字は幅が自動で縮められ、ステータスに「面取りを縮めた輪郭N本」と出ます
  • Bevel Segments(ノード上の表示は Segments)— 面取りの分割数。1〜8にクランプ(既定1)。1 は 45° の平らな面取り、2 以上で丸い面取り
  • LineSpacing — 行送りの倍率(既定1 = 書体の行間そのまま)
  • LetterSpacing — 字間。1 em に対する倍率で、0.1 なら文字と文字の間が 1 文字幅の 10% 開きます(既定0、負値で詰まります)
  • Detail — 0〜1にクランプ(既定0.5)。曲線 1 本あたりの分割数(0 で 2 分割、1 で 16 分割)
  • FrontFace / BackFace(表示は Front Face / Back Face)— 前面・背面の蓋を張るか(既定 両方 ON)。両方 OFF で文字の輪郭だけの筒になります

輪郭の点数は合計 16384 点までで、超えた分は均等に間引かれます。

ステータス行には「Baking…」「N polys / M verts」のほか、本文が空なら「Text が空」、書体が解決できなければ「フォント無し」が出ます。1 つの書体に無い文字は豆腐(四角)になります。縦書き・合字には対応していません。

入力ポート

Port ID
Textstring
Fontstring
FontSizefloat
Depthfloat
Bevelfloat
Bevel Segmentsint
LineSpacingfloat
LetterSpacingfloat
Detailfloat
FrontFacebool
BackFacebool

出力ポート

Port ID
MeshMeshOutput

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

パス
textInputstring
fontInputstring
fontSizeInputfloat
depthInputfloat
bevelInputfloat
bevelSegmentsInputint
lineSpacingInputfloat
letterSpacingInputfloat
detailInputfloat
frontFaceInputbool
backFaceInputbool
textstring
fontNamestring

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

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

このページへのリンク

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