Notifications
Article
【Unity Playground】RPGマップ上のカメラ追従を誰でも簡単に実現できる、Camera FollowコンポーネントのUse Boundsの上手な使い方
Updated 15 days ago
204
0
Unity Playgroundのコンポーネントの中に、特定のターゲットをカメラで追跡する「Camera Follow」というものがあります。その中に「Use Bounds」というパラメータがあります。これをうまく使うと、RPGでよく見かけるマップ上のカメラ追従を実現することができます。この記事はUse Boundsのパラメータの使い方や気を付けるべき点を紹介します。

まずは結論

Camera FollowのUse Boundsを使う際は以下のことを肝に銘じましょう。
白い線の四角=画面描画範囲は 黄色線の四角=カメラ追従範囲の中に収まるよう、CameraのFrame SizeとCamera FollowのUse Boundsの値を設定しましょう

Camera Followコンポーネントのおさらい

リファレンスを見るとこう書かれています。
Use CameraFollow on a GameObject that has a Camera component. This is useful for action adventure games where the camera is centred on the Player. Assign a moving GameObject in the scene as the Target.
CameraFollow(カメラ追従)スクリプトを使うGameObjectではCameraコンポーネントを持ちます。このスクリプトは、プレイヤーを常にカメラの中央で映すようなアクションゲームに役立ちます。シーン内で動くGameObjectをTargetとして割り当てます。
これを設定すると、カメラは常にTargetにしたゲームオブジェクトを画面の中心にするようにします。ゲームオブジェクトが動いても、ゲームオブジェクトは画面の中心のままです。なので背景が変わらないと、捜査しているゲームオブジェクトが動いているか分かりません。何かしらの背景を置いてセッティングするとよいでしょう。
ちなみにUnity Playgroundの中にあるサンプルプロジェクト「Roguelike」でもCamera Followを使っています。

Use Boundsパラメータの使い方

さてCamera Followコンポーネントには Use Bounds というパラメータがあります。"Bounds"とは"長方形"のこと。つまり、「カメラの追従範囲を長方形にする」という意味です。
Use Bounds にチェックを入れると、こんな感じで黄色い線で囲われたはずです。これがカメラの追従範囲です。たとえば、カメラがゲームオブジェクトを追従しているうちに黄色い線の端まで来た場合、そこから先はカメラはゲームオブジェクトを追従せず、ゲームオブジェクトも画面の中心から外れます。
たとえばサンプルプロジェクト「Adventure」は Use Bounds を設定しているので、ゲームフィールドの端に来るとゲームオブジェクトは中心から外れます。
こういう演出は、RPGのマップでよく使いますよね。つまり、マップの端に行っても主人公キャラが画面の真ん中だと、画面面積の半分くらいは何もない真っ暗な部分になってしまいます。なので、このような処理をするわけです。
上の画像でも分かるように、Use Bounds の範囲はマップのサイズと同じくらいにすると良いです。そうすると期待したカメラ追従になります。
そしてもうひとつ注意してほしい点。それはカメラ描画している範囲より小さいカメラ追従範囲を設定しないこと。言い換えると、白い線の長方形よりも黄色い線の長方形は小さくしない、ということ。
これでプレビューすると・・・
・・・こんな感じでよく分からない動きになってしまいます。まあ、当然と言えば当然ですが、気にしていないと「あれ、なんでこうなるの?」と分からなくなってしまうので、しっかり押さえておきましょう。
もう一度言いますが、白い線の四角=画面描画範囲は 黄色線の四角=カメラ追従範囲の中に収まるよう、CameraのFrame SizeとCamera FollowのUse Boundsの値を設定しましょう、ということです。
最後に、操作するゲームオブジェクトが画面の端に行っても、そこでゲームオブジェクトが止まるということはありません。そのまま操作するとゲーム画面の外側に飛び出てしまうので、Colliderで壁を作るなどしてゲームオブジェクトが外に出ないようにしないといけません。そこはこのCamera FollowのUse Boundsで設定するものではないので勘違いしないようにしてください。

インフォメーション

親子でUnity Playground教室が開催されます

4月30日(火・祝)にLITALICOワンダーさんとの協力で、Unity Playgroundを使った「Unity親子ワークショップ」をUnity Japanのオフィスで開催します。くわしくはこちらをどうぞ。

Unity Playgroundの日本語ドキュメント

ここに用意しています。

Unity Playgroundで困ったら

ひとまず Unityお学びグループ で質問してください。

tamtam
Community Evangelist - Marketer
13
Comments