UnityでVRゲームを開発する際の私的なメモです。
開発環境
私の開発環境
参考までに私の開発環境を記載しておきます。
- 開発用PC:Inspiron 16 Plus
- VRヘッドセット:Meta Quest 2
開発用PCの準備
VRゲーム開発にはGPUを搭載したPCがおすすめです。
また、私は外部の勉強会に参加することが多いので以下のノートPCにしています。ただ、以下のPCは指紋認証のログインが度々動作しなくなるので他のPCが良いかもしれません。
その他のPCおすすめは以下をご覧ください。

Unityのセットアップ
以下のページを参考にUnityをセットアップしてみてください。

インストールの際に、ビルドに使用するので以下のようにAndroid用のモジュールはインストールするようにしてください。

もしインストールの過程で2022 LTSがインストールされなければ、インストール後に以下の右上の「Install Editor」からインストールしてください。

VRヘッドセットのセットアップ
Unityのインストールが完了したら、以下のページの「Questを開発者モードにする」含めてそれより前の工程をすべて実行して、Quest 2をPCに接続できるようにしてください。
Quest以外のヘッドセットでも動作可能なXR Interaction Toolkitを活用する場合は以下の記事をご参照ください。
私はアセットは自作予定なので3D(URP)でプロジェクトを作成しています。
VRヘッドセットとPCの接続
以下の手順を参考に、VRヘッドセットとPCを接続するQuest Linkを実行してください。
接続することで、ゲームをビルド(実行可能なファイルにすること)をしなくてもゲームをプレイできて時間の節約になります。

開発用エディタのセットアップ
開発用エディタはUnityに付属のVisual Studioが利用いただけます。
本キットではデフォルトの開発用エディタが開発効率の観点からRiderになっています。
Visual Studioで開発する場合は、UnityエディタのEdit>Preferencesから以下の通り開発環境をVisual Studioに切り替えてください。

Riderに興味ある方は以下もご覧ください。
Riderは有料ですが、開発効率の向上につながる様々な機能があるため元が取れると考えています。
無料期間もあるのと、学生は無料なので是非使ってみてください。Riderの機能については以下をご参照ください。
Riderのセットアップ方法については以下をご参照ください。

バージョン管理ツールのセットアップ
バージョン管理ツールを使うことで、変更の履歴が保存されるので心置きなく変更できます。
私は操作がわかりやすいのでGitHub Desktopを利用しています。GitHub Desktopのセットアップは以下を参照してください。

VR酔い対策モジュール(TunnelingVignette)のセットアップ
XR Interaction ToolkitのSampleの中に含まれている、VR酔い対策で移動中などに視界が狭くなるツールです。
インポート後に以下のようにMain Camera配下に配置してLocomotion Viggette ProvidersにXR Originを追加し、視界を狭くしたい操作を選択する必要があります。


ヘッドセットをかぶらずにプレイするXR Device Simulatorのセットアップ
- 移動するのはTキーを押してからWASD
- 向きを変えるのはYキーを押してからAキーかDキー
- ものを持つのはTキー(左手)かYキー(右手)を押してからマウスを動かしてGキー
VRゲーム開発
ゲーム開発入門
Unityでのゲーム開発が初めての人は以下の入門書を読んで実際にやってみることをオススメします。
VRゲーム開発の入門要素はありませんが、まずはUnityの基本を学ぶのが大切です。
どちらかだけでもよいのですが、それぞれ別の機能を学べるので是非両方チャレンジしてみてください。
VRゲーム開発については、以下の本で学んだ後にVRの開発環境をセットアップして色々試しながら学ぶのがよいでしょう。良い教材ありましたら、Xで教えてください。
オープンソースで利用可能なアセット
Unityのアセットストアのアセットはオープンソースでの活用が禁止されています。そのため、オープンソースで活用できるアセットを利用するか自作する必要があります。
ここではオープンソースで利用可能、つまり再配布可能なアセットのサイトを列記します。
3Dモデルのアセットサイトです。アセット数も豊富でライセンスによる絞り込みが可能です。私は改変や商用利用に制限の無い「CC BY」、「CC0」の2つで検索することが多いです。

再配布可能な効果音やBGMのサイトです。特に効果音が豊富です。

日本語フォントを利用する場合は、以下のフォントが再配布可能です。

上記フォントの使い方は以下が参考になります。

3Dモデルのアセットのインポート
SketchFabのアセットのインポートをプラグインで行います。
上記プラグインはライセンスが明記されていないため、オープンソースのプロジェクトに含められません。そのため、私はインポート用の別プロジェクトを作成して上記ページの.unitypackageを実行してインポートしてから、ゲーム開発用のプロジェクトに移す方法を取ります。
バージョンは違いますが、インポート方法は以下です。

インポートした際にピンクになる場合は以下の対応を行います。

ユニティちゃんのURPプロジェクトへのインポート
インポート時にピンクになってしまったのですが、以下の記事を参照して解決しました。

VR上で武器を持つ
武器を持てるようにする
武器を持つには、以下のコンポーネントを武器にアタッチします。これで、武器にコントローラーから出る線を当ててグリップボタンを押すと武器を持てます。
例えば剣の柄を持ちたい場合など武器を持つ位置や角度を変えるには、武器に空のオブジェクト(以下ではAttachPoint)をアタッチして、以下のAttach Transformに設定します。AttachPointオブジェクトの位置や角度を変更すると、武器を持つ角度が変わります。
角度を変更する際は、実際にVRヘッドセットでプレイして持ちながら角度を変えて、値をコピーしておいてプレイ終了後にエディタに貼ると調整しやすいです。

自分で仮のオブジェクトを作成する場合は、変形しやすいのでProBuilderがやりやすいです。
オブジェクトの面を、他の面を変形させずに移動する(凹ませたりする)のはShiftキーを押しながら動かします。

武器を手元に引き寄せて持ちっぱなしにする
まず武器を手元に引き寄せるには、以下のコンポーネントのForce Grabにチェックをつけます。
武器を持ちっぱなしにするにはSelect Action TriggerをStickeyに変更します。

武器を最初から持っているようにしたい場合は、以下の部分に武器を設定します。XR Grab Interactableが設定されていないと表示されないので注意してください。

武器の軌跡を表示する
TrailRendererを使用する方法が簡単です。
コメント