
配賦物
一歩も外へ出なかった夏休み明け、久しぶりに出社した会社で配られるお見上げ品の数々を目の前にして心苦しさと一抹の後悔を覚える小心者の皆さんこんにちは。もはや見透かされたかのように「夏休みはどこかへ行きました?」という質問さえされません。いや逆に、あの大雨と猛暑が続く中で外へ遊びに出かけた人たちがいることの方が驚きです。
机上のモニターで遊ぶべきゲーム
全く事前情報を持たずに、Youtubeでたまたま流れてきたPVに一目ぼれしてゲームを購入しました。

クオータービュー視点のステルスゲームです。
北欧風の架空の街エリクスホルムで警官らに追われながら失踪した弟を探す少女が主人公。追っ手の視線を建物の蔭に隠れてかわしながらチェックポイントまで向かう事が主なプレイ内容ですが、途中で吹き矢を使って敵を眠らせたり、味方のキャラクターと操作を切り替えてギミックを解除したりとパズルアクション的な要素が多く含まれています。
敵に見つかると即ゲームオーバーとなりますがチェックポイントが細かく設置されているのでリスタートしやすくてストレスはないです。

上のように細部のオブジェクトまで陰影が綺麗に表示された映像は美しい反面、ゲーム機をリビングのTVに接続したような環境(モニターから離れてみる環境)ではちょっと見づらいです。
私はPS5に4K対応のTVモニターを繋げてプレイしましたが画面から離れるとキャラクターが小さく操作しずらくなるため、ずっとTVの近くに席を陣どって遊んでいました。リビングのTVではなく机上のモニターで遊ぶべきゲームです。
しかしステルス要素、グラフィック、シナリオ、世界観とどれもレベルが高くまとまっており、俯瞰視点の美麗なグラフィックスによるゲーム体験は今後のステルスゲームの新たなフレームワークとして活用されそうですね。
Cinemachine3
Unity公式からリリースされている「Cinemachine Camera」というパッケージはゲーム内での必要なカメラワークを簡単な設定で作成できる便利なパッケージで、以前から使用している方も多いと思いますが、Cinemachine Cameraの2.x版から3.x版へのアップデートに伴いIFや仕様等が大幅に変わっているため、制作中のプロジェクトで2.x版を使用していて何も知らずに3.x版へアップデートしてしまうとエラー等が発生して右往左往する事になります。
特にカメラを制御するためのクラス名が2.x版までの「CinemachineVirtualCamera」から「CinemachineCamera」へ変更されているため、スクリプトでそのクラスを使用しているとCinemachine3.xアップデー後は必ずビルドエラーとなります。
また「CinemachineVirtualCamera」コンポーネントをアタッチされたオブジェクトの方は自動で「CinemachineCamera」コンポーネントに置き換わってくれますが、オブジェクトを追従するFollowやLookAtの設定は別コンポーネントに移行して、それらの設定のIFや名称が大きく変わっています。
名称の主な変更点は以下の通り
- VirtualCamera → CinemachineCamera
- Transposer → Follow
- Framing Transposer → Position Composer
- POV → Pan Tilt
- Tracked Dolly → Spline Dolly
CinemachineCamera
「CinemachineVirtualCamera」から置き換わった「CinemachineCamera」ですが、Inspector上でもこれまでの設定(プロパティ)とは異なる箇所があります。

特に注目すべきはカメラの切り替え等で頻繁に使用する「Priority」の項目がusing defaultのチェックボックスをONにしないとInspector上で変更できなくなっている事です。最初気づかなくて「Priority」が設定できなくなったと勘違いしそう。
また、これまでFollowやLookAtそれぞれで追従対象を指定した箇所は「Tracking Target」に指定し、位置情報の追従はInspector下部のSet Procedural ComponentsのPosition Controlで、回転の追従はRotation Controlで追従方法や距離、角度の指定を行うようになりました。
Position Control/Rotation Control
前述のPosition ControlおよびRotation Controlでプルダウンの中から追従方法を選ぶと、その詳細を設定するためのコンポーネントが自動でアタッチされます。

上の図ではPosition Controlに「Spline Dolly」、Rotation Controlに「Rotation Composer」を指定しています。
■Position Control
- None: カメラをターゲットに追従して移動させない。
- Follow: ターゲットとの距離を一定間隔に保って移動する。
- Orbital Follow: ターゲットに対して可変関係で移動し、オプションでプレイヤー入力を受け入れる。
- Third Person follow: ターゲットの回転に追従して、トラッキングターゲットをピボットポイントで、プレイヤーの周りを水平および垂直に回転させる。
- Position Composer: ターゲットに対して固定された画面空間関係で移動(主に2Dカメラや正投影カメラで使用)
- Hard Lock to Target: ターゲットと同じ位置を保って移動。
- Spline Dolly: スプラインで指定されたパスに沿って移動。
■Rotation Control
- None: カメラをターゲットに追従して回転させない
- Rotation Composer: ターゲットをカメラフレーム内に収めるように、ポジションコントロールとダンピングを行う。
- Hard Look At: ターゲットをカメラフレームの中央に収めます。
- Pan Tilt: ユーザーの入力に基づいて、オプションで カメラを回転させる。
- Same As Follow Target: ターゲットの回転に合わせてカメラの回転を行う。
最後に
Cinemachineはカメラワークを簡単に実装できますが、バージョンアップにより色々と変わると面倒ですね。また、今後Cinemachineについて調べる場合はその記事が2.x版か3.x版に対するものか確認するよう注意してください。