こちらは、2017年12月21日に公開された以下のドキュメントを翻訳したものとなります。
Buggy Blasters ? Multiplayer HoloLens Considerations
この寄稿はPreviewLabsの創立者であるBernard Francois氏、プロジェクトマネージャーであるKasper Geeroms氏、プログラマーであるMatthew Cormack氏、Jannes Plyson氏によるものです。PreviewLabsはゲーム技術を活用した迅速なプロトタイピングに特化しています。また同社は2010年に設立され、2013年からPhotonを使用しています。
Buggy Blastersは、Microsoft Storeでリリースされた初めてのHoloLens向けマルチプレイヤー・ゲームコンセプトです。Buggy Blastersのシングルプレイヤーモードでは、ユーザーがいる部屋で仮想のラジコンバギーを操縦できます。またマルチプレイヤーモードでは、2人のプレイヤーが対戦するリアルタイムストラテジーのコンセプトとなり、キャプチャーザフラッグとディフェンドザベースが混合したゲームが展開されます。このマルチプレイヤーモードではちがう場所にいる2人のプレイヤーが対戦できたり、同じ場所にいる2人のプレイヤーが同一のホログラフィック体験を共有できます。
PreviewLabsは、親会社であるCronos GroepからHoloLens向けの興味深い事例をリリースするよう一任されてこのコンセプトを開発しました。詳細は以下のとおりです。
共有のプレイスペースへ:可能なアプローチ
空間マッピングとよばれる機能によって、HoloLensはユーザーがいる環境の3Dメッシュを生成します。この3Dメッシュは、たとえばZバッファリング(仮想オブジェクトを現実世界のオブジェクトの背面に配置することが可能になります)や衝突処理などに使用されます。この機能によって、仮想コンテンツが現実の環境とシームレスに統合されるため、拡張現実での存在感が大幅に向上します。
環境メッシュをコライダーとして使用すると、バギーやカラーコーンなどのオブジェクトが環境と自然に調和します。
しかし、リアルタイム対戦のマルチプレイヤーゲームでは、水平なプレイフィールドが必要です。Buggy BlastersのようなゲームでそれぞれのHoloLensが独自のメッシュを使用した場合、不公平になる理由を以下で検証してみましょう。
1.メッシュの形状がゲームプレイに影響を及ぼす場合(たとえば、床面上のわずかな隆起で運転速度が変動するなど)、プレイヤーは損をしたと感じます。
2.現実のオブジェクトが通行を妨害した場合、マルチプレイヤーゲームでは重大な不利となります。あなたは、対戦相手にあなたのフラッグを取られたと思ってしまうかもしれません。
こうした事項は、2つのHoloLensを使って物理的に同じ場所でプレイしている場合でも重要であることに留意してください。なぜならば、スキャン処理での変動によって、同じルームでも2つのメッシュは全く同一にはならないためです。
使用可能な手法は、以下の2つです:
1) 2つのHoloLensによって生成されたメッシュを比較して差異を考慮し、単独の共有メッシュを設定する。
2人のプレイヤーが同じ部屋に居る場合には2つのメッシュの平均を採用し、また2つのHoloLensの結果を追加することで、スキャン処理を加速させます。この手法では、一方のHoloLensでは参照できなかった空間も把握することが可能になります。
2人のプレイヤーがちがう部屋にいる場合には、プレイヤーの部屋にある家具が他方のプレイヤーの部屋にコピーされ、逆も同様です。たとえば、あなたの部屋の中央にコーヒーテーブルがあり、私の部屋にはリクライニングチェアがあるとします。この場合はあなたの部屋に私のリクライニングチェアが仮想的に追加され、私の部屋にはあなたのコーヒーテーブルが追加されます。結果的にあなたの部屋と私の部屋は同じ環境となります。他のプレイヤーからあなたの部屋に「インポートされた」家具は、簡単な抽象シェーディング効果によって視覚化される場合があります。
2) 床の高さの単純な水平面を使用し、完全に水平なプレイフィールドを設定する。プロトタイピング企業である弊社は、こちらの方法を採用しました。弊社はすぐにプレイできるほうが好ましいと考えたためです。
Buggy Blastersをプレイする際には、HoloLensを装着した2人のプレイヤーが長方形のプレイスペースを定義し、2つの長方形が重なった部分をもとに共通の「プレイスペース」が設定されます。
双方のプレイヤーに公正な共有スペースでゲームをおこなう必要があるため、このプレイスペースは2人のプレイヤーにとって同じ大きさでなければなりません。対戦相手の部屋があなたの部屋よりも広くて後ろに隠れることができ、あなたには自分の部屋の壁しか見えないとしたら、不公平になります。この問題に対処するため、弊社は非常に簡潔な手法を採用しました:
・各プレイヤーは長方形のフリーな床スペースを定義します。Buggy Blastersの場合、このスペースを定義するには床をタップしてカラーコーンを設定します。設定された長方形の最初の角が、プレイスペースの起点となります。
・そして2つのプレイスペースを結合させ、2つのスペースが重なった部分である長方形をマルチプレイヤーのプレイスペースとして選択します。
・位置や回転についてのネットワーク通信はすべて、結合されたプレイスペースの起点と比較して処理されます。
上記が実装されると、同じ部屋で2つのHoloLensを使って簡単にプレイできるようになります。必要な手順は、2人のプレイヤーに全く同じ位置にカラーコーンを置かせ、それぞれのHoloLensに同等のプレイスペースを設定するだけです。この設定によって、プロトタイプの作成が可能です。!
HoloLens向けにUnityで効率的に開発
HoloLens上でUnityのプロジェクトを実行する際には、Visual Studioのソリューションが構築されます(リンクあり)。このソリューションが構築した後に、HoloLensでの構築や展開が可能になります。Buggy Blastersプロジェクトでは、一連の処理を実行するのに約5分間を要しました。マルチプレイヤーのゲームプレイをテストするには、常に2つのHoloLensに展開する必要がありました。
ビルドと実行の長いループを避け、弊社が作業を効率化した方法を以下に記載します。
・Xboxコントローラーを使用してUnity Editor内で回転とエアタッピングのシミュレーションをおこない、開発期間を短縮しました。
・2つのHoloLensを同時に装着できないので、1人のプログラマーがマルチプレイヤー機能をテストするのは困難です。このため、弊社は1つのHoloLensでテストをおこない、他のプレイヤークライアントはUnityエディターでテストしました。このテストは、保存された部屋のスキャンを含むUnityシーンを設定(部屋のスキャンには実際のHoloLensデバイスが不可欠なため)し、またプレイスペースを事前設定することで実現しました。
詳細情報やダウンロードをご希望の場合には、Buggy Blastersのページをご参照ください。
コメント
0件のコメント
サインインしてコメントを残してください。