ジオメトリノード使用
矢印は別オブジェクトで、伸びる部分は、ベジェ曲線カーブで、タイムラインでアニメーション,以下は、赤と透明になっている矢印アニメーション。動画は、赤と白でMixノードを使用しているので、後日そちらを参考にしてください
考え方は、Instance On Pointsに矢印オブジェクトを配置していく。つまり、伸びるカーブのポイントに矢印オブジェクトを移動させている。なお、カーブ形状は、断面をカーブで作成することで、ノードをObjectInfoに変更することで差し替え可能(ただし、現在のCurveCircleを消してからObjInfoに変える必要はある)
画像に含まれているジオメトリノードの構成一覧です。データの流れに沿って、大きく4つのセクションに分けて記載します。
マテリアルによって、赤と透明に分けている。Alfaが透明になる。
### 1. 入力と分岐 (Input & Trim)
大元のカーブを入力し、アニメーション用に長さを調整する部分です。
* **Group Input**
* `Geometry` 出力を **Trim Curve** へ。
* **Trim Curve**
* モード: `Factor`
* `Start`: 0.000 / `End`: 1.000
* `Curve` 出力は、先端用(**Instance on Points**)と胴体用(**Resample Curve**)の2つに分岐します。
---
### 2. 矢印の先端生成 (Arrowhead Instancing)
カーブの終端にコーン(矢印の先)を配置し、向きをカーブに合わせる部分です。
* **Endpoint Selection**
* `Start Size`: 0 / `End Size`: 1 (終点のみを選択)
* `Selection` 出力を **Instance on Points** へ。
* **Object Info**
* モード: `Relative`
* オブジェクト: `Cone`
* `Geometry` 出力を **Instance on Points** の `Instance` へ。
* **Curve Tangent**
* `Tangent` 出力を **Align Rotation to Vector** の `Vector` へ。
* **Align Rotation to Vector**
* 軸: `Z` / Pivot: `Auto`
* `Factor`: 1.000
* `Rotation` 出力を **Instance on Points** へ。
* **Instance on Points**
* `Scale`: X 1.000, Y 1.000, Z 1.000
* `Instances` 出力を **Join Geometry** へ。
---
### 3. 矢印の胴体生成 (Arrow Body Meshing)
カーブに厚みを持たせてメッシュ化し、マテリアルを割り当てる部分です。マテリアル(シェーダー)側で破線(dash)などを表現するための属性も保存しています。
* **Resample Curve**
* モード: `Count`
* `Count`: 22
* `Curve` 出力を **Store Named Attribute** へ。
* **Spline Parameter**
* `Length` 出力を **Store Named Attribute** の `Value` へ。
* **Store Named Attribute**
* データ型: `Float` / ドメイン: `Point`
* 名前: `dash`
* `Geometry` 出力を **Curve to Mesh** へ。
* **Curve Circle**
* モード: `Radius`
* `Resolution`: 12 / `Radius`: 0.1 m
* `Curve` 出力を **Curve to Mesh** の `Profile Curve` へ。
* **Curve to Mesh**
* `Fill Caps`: チェックあり
* `Mesh` 出力を **Set Material** へ。
* **Set Material**
* マテリアル: `Nobiru`>>赤と透明(アルファ)の設定を読み込む
* `Geometry` 出力を **Join Geometry** へ。
---
### 4. 結合と出力 (Join & Output)
生成した先端と胴体を結合して出力する部分です。
* **Join Geometry**
* **Instance on Points** と **Set Material** からの入力を結合。
* `Geometry` 出力を **Group Output** へ。
* **Group Output**


