原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】Unity公式のSplineツールが便利

連休

気分はすっかりゴールデンウイークな浮かれ気分の皆さんこんにちは。今年は久しぶりに行動制限のないG.W.となりそうなので旅行やレジャー、スポーツ観戦など色々と予定を立てている方も多いと思います。私は普段通り外出予定は殆どなく大半はお家で過ごす事になりそうですが、今年は自作ゲーム「W.T.」のSteam登録作業をする予定なのでダラダラとしている時間は無いと思います。

 

Splineツール

一部Unity利用者界隈で話題に上がっていましたが、Unity2022からスプライン曲線を簡単に作成できるツールが利用可能となっています。
スプライン曲線とは複数の制御点を設定して、それら全ての制御点を通る滑らかな曲線を描く手法ですが、これを自力で計算しようとすると結構面倒くさく、これまではアセットを購入して曲線を作成していました。

【アセット紹介】Dreamteck Splines でスプライン曲線に沿った移動をさせる【Unity】 - Raspberlyのブログ

が、Unity2022からはSplineツールを導入することで簡単にスプライン曲線を作成することができるようになりました。

 

導入法

メニューのWindow > Package ManagerからPackage Managerを開いて一覧からSplinesを選択、右下のInstallボタンをクリックします。

インストールが完了するとメニューのGameObjectからSplineが選択できるようになるので、そこから Draw Splines Toolを選択します。

すると、Toolギズモにパス編集が追加され、スプラインのポイントを左クリックで配置できるようになります。

Sceneビュー内の適当な箇所を左クリックしていくと自動的に配置した点を全て通るような曲線が描画されます。

描画されたSplineはHierarchy上に「Spline」という名のGameObjectとして作成されます。

 

編集

作成されたSplineはSceneビューで制御点を移動させる事ができます。

 

また、制御点毎に曲線の種類をベジェ曲線、Catmull-Rom曲線、直線から選ぶことができます。(デフォルトはCatmull-Rom曲線)

 

Splineに沿ってオブジェクトを移動させる

作成したSpline曲線に沿ってオブジェクトを移動させることができます。例えば以下のようなペンギンのキャラクターを動かしたい場合

ペンギンのオブジェクトにSpline Animateコンポーネントを追加します。
Spline AnimateのSplineに作成したSplineオブジェクトを指定して、Durationの項目に移動時間を設定します。

Foward Axisの項目にオブジェクトの正面方向と同じ方向を指定しておきます。
これにより移動中のオブジェクトはスプラインの接戦の向きが必ず正面方向になるように自動で回転しながら移動することができます。

Play On Awakeの項目をチェックしておくとゲームプレイ開始と同時に移動を開始しますが、任意のタイミング開始したい場合はこの項目のチェックを外し、スクリプトから任意のタイミングでSplineAnimateクラスのPlayメソッドをコールします。(事前にUnityEngine.Splinesをusing指定する必要あり)
またSplineAnimateにはPauseメソッドも用意されているので、一時停止→再開も難なく行うことができます。

 

最後に

今回はSceneビュー上でDrawツールを使ってSplineの生成を行いましたが、スクリプトからSplineに制御点を追加することでSplineを生成することもできます。
Splineをスクリプトから制御する手法については以下のサイトが参考になります。

nekojara.city

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。