タイトル画面で放置した際に、アーケードゲームなどでよく見るNPC同士の対戦が行われるいわゆる「デモシーン」を実装しました。
・タイトルシーンへ戻るボタン入力待機
・NPCを2体生成して敵対させる
・2体をカメラで追う
処理的には以上な感じですが、2体をカメラで追う処理が手間食いました。
カメラ制御はUnityのCinemachineを使っています。
Cinemachine Target Groupという機能で、複数対象をまとめて画面内に収める事ができます。たまに1体のみをカメラで追うのは、グループ内の対象重み付けを一定時間で変更しているためです。
さらに注視点がビルの影に隠れたりした際にカメラが地形に埋まったりしないように、Cinemachine Clear Shotという機能を使います。
これはCinemachine用カメラと対象の間に障害物が挟まった際に、ClearShotの子としてセットされている対象を映せるカメラに自動的に変更してくれる機能を持っています。
これが手ごわかった。まずClearShot用カメラに登録されるのはオブジェクト階層的に子であるカメラが「自動的に」登録される点。どうにも手動で入れられないとおもっていたらそういう・・・
あとは登録されているカメラがことごとく対象を映せない場合、結局もとのカメラに戻ってくる点。カメラで映せなくなる状況・その時に映せるカメラの位置、などを検証・想像してそれに対応できるカメラ配置を行わなければいけませんでした。たぶんまだまだ漏れがあります。
体験版を配信するまでに残すタスクは
・チュートリアルミッション
・機体名パイロット名登録
・アリーナメニュー
・クレジット表記
最低限これらが必要です。が、そろそろ見え始めました。