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

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

【Unity】CinemachineカメラをSplineに沿ってターゲットと並走させる。(Cinemachine 3.x版)

健康診断

会社から年に一度の健康診断のお知らせが来て恐怖におののいている不摂生な皆さんこんにちは。健康診断を受診するたびに「これから減量頑張ろう」と心に誓うのに年を跨ぐとなぜか綺麗さっぱり忘れて、健康診断の通知が来ると日ごろの不摂生を後悔するというパターンを繰り返しているはきっと何かのデバフに掛かっている所為だと思います。お祓いにでも行こうかな。

 

大阪インディーゲームサミット

先日東京ゲームダンジョンに出展したばかりですが、この度10月に大阪で開催される「OSAKA INDIE GAMES SUMMIT 2025」への出展が決まりました、ありがとうございます。

funky802.com

自身初の関西圏での出展となります。この展示会自体も初開催という事でどんな感じになるのか分かりませんが、他の出展予定作品を見るとレベルの高そうな作品ばかりなので東京の展示会と同様に盛り上がる事でしょう。この展示会に向けた新ステージも作成中なので多くの方に楽しんでいただけるように頑張りたいと思います。
10/4~5にコングレスクエア グラングリーン大阪で開催され、10/4はビジネスデーで10/5が一般デーとなっています。

 

Cinemachineカメラ

前回の記事で取り上げた通りUnityのカメラ制御用パッケージ「Cinemachine」は現行の3.x版からクラス名やIF、関数の仕様やらが大幅に変わっています。

docs.unity3d.com

特に指定したターゲット(GameObject)を絶えずカメラの画角内に収めながら位置や向きを自動で更新するような設定については、位置と回転(向き)それぞれで独立したコンポーネントになったので戸惑う人も多いのではないでしょうか。

今回はCinemachine 3.x版を使って移動するターゲットを撮影しながらSplinesに沿ってCinemachineを移動させる設定を行います。

 

例として鳥のオブジェクトとCinemachineカメラを用意

二つの楕円系のSplineで鳥が内側、Cinemachineカメラが外側のSplineを使用するとします。

 

Cinemachine Spline Dolly

CinemachineカメラをSplineに沿って移動させるには「Cinemachine Spline Dolly」コンポーネントを使用します。

メニューのGameObjectから Cinemachine > Dolly Camera with Spline を選択すると自動的に「Cinemachie Spline Dolly」コンポーネントがアタッチされたCinemachineカメラが作られます。

既に存在するCinemachineカメラを使用する場合は「Cinemachine Spline Dolly」コンポーネントをアタッチします。

ターゲット(鳥)を画角内で撮影するため「Cinemachine Camera」のTracking TargetにターゲットのTransformを指定し、次に「Rotation Composer」をアタッチします。

自動でターゲットを画角内に収めるようになります。

 

追尾設定

ターゲットを追尾して動くにするにはCinemachie Spline Dolly」コンポーネントの「Automatic Dolly」のチェックをONにします。追尾の手法は二種類あり

  • Nearest Point To Target:Tracking Target と 軌道の範囲内で最も近い点に自動で移動します。
  • Fixed Speed:設定した速さで軌道上を移動し続けます。

となっています。

「Nearest Point To Target」を指定するとカメラの軌道上でターゲットからの距離が最短となる位置を計算して動くため、ターゲットが動くと自動的に並走が始まり、ターゲットが停止すると合わせてカメラの並走も停止します。

ターゲットからの距離を絶えず計算しているせいかあまりスムーズではない感じがします。

 

「Fixed Speed」を指定するとゲーム開始と同時にカメラが勝手に動き出す為、起動時はenabledのプロパティをfalseにして置き、スクリプト側で必要なタイミングにenabledをtrueにしないといけません
また、一度enabledをtrueにするとずっと動き続けるため、停止するには再度プロパティの値をfalseにします。

 

しかしながら、こちらの設定の方が移動がスムーズなようです。

先ほどのプロパティの操作や速度の調整など手間が掛かるので「Nearest Point To Target」とどちらの設定を使うかはケースバイケースで使い分ける必要があるようです。

 

◇プライバシーポリシー

●個人情報の利用目的

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

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

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

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

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

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

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

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

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

●免責事項

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

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

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

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

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

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