こんにちは、ゆーりんち、といいます。
すっかり寒くなりましたね。この前、気まぐれで観葉植物育成キットを買ったのですが、1ヶ月経ってもまったく芽が出る気配がありません。完全に買うタイミングを間違えました。
作っちゃうおじさん さん(さかなくんさんみたい)主催のアドカレ参加記事です、初参加です。
詳しくはコチラ!
https://adventar.org/calendars/12023
さて、今回のテーマは、「VRゲーム作ってみたら意外とカンタンだったぜ」という記事です!
VRゲームを作りのキッカケ
みなさん、VRゲームをやったことはありますか?
正直、私はリアルな友達でVRのヘッドセットを持っている人と会ったことがありません。

安い端末でも約5万円、高いものだと10万円弱。Switch2やPS5が買える値段の割に、遊べるソフトが少ないのだから、正直わざわざ買う人は現時点ではかなりの物好きな人といえるでしょう。
重たいヘッドセットを頭にわざわざ付けないと遊べないという不便さも足を引っ張っています。スマホゲームなら、ベッドで寝ながら遊べますからね。
ただ、VRゲームでしか出来ない体験というのは確かにあります。
360度見回して、その世界がすべてバーチャルな空間となり、その空間に自分の体を動かして干渉出来る。なにか気になるものがあれば、そこに自分から近づいていける。近づくにつれて、より大きく物体が見え、聞こえるサウンドも大きくなる。そして、手を伸ばして触れれば反応がある。
そんな没入体験は、なかなか他で味わうことは出来ません。VRゲームはドチャクソに濃ゆい体験を生み出すことが出来ます。
人間というのは、より強く濃ゆい刺激・体験を求める生き物なので、スマホやPCでのゲーム体験に飽きてきた人が次に触れるのは、VRやMRなどの領域であると考えています。
某F◯NZAでも、数年前は数えるほどしか無かったのに、いまはVRの作品が大量に並んでいるのが証拠です。
ちなみに、いま北米では、若年層のVRヘッドセット週間利用率が13%、VRヘッドセットの所有率は33%もあります。日本ではVRは流行っていないイメージはありますが、日本以外では全然需要あると思います。
参考:https://www.pipersandler.com/teens
私は小さなゲーム制作会社の代表をやっているのですが、イベント用にVRゲームを作ってほしい、という案件もまれによくあります。
5年後もゲーム作って飯を食っていけるよう、そして自分自身も、「Beat Saber」に負けない濃ゆい体験を生み出したいなと思い、VRゲームを作ろうと思いました。
どんなゲームを作ったの?
というわけで、VRゲームを作ってみました。
タイトルは、『弊社破壊ぶっ壊しシミュレーター』です。
VR空間の弊社内の物体を好き勝手投げて、オフィスを好きなだけ破壊しよう!、というゲームです。
机だろうが椅子だろうが、水槽だろうが、社長室の金庫だろうが、ステージ内のすべてのオブジェクトを掴んで投げることが出来る、そんなゲームです。
東京ゲームダンジョン10にて、こちらのゲームを展示しました。

プレイしてくれた方からは、絞り出したような「...おもしろかったです...」ではなく、本当に心から楽しんでくれた「面白かったです!」という感想を直接もらえたのが、作って・参加してよかったなーと思った点です。
こだわりポイントとしては、UI操作をすべて”モノ”を投げることで行うという点です。
ちっこいボタンを押すのではなく、モノを投げてボタンを押した方がコンセプトに合致していて面白いよな~と思い、UIのボタンが1つもないゲームになりました。
今回はテストマーケティング(評価が良ければもっと作る、悪ければ作るのやめるという判断をする)としての展示だったのですが、アンケート結果はこんな感じ。

画面酔い対策や、操作性、世界観の作り込みなど、コンセプトの枝葉の部分についての指摘はあったものの、コンセプトの幹の部分に対しては面白いと感じてくれる人が多くて良かったです。
来年は、もう少し本格的に作っていきたいな、と考えています。
ちなみに、東京ゲームダンジョン10では、あの「8番出口」のコタケクリエイト様のブースの隣という神ポジションでした。コタケクリエイトさんに会いにきた人達が、不思議そうな目でこちらの展示を見ながら、スルーしていくのが面白かったです。
次は、うちのブースにも取材しに来てくださいね。
VRゲームなんてほんまに作れるんか?
ここまで読んで、ちょっとでもVRゲーム制作が気になった方は、こう思うかもしれません。
「でもVRゲーム作るのって難しくないの...?」
私もそう思っていました。もちろん本格的に、仕組みを理解して、自分でゼロから生み出すのは、ドチャクソに難しいとは思います。
ですが、プロダクトを作る、という目的であれば、実はそこまでハードルは高くないよ~というのがこの記事で言いたいことです。RPGツクールでゲーム作るのに、RPGツクールの中身の仕組みをそこまで知らなくてもRPG作れるのと大体同じです(怒られそう)。
こと細かく作り方を説明するのはさすがに文字数が足りないので、大まかにこういう風に作ったよ、ということをまとめます。
1.UnityのVRテンプレートを触る
今回は、Unityで開発しました。
Unityの2D、3Dテンプレートは、インストールすると、虚無...?みたいな空間が広がっています。

ですが、VRテンプレートでは、いろんな充実した機能を使える状態で始めることが出来ます。

VRゲームを作る上で恐らく一番難しいのがコントローラでのキャラクターの制御だと思うのですが、そういった実装があらかじめ組み込まれているので、テンプレートを起動したらすぐにVR体験が出来るようになっているのが良かったです。
最初から動く状態になっていると、なんかこう...自分でも作れそう、って気持ちになるんですよね。
まずは、テンプレートを触ってみることで、VRゲーム空間内でどういう制御が必要なのかを、触りながら調べました。
2.VR操作を拡張するアセットを購入する
ただ、Unityのテンプレートだけだと、出来ないことはいくつかあります。
たとえば、VRゲームでよくある、VRコントローラで操作している時に、ゲーム画面にコントローラ操作に対応した手の表示が出来ません。
ハンドトラッキング(コントローラを使わずに操作)であれば方法はあったのですが、コントローラを持ったままの方法が見つかりませんでした。


そこで、今回、以下のアセットを購入しました。
AutoHandというアセットです。
ちょっとお高いアセットですが、非常に高性能なアセットです。
このアセットを買うと、
・VRコントローラ操作に対応して、指を動かす
・物を掴んで投げる
・手にグローブを装着する
・引き出しやドアを開ける
などの、いろんな細かな手の操作ができるようになります。
また、Unity標準のRigidbodyを前提に作られているので、掴まれる対象のオブジェクトに特殊なことをしなくて良い、という点も良かったです。
難点は日本で使っている人が全然見当たらないことくらい。
機能は盛りだくさんですが、デモシーンで使い方を見て、それをコピペするだけでも、そこそこの複雑な手を使った操作が出来ました。
3.VR特有の箇所とVRに依存しない箇所を整理(設計)して実装
この辺は少しニッチな話ですが...。
Unityで見えている表の世界(Monobehaviour主体の世界)と裏の世界(PureC#主体の世界)をしっかりと分離して、裏の世界が表の世界側にアクセスしないようにアセンブリを切って整理して設計しました。

特に、今回主要なキャラクターの操作の実装を、大きく外部アセットに依存せざるを得ないので、外部アセットへの依存範囲を限定するような設計を意識して作りました。
これにより、直接的にVR操作に依存した実装自体は全体の2割くらいで、残りは普通の3Dゲームの設計と大きく変わらず作ることが出来ました。
主要なライブラリとして使ったのは、VContainerとR3です、いつもお世話になっています。
なので、冒頭の話につながりますが、3Dゲームが作れるならば、VRゲーム作れるようになるまでは技術的にはそこまでハードルは高くないのかな、と思います。
金銭的なハードルは依然少し高いですが...。
また、ゲームスタート時や、ゲーム終了時に、ドメイン層に更新を掛けるクラスをUseCaseとしてまとめ、UseCaseのメソッドをエディタから呼び出せるようにすることで、クリーンなアーキテクチャを保ちつつ、ゲーム開始や終了などの処理をいつでも呼び出せるようになり、デバッグ作業を効率的に行うことができました。

隙間時間にほそぼそと作っていたのですが、大体制作期間としては、2ヶ月くらいでした。
作り始める前は、VRゲーム作るのはすごい難しいんだろうと思っていましたが、やってみれば思いの外とっつきやすかったです。VRヘッドセットを持っている人などはぜひ一度、UnityでVRプロジェクトを始めてみてはいかがでしょうか?
VRゲーム開発の難しいところ
動作確認にイチイチヘッドセットを付けないといけない
とはいえ、VR特有の開発の面倒くさい点もあります。
一般的なPCゲームを開発するのであれば、プレイボタンを押すと、そのままキーボードなどで操作が出来ます。
ですが、VRゲームの場合、ヘッドセットを付けなければ動作を確認出来ないというのが面倒でした。
一応、ヘッドセットを付けずとも擬似的にコントローラ操作も出来る方法はありますが、VRコントローラを使った「投げる」などの動作の確認は、やはりヘッドセット無しでは難しいです。
開発中、ヘッドセットを付けたり外したりを繰り返すのが地味に大変でした。なんなら最終的に、開発のために髪を短めに切ることにしました。
以前お会いした、VR開発者の方は、開発時はヘアバンドを着けていると言ってました。
Apple Vision Proをなどが提唱している、ヘッドセットを付けたまた生活し、ヘッドセットを付けたままPCを操作する、という開発スタイルが定着してきたらこの問題は解決するかもしれません。
けど、それはそれで首が凝ってしまいそうですが。
パフォーマンス最適化
VRゲームの一番の敵は、「3D酔い」です。
ゲームに慣れている人でも、初めてVRゲームをプレイする人は滅茶苦茶に酔います。私もゲームをかなりする方ですが、初めてVRChatに潜った日は半日ゲロゲロでした。
「3D酔い」の対策はいろんな方法があるのですが、その中でも特に重要度が高いのがパフォーマンスです。
FPSが低いと、現実とVR空間に大きな差異を感じるようになり、それが酔いにつながります。
Metaでは、72fpsで45分間連続動作することがストアに載せる条件になっているそうですが、72FPS以上をVRで出し続けるのは、中々に難しいです。
VRでの描画は、カメラを2つシーンに配置して、すこしだけずらして描画しているような状態なので、描画負荷は一般的なゲームよりも高くなります。
しかも、今回のゲームはモノが大量に出てくるゲームなので、パフォーマンスが下がりやすいです。
マテリアルをすべて1つにまとめたり、メッシュ数を削ったり、影の描画を無くしたり、解像度を下げたりしましたが、目標パフォーマンスまで到達出来ませんでした。

なので、製品化するには、まだまだ最適化が必要です。
また、大量の物理演算が同時に発生すると、FPSがさらに低下して、酔いに繋がってしまっていたので、そこは大きな改善点です。
余談ですが、今回ゲームを作るにあたって、コンセプトが近い「塊魂」をプレイしたのですが、よーく見ると「塊魂」では、影の描画があるオブジェクトと、影が描画されていなオブジェクトがあります。
大きいオブジェクトや空中に浮いているオブジェクトは影を出しているが、小さいオブジェクトや地面に接しているオブジェクトは影が無くても案外違和感が生まれないんですね。
細かな最適化をしていることが伺えますね。

あれだけの物量を表示するゲームとあって、パフォーマンスには大分厳しい制約があったでしょうに、グラフィックとして全く違和感なく、なんならその制約すら世界観の一部にしている。
プレイ中も全然カクツくこともなく、本当にすごい作品だなー、とあらためて感心しました。
さいごに宣伝
以上、VRゲーム制作体験談でした。
もしこの記事を読んで、自分もVRゲーム作ってみたい!という方はぜひお声がけください、開発仲間を大募集中です!
また、2025/12/14(日)にイベントをやるので最後にその宣伝も。
ゲーム開発者同士で、フィードバックを出し合う交流会です。
現役ゲーム業界のプロデューサーもレビューに参加してくれます、気になった方はぜひ!

明日は、上下行_Jo-geさんの記事です、お楽しみに!
それでは、素敵なゲーム制作ライフを!


コメント