散策:Gameboard (ゲームボード)

ゲームボードARDK機能を実演し、仮想キャラクターおよびナビゲーションにARメッシングを利用します。

概要

説明の後でアプリがデバイスのカメラを起動し、プレイヤーは周囲をスキャンするよう促されます。これによってアプリは、移動可能なゲームボードを地面に見つけて作成できるようになります。デバイスにLiDARが搭載されている場合、できあがるゲームボードはより洗練されて安定したものになる可能性があります。

ゲームボードのタイルが充分に作成されると、カメラに制御されるレティクルがゲームボードの上/隣に表示され、プレイヤーは半透明のCaptain Dotyを動かせるようになります。レティクルはDotyの配置に安全/有効な場所では緑になり、その他の場所ではオレンジになります。画面最下部付近にボタンが現れ、これを押すと小さな雪玉と一緒にDotyが実体化して現在地に配置されます。

ゲームボードに小さな雪の山が出現し、Dotyはそれを集めて雪玉を大きくすることができます。プレイヤーはレティクルで狙ってDotyが向かう先を選び、配置ボタンを押すよう促されます。選択した地点にXマークが配置されます(Dotyが向きを変えるのに必要な空間を確保するため、ゲームボードの端からいくらかのマージンが必要です)。

Dotyが雪玉を転がしながら堆雪と交わると、その堆雪がまとめられ、雪玉が大きくなっていきます。雪玉が充分な大きさになると、近くのどこかに雪だるまの下半分が出現します。Dotyを雪だるまのところまで移動させて完成させるとシーンは終了します。

使用中のARDK機能

  • ARSceneManager

  • ARMeshManager - AR環境メッシュの検知を管理します。これには検知されたメッシュと合致するMeshCollliderChunkジオメトリオブジェクトのインスタンス化と破壊も含まれます

  • Gameboard - AR環境メッシュのスキャン機能と、メッシュの歩行可能なエリアを示すタイル群を維持する機能を提供します。ゲームボードはさらに、キャラクターがタイル内のある地点からある地点へ移動するための経路計算ロジックを提供します。ゲームボードはゲームプレイ中にダイナミックに更新されます。新しい環境ジオメトリが発見されると新しいタイルが現れることもあり、人やペットなどによって部屋の一部が覆われたり、ライティングの状態が変わってメッシングプロセスが影響を受けたりすると、既存のタイルが消えることもあります。Dotyの足元でゲームボードの一部が消えると、Dotyが残っているゲームボードのうちで一番近い有効な地点にテレポートすることもあります。

  • ARDepthManager - 深度を用いたオクルージョン

  • ARSemanticSegmentationManager - 「地面」カテゴリー/セグメンテーションにあるアイテムのオクルージョン処理用

追加のカスタムヘルパー

  • GameboardHelper - ARDKゲームボードを扱うためのヘルパー機能

  • WalkaboutDebugManager - シーンのデバッグ機能を管理

ステート

StateInstructions

インストラクションを表示するUI

StateWarning

ARの使用に関する警告を表示するUIです。アプリの実行につき1回だけ、ユーザーが初めてARSessionに入る前に表示されます。

StateScanning

デバイスのカメラが起動し、プレイヤーは周囲をスキャンするよう促されます。これによってアプリは、移動可能なゲームボード表面を地面に配置できるようになります。デバイスにLiDARが搭載されている場合、できあがるゲームボードはより洗練されて安定したものになる可能性があります。

StatePlacement

カメラに制御されるレティクルがゲームボードの上/隣に表示され、プレイヤーは半透明のCaptain Dotyイエティを動かせるようになります。レティクルはDotyの配置に安全/有効な場所では緑になり、その他の場所ではオレンジになります。

StateGrowSnowball

プレイヤーは、Dotyが積もった雪を集めて雪玉を大きくしながら向かう目的地を選択します。

StateBuildSnowman

雪玉が充分な大きさになると、近くのどこかに雪だるまの下半分が出現します。Dotyを雪だるまのところまで移動させて完成させるとシーンは終了します。

StateGameOver

UIがプレイヤーの最終歩数とリスタートの選択肢、またはマップへ戻る選択肢を表示します。

エディター専用のモックサポート

ARDKアプリケーションをエディターで開発する際、デバイスへのビルドが常に求められることを避けるため、Unityエディター内で機能するARアセットのモックバージョンを使用すると便利です。各シーンのモックオブジェクトはシーンのMockScene GameObjectにアタッチされます。このオブジェクトにはMockSceneConfigurationコンポーネントがあり、Unityエディター外ではこれによってそのオブジェクトは破壊されます。

このシーンのMockSceneオブジェクトに含まれるもの:

  • Unityエディター内のみでMockSceneオブジェクトによって有効化されるモック環境メッシュ。