Unityでカメラの設定とキャラクターの追従をさせる

記事内に広告が含まれています。

今回はUnityのカメラの設定とカメラがキャラクターを追従するやり方についてやりたいと思います。

カメラはシーンに配置した物(人を含む)を表示する為にあります。ゲームの画面を見ている所ですね。

カメラは最初の位置に固定されるわけではなく、自由に移動させたり表示範囲を制限する事が出来ます。

アクションゲームでよくある視点の切り替えはカメラを切り替えてるんですね。

3Dではなく2Dゲーム等でカメラの切り替えをしようと思ったら、その視点の絵を描き直さないといけないという事を考えたら、3Dってものすごく便利ですよね(^。^)
(ここで言う2Dゲームとは昔のドット絵を描いて見た目を作るゲームの事です)

スポンサーリンク

カメラの設定をいじってみる

まずは最初から設置してあるMain Cameraのパラメータを変更して、カメラの機能を確認してみます。

まずは普通の状態が下画面です。

普通の状態のカメラ

カメラがキャラクターから少し遠いのでキャラクターに近づかせます。

Main CameraのPositionの値Zを-10から-5にして、カメラを移動します。

カメラをキャラクターに寄せる

上画面のようにキャラクターにカメラが近づきました。

カメラが固定視点の場合もありますが、キャラクターが移動する方向にカメラを移動したい事もあります。

そこで、カメラがキャラクターに付いていくようにしてみます。

カメラがキャラクターを追従する機能の取り付け

それでは、キャラクターにカメラが付いていく機能をつけてみます。

カメラにコンポーネントを取りつける

上画面のようにMain Cameraを選択し、そのインスペクタ上でAdd Componentをクリックする。

そこからScripts→UnityStandardAssets.Utility(スタンダードアセットがインポートされていない場合はアセットストアからインポートしてください)とし

smoothfollowスクリプトを取りつける

上画面のようにSmooth Followを選択します。

smoothfollowのパラメータにmasasi君を設定

Smooth Followが追加されたら、「masasi」君をtargetにドラッグ&ドロップします。

これでカメラが「masasi」君を追いかけるようになります。

Unityの実行ボタンを押してみましょう。

「masasi」君が動く場所にカメラがついていくようになりました!

カメラが見ている位置を調整する方法

しかし、カメラがずいぶん遠いですね、パラメータを調整して近づけます。
distanceが距離を表しているので距離を縮めてみます。

頭の後ろから覗くような視点を作りたいので、Distanceを2として近づけてみます。

カメラが足元を見てしまう

上のように足元の部分を見てしまってうまくいきません・・・。

Smooth FollowのDistanceがMain CameraのPositionに影響を与えるんですが、Heightの方は指定しても変化が起こらないので、Main Camera自体のPositionのY値を修正する必要があるみたいです。

しかし、それを調整してもなんだか思っていた視点にはなりません。
この原因はTargetが「masasi」君になっているせいだと思われます。

「masasi」君のPositionの基準が足元になっているせいです。

そこでTargetをちょっと変更してみます。

カメラが見るポイントをキャラクターの子要素に作成する

上のように「masasi」君を選択し、Create Emptyを選択します。

するとmasasi君の階層の下に空のゲームオブジェクトができるのでその名前を「LookAt」と変更しPositionを変更します。

Positionの変更の際にはGameタブからSceneタブに変更しておくと「LookAt」の位置がどこかわかりやすいです(キャラクターの階層で特定の場所の位置を確認したい時はSceneタブに切り替えます)。

頭の上当たりに位置を調整します。「LookAt」は「masasi」君の子要素になるので、「masasi」君を基準としたPositionの位置(相対値)になります。

カメラが見る位置を調整する

最終的にMain CameraのPositionのY値を0.5、Smooth FollowのDistanceを1.5にしてみました。

下が実行した結果になります。

カメラがキャラクターが追従する事を確認する

これでアクションゲームのよくある視点の作成が出来ました!

キャラクターに視点が近すぎる場合もMain CameraのPositionとSmooth Followの距離、「masasi」君に設定した見るポイント(LookAt)の調整をする事によって変えられます。

Smooth Followを使いましたが、Follow Targetを使うともっと簡単に出来ました。

followtargetスクリプトを使う

上の赤丸のように調整値を入れます。
単純なカメラの追従はこちらの方が簡単ですね。

次回はサブカメラについてやってみようかと思います。

タイトルとURLをコピーしました