(2023/08/26 追記)
以下の経緯によりソースコードの公開を停止します。大変申し訳ありません。
本キットについて
VR Action Game KitはVRでアクションゲームを作る際に必要な基礎的な近接武器やダメージのシステムを備えたゲーム開発キットです。本キットは以下の特長を備えています。
- Unity社公式アセットを活用した戦闘システム
- 本ツールは再配布が許可されたUnity社の3Dゲーム用の公式アセットを、VRで利用可能なようにカスタマイズしています
- そのため、基本的な近接武器や敵、エフェクトやステージ・ギミックなどを備えています
- VR酔い対策を実装
- コントローラーで移動・視点変更した際に視界を狭くすることでVR酔い対策を実現しています
- 一般的なVR酔い対策としてはワープで移動する方法などがありますが、アクションゲームであることを加味して視界を狭くする方法を採用しています
- モンスターやロボットとの戦闘
- 本キットにはモンスターとロボットの敵が登場します。それぞれの敵にヒットポイントや攻撃力を設定することができます。
- プレイヤーの武器は一定の速度で振らないと攻撃が発生しないようになっており、VRゲーム制作時に起こりがちな「小刻みに武器を振ることで簡単にクリアできる」という問題に対処しています
本キットのサンプルゲームのプレイ動画は以下からご覧頂けます。
本キットは以下から入手可能です。必要な環境についても以下に記載しています。
事前準備
以下の記事に記載しました。
セットアップ
本キットの入手
以下の手順に従って、リポジトリをクローンしてください。
対象のリポジトリは以下です。
クローンが完了したら、以下の操作を実行してクローンしたフォルダを選択してください。
選択してUnity Hub上でキットが表示されたクリックして開いてください。
シュミレーターでのサンプルゲーム実行
サンプルゲームを実行して、本キットの機能を把握しつつ動作確認を行います。
まず、VRヘッドセット無しで動作確認できるXR Device Simulatorでサンプルゲームの動作確認を行います。VRヘッドセットが必要なテスト以外はこちらを使用することで、疲れを最小限にして開発を行えます。
以下のようにXR Device Simulatorのチェックをオンにしてください。
その状態で、Ctrl + Pを押下するとサンプルゲームを実行できます。
操作方法
XR Device Simulatorの操作方法は以下のとおりです。
- 視点移動:TキーやYキーを押していない状態でマウス移動(TキーやYキーを押した場合は、もう一度押すことで戻れる)
- 移動:Tキーを押下してからWASDキー
- カメラ向き変更:Yキーを押してからADキー
- 武器を掴む:Yキーを押してからマウス移動して赤い線を動かして武器に合わせてからGキー
- 武器を振る:TキーやYキーを押していない状態で素早くマウスを左右に移動
- 武器を掴む:武器を持った状態でGキー
TキーやYキーを押して操作を終えたあとは、もう一度同じキーを押すことで他の操作を実行できます。
また、TキーやYキーを押さなくてもWASDで移動可能ですが当たり判定が一緒に移動しないので、上記の移動方法を使ってください。
VRヘッドセットでのサンプルゲーム実行
Quest Linkを実行してVRヘッドセットとPCを接続した状態で、Ctrl + Pでゲームを実行してください。
XR Device Simulatorはオフにするようにしてください。
操作方法については、サンプルゲーム内に説明があるので参照してください。
主要なオブジェクトの説明
プレイヤー
XR Originというコンポーネントがプレイヤーとなり、各種VRの操作を受け付けます。
- XR Origin: 本体です。このオブジェクトにも色々とコンポーネントがついています。
- Main Camera:VRヘッドセットに投影されるカメラ部分です
- TunnelingVignette: VR酔い対策のため、移動時に視界を狭くします
- LeftHand Controller/RightHand Controller: 左右のコントローラーでの操作を設定します。
- RepawnParticles_XR Origin: 復活時にプレイヤーの周りにエフェクトを発生させます。
- Ellen_copy: 本キットのベースとなった3D Game Kit Liteのプレイヤーです。一部の敵との戦闘のために。そのままXR Originに付けています。そのまま付けるのは不格好なのでそのうちなんとかしたいです。
- Main Camera:VRヘッドセットに投影されるカメラ部分です
武器
- Staff_Player: 攻撃判定が発生する武器スピードなどを設定しています。XR Grab Interactableというコンポーネントをアタッチしているので、プレイヤーが掴むことができるオブジェクトになっています。このオブジェクト自体もColliderを持っており、敵のガード発生のトリガーとなります。
- Particle System: 武器を持ったときに粒子が散るパーティクルを発生させています。
- AudioSource: 武器がヒットした際や振った際の音を鳴らします。
- HitEffect: 武器同士が衝突した際のパーティクルを発生させています。
- AttachPoint: プレイヤーが武器を掴んだ際の角度を変更しています。XR Grab Interactableの中で本オブジェクトを掴む場所として設定し、本オブジェクトのRotationを変えることで掴んだ際の角度を変更しています。
- AttackCollider: 攻撃判定が発生した場合に有効化されるColliderを持っています。
- TrailRenderer: 武器を振ったときの軌跡を発生させています。
敵
- Robot Kyle: 武器を持って攻撃してくる人型の敵です。本オブジェクトで行動パターンの確率や移動の速さを設定しています。
- Robot: プレイヤーの攻撃がヒットした際の挙動などを設定しています。Robot Kyleと処理を分離している経緯を失念してしまったのですが、後述のガード動作が分離しないとうまく動作しなかったからではないかと思います。
- Shockwave: 敵を倒した際にショックウェーブのエフェクトを発生させます。
- Guard~Collider: プレイヤーの武器が触れると敵がガードモーションを取るColliderを持ちます。上・左・右のオブジェクトそれぞれがColliderを持っており、対応したガードモーションを実行します。
- Chomper: 近距離攻撃を行ってくるザコ敵です。全ての敵が鳴き声を出すと騒々しいので、Gruntと付いている敵のみが鳴き声を出すようにしています。
- Spitter: 遠距離攻撃として酸を吐いてくるザコ敵です。
終わりに
以上が本キットの使い方です。
本キットを元に独自のゲームを開発する方法や、キットの動作をカスタマイズする応用的な使い方については今後追記予定です。
コメント