【Unity2022】スプラインツールの導入方法と使い方

Unityでスプライン曲線を簡単に扱う方法はないの~?

Unity 2022.1以降なら、Unity公式のスプラインツールが使えるわ!

Unity 2022.1 TECH ストリームがリリースされてから、Unity公式のスプラインツールが使えるようになりました。

Unity 2022.1以降では、次のようなことがサードパーティー製アセットなしで実現できます。

スプラインツールで出来ること
  • ベジェ曲線、Catmull-Rom曲線などを作成する
  • 曲線に沿ってオブジェクトを動かす
  • 曲線に沿ってオブジェクトを配置する
  • 曲線を描画する

参考:Splines | Splines | 1.0.1

Unity 2021 LTS以前では、これらのスプラインツールが使用できないことに注意する必要があります。 [1]

本記事では、ビルトインのスプラインツールの導入方法基本的な使い方について解説していきます。また、スプラインに沿ってオブジェクトを動かす方法も紹介します。

動作環境
  • Unity 2022.1.0f1
  • Splines 1.0.1

スポンサーリンク

前提条件

Unity 2022.1以降のUnity EditorでUnityプロジェクトが作成され、開かれているものとします。

本記事では、スプラインツールをインストールする手順から解説していきます。

Splinesパッケージのインストール

スプラインツールを使用するために、Splinesパッケージをインストールします。

トップメニューのWindow > Package Managerの順に選択し、Package Managerウィンドウを開きます。

ウィンドウ左上の+アイコン横のリストからPackages: Unity Registryを選択し、パッケージ一覧からSplinesを選択し、右下のInstallボタンをクリックします。

インストールが終わりチェックマークが付いたら成功です。

サンプルのインストール

必須ではありませんが、スプラインツールの実装サンプルを閲覧したい場合、Samples下のImportボタンからサンプルデータをインポートできます。

追加すると、UnityプロジェクトのAssets/Samples/Splines/[バージョン番号]ディレクトリ配下にサンプルデータが追加されます。

サンプルシーンはAssets/Samples/Splines/[バージョン番号]/Spline Examples/Scenesディレクトリ配下から参照できます。

スプライン曲線の作成

スプライン曲線を作成するために、まずスプライン情報を持ったゲームオブジェクトをシーンに配置します。

トップメニューのGame Object(またはヒエラルキーの+アイコン) > 3D Object > Spline > Draw Spline Tool…の順に選択します。

注意

2022/5/15現在、公式リファレンスとメニュー位置が異なっているためご注意ください。Splines 1.0.1時点では上記の場所から選択できるようになっています。

すると、パス編集モードとなり、スプラインのポイントを左クリックで配置できるようになります。

曲線にしたい場合は、マウス左ボタンのドラッグ操作で曲率を調整できます。

編集モードはEscapeキーで解除できます。

Tips

Draw Spline Tool…ではなく、SquareCircleを選択すると、予め作成されたパスのスプラインオブジェクトが配置されます。

既存のゲームオブジェクトにスプラインを適用する

Splineコンポーネントをアタッチすると適用できます。

該当するゲームオブジェクトを選択し、インスペクタのAdd ComponentボタンよりSplineコンポーネントを追加してください。

注意

2022/5/14現在、公式リファレンスでは、Spline Containerコンポーネントを追加することとなっていますが、インスペクタから追加する場合はSplineオブジェクトとなっている事にご注意ください。 [2] また、スクリプトからコンポーネントにアクセスする際は、SplineContainerクラスとなります。

編集の基本操作

スプラインオブジェクトを選択し、シーンビューの以下曲線アイコンをクリックすることで編集モードのON/OFFを切り替えられます。

また、以下ボタンでポイントに対する操作方法を選択できます。

上から順に次の操作ができます。

手アイコンビューモード。ポイントを選択したり編集はできない。
移動アイコン選択したポイントを移動させる。
回転アイコン選択したポイントを回転させる。
拡大アイコン選択したポイントを拡大させる。
追加アイコンポイントを新たに追加する。
Tips

スプラインのポイントは、複数選択して一括操作できます。

スプラインのプロパティ設定

スプラインオブジェクトを選択すると、インスペクタのSplineコンポーネントから各種設定ができます。

インスペクタから設定できる項目は次の通りです。

Edit Mode Typeスプラインの曲線の種類。ベジェ曲線Catmull-Rom曲線直線から選択可能。
Knotsスプラインの各ポイントの位置や回転等。ベジェ曲線の場合は方向点も設定可能。
Closedスプラインの始点と終点を繋げて曲線をループさせるかどうか。

参考:Spline Container | Splines | 1.0.1

注意

Edit Mode TypeをBezier以外にすると、方向点の情報が変わってしまうのでご注意ください。

スプラインに沿ってオブジェクトを移動させる

Spline Animateを使うと、スプラインに沿ってオブジェクトを動かすことができます。

参考:Class SplineAnimate | Splines | 1.0.1

次のようなキューブを動かすものとします。

動かしたい対象オブジェクトを選択し、Add ComponentボタンよりSpline Animateコンポーネントを追加します。

すると、次のようにインスペクタ上にSpline Animateの設定項目が表示されます。

この中で設定必須の項目は、一番上のSplineとなります。ここに動く経路となるスプラインオブジェクトをアタッチしてください。

実行結果

パスに沿って動くようになります。

なお、オブジェクトは等速で動くように速さ調整されています。ポイントによって速さが変わってしまう動きにならないことが特徴です。

動きの調整

スプライン上の動き方は、インスペクタの各種項目で設定します。

向きの設定(Animated Object Setup)

以下項目でオブジェクトがどちらに向きながら動くかを設定できます。

Up Axis上向きとする軸。6方向から指定可能。
Forward Axis前方とする軸。6方向から指定可能。
Align To回転方法を指定する。4種類のパターンから指定可能。

Align Toは、以下の4パターンから選択できます。

None全く回転しない。
Spline Elementスプラインの向きに沿って回転する。進行方向に向かせたい場合に指定する。
Spline Objectスプラインのゲームオブジェクトの向きに沿って回転する。
Worldワールド空間基準で回転する。

移動の設定(Movement)

以下項目で、オブジェクトの移動に関する設定を行います。

Play On AwakeAwake時に自動再生するかどうか。チェックが入っていたら再生。
MethodTimeなら一周どれくらいかかるか(Duration)を指定、Speedならどれくらいの速さ(Speed)で移動させるかを指定する。
Easeイージング方法を指定する。
Loop Mode終端まで到達したときの繰り返し方法を指定する。

Easeでは、以下4パターンから選択可能です。

None開始・終了ともにイージングしない。急に動き、急に停止する。
Ease In Only開始時だけ緩やかに動く。
Ease Out Only終了時だけ緩やかに動く。
Ease In-Out開始・終了ともに緩やかに動く。

Loop Modeでは、次の4パターンを指定できます。

Once終端まで到達したら止まる。
Loop Continous終端まで到達したら、最初に戻って移動を繰り返す。
Ease In Then Continous最初の一周の動き出しだけ緩やかに加速し、その後は一定速度で繰り返す。EaseEase In OnlyまたはEase In-Outが指定されていないと機能しない。
Ping Pong始点と終点を往復する動きになる。

調整後の実行結果

出だしだけ緩やかに動き、速さ20で動くようにした例です。

動きは次のようになります。

さいごに

Unity公式のSplinesパッケージを導入して、スプライン曲線を作成したり、曲線に沿って動かす方法を解説しました。

ほかにも、スプラインに沿ってオブジェクトを配置したり、スプラインを描画したりすることも可能です。

また、スクリプトからスプライン情報のやり取りすることで、活用の幅が広がります。スクリプトとの連携方法については、以下記事をご覧ください。

【Unity2022】スプラインをスクリプトから扱う方法
Unity公式のビルトインスプラインツール(Splinesパッケージ)で作成したスプラインをスクリプトから読み書きする方法の紹介です。 これらの情報は以下公式リファレンスにまとめられています。 スプラインとスクリプトを連 ...

参考サイト

スポンサーリンク