【Unity】スプラインに沿ってインスタンス化する

投稿者: | 2023-12-08

Splinesパッケージを使って、スプライン曲線に沿ってゲームオブジェクトをインスタンス化してみました。

スプラインを作成

Splinesで簡単に曲線を作るでスプラインを作成します。空のゲームオブジェクトに「Spline Instantiate」コンポーネントを追加して、「Container」にスプラインゲームオブジェクトをアタッチします。

アイテムを設定

「Items To Instantiate」は、インスタンス化するプレハブやゲームオブジェクトのリストです。各オブジェクトがインスタンス化される割合を右の「%」に入力します。

向きを指定

「Up Axis」と「Forward Axis」で上と前の方向を指定します。Align Toが「Spline Element」だと空間が近くのノットの方向から計算されて、アイテムの向きが曲線に沿います。

2つのオブジェクトに同じ設定が使われるので、車を揃えると猫が変な方向を向きます。

オフセットを適用

Position Offsetのチェックを入れると、位置を調節できるようになります。

ドロップダウンで「Random」を選択すると、ランダムな値も指定できます。

Override spaceのチェックを入れると、オフセットに使う空間を変更できます。チェックを入れないと、Align Toに指定した空間が使われます。

ワールド空間

「Spline Object」に設定すると、スプラインコンポーネントでなく「Spline Instantiate」コンポーネントを持つゲームオブジェクトの向きになりました。

Spline
Spline Instantiate
Z方向にオフセットを設定

「Instantiated Object」にすると、インスタンス化されたオブジェクトの空間になります。

「Up Axis」で方向が変わりました。

オフセットは回転やスケールにも設定できます。

インスタンス化メソッド

スプライン上にどのようにインスタンス化するかを「Instantiate Method」で指定できます。「Instance Count」にすると、指定した個数がスプライン上に均等に並ぶようです。

ランダムにも設定できます。

「Spline Distance」では、距離を指定して、スプラインに沿って等間隔にアイテムを配置します。

「Linear Distance」では、ワールド空間での直線的な距離を指定できます。

自動リフレッシュ生成

「Auto Refresh Generation」のチェックを切ると、設定を変えても自動で更新されなくなります。更新するには、「Randomize」ボタンを押したり、「Clear」ボタンでクリアした後「Regenerate」ボタンで再生成します。

ベイク

「Bake Instances」ボタンを押すと、一つ一つの生成されたアイテムがゲームオブジェクトになり、「Spline Instantiate」コンポーネントを持つゲームオブジェクトの子として配置されます。

インスタンスをベイクすると「Spline Instantiate」コンポーネントは削除されます。

コメントを残す

メールアドレスが公開されることはありません。