3Dゲームのカメラの話

この記事は、AmusementCreatorsアドベントカレンダー2018 16日目の記事です。

こんにちは、Bunnyです。Unityで3Dゲームを作っていて、カメラについていろいろと調べたりしたのでまとめようと思います。いろいろなカメラワークをUnityで簡単に実装してどんな場面で役に立つのかを考えてみました。他のエンジンでも多分同じような事ができるかと思います。

カメラの位置と回転を固定

youtu.be

カメラの位置と回転を固定する方法です。最近のゲームではあまり見なくなった印象があります。視点が固定されるために、自由に動き回れるようなステージには向いていないです。移動範囲が限られる室内のシーンなどで有効であると思います。

パンカメラ(位置固定で回転)

www.youtube.com

カメラの位置を固定し、プレイヤーなどの特定のオブジェクトの方を常に向くように回転させる方法です。プレイヤーが近づき遠ざかる様子を見せることができるほか、きれいな景色へとガラッと変わるようなシーンや、曲がった部屋構造の角にカメラを配置する場合などに役立つかと思います。動画はUnityのLookAt関数を使って簡単に実装しています。

後ろからプレイヤーを追従するカメラ

www.youtube.com

カメラが後ろからプレイヤーを追従するように動く方法です。上の動画は、カメラをプレイヤーの子コンポーネントにしただけの簡単な実装です。非常に多くのゲームがこの形態のカメラ方式を採用しています。ステージやキャラクター位置が頻繁に変わるアクションゲームにおいて、このカメラの挙動は非常に重要であり、そのあり方も様々です。上の動画の実装だと、プレイヤーの動きとカメラの動きが完全に連動するため、酔いやすいなどの欠点があります。

youtu.be

視点移動はいろいろな方法があり、例えばマウスの位置に応じてカメラの方向を変える(FPSでよく見る)、線形補間を使ってゆったりと追従することで酔いを軽減させる、などなど色々なことが出来ます。上の動画はStandard AssetsのFreeLooKCameraRigを使ったものになります。

まとめ

 簡単な実装をまとめてみましたが、作るゲームによって必要になるカメラの要件は変わってくるため万人向けのものを書くことは難しいと感じました。上に動画で上げた例は非常に簡単に作れるものなので、是非試してみてください。これからゲームを作ろうと思っている方の参考になれば幸いです。次はPostEffect周りとか書きたいですね。

 

この作品はユニティちゃんライセンス条項のもとに提供されています。