UV Project

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

入力 Mesh の頂点・法線・三角形はそのままに、UV だけを投影で作り直して Mesh を出力します。Text 3DImage Extrude のメッシュは蓋が元画像の UV、側面が周長の UV になっているので、SpriteMaterial で映像を貼るとそのままでは意図した絵になりません。このノードを間に挟んで UV を作り直します。

投影の基準はメッシュ自身の外接矩形です。Font Size や文字数で位置・大きさが変わっても、形が同じなら同じ貼り付きになります。計算は入力 Mesh が変わったとき(上流の焼き直しを含む)とパラメータを変えたときだけ行われます。

投影モード(ドロップダウン)

  • Planar — Axis の方向から平面投影。残りの 2 軸が U・V になります
  • Box(既定) — 頂点法線がもっとも向いている軸の平面投影を面ごとに選びます。裏向きの面は左右を反転して、隣の面で鏡像にならないようにします。法線を持たないメッシュでは Z の Planar と同じになります。Axis は使いません
  • Cylinder — Axis を軸に、軸まわりの角度を U、軸方向を V にします。継ぎ目(U が 0 と 1 で折り返す線)は既定カメラの裏側、Axis が Z のときは下側(-Y)にあります
  • Sphere — 外接矩形の中心からの方向で緯度経度を取ります。継ぎ目の位置は Cylinder と同じ

Axis(X / Y / Z、既定 Z) は Planar の投影方向、Cylinder / Sphere の軸です。Cylinder / Sphere では継ぎ目をまたぐ三角形の頂点が複製されるため、出力の頂点数が入力より増えることがあります。

ポートの補足

作り直した UV に、中心基準の拡縮 → 回転 → オフセットの順で変換が掛かります。順番と回転の向きは SpriteMaterial 側の UVOffset / UVScale / UVRotate と同じです。毎フレーム動かすスクロールやタイリングはマテリアル側で行い、ここは変化時だけ計算するノードです。

  • UVScaleX / UVScaleY(ノード上の表示は Scale X / Scale Y)— UV の倍率(既定1)
  • UVOffsetX / UVOffsetY(表示は Offset X / Offset Y)— UV のずらし(既定0)
  • UVRotate(表示は Rotate)— UV の回転(度、既定0)

プレビュー

ノード上のプレビューはチェッカー模様を貼って回転表示します。UV Layout トグルを ON にすると、UV 空間(0〜1 の範囲をチェッカーで表示)に三角形の辺を並べた展開図に切り替わり、伸び・鏡像・継ぎ目・0〜1 からのはみ出しが読めます。

読み取り不可(Read/Write が無効)なインポート済みメッシュは UV を作り直せないため空の出力になり、コンソールに警告が 1 回出ます。

入力ポート

Port ID
MeshMeshInput
UVScaleXfloat
UVScaleYfloat
UVOffsetXfloat
UVOffsetYfloat
UVRotatefloat

出力ポート

Port ID
MeshMeshOutput

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

パス
scaleXInputfloat
scaleYInputfloat
offsetXInputfloat
offsetYInputfloat
rotationInputfloat
showUVLayoutbool

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

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

このページへのリンク

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