BuildAShip:セマンティック セグメンテーション

カメラフィードからピクセルをカテゴリーに分類していく工程、すなわちセマンティック セグメンテーションの実例を見ていきます。自然地面、葉、空の3つのカテゴリーを扱います

概要

いくつかの案内の後、アプリがデバイスのカメラを起動します。プレイヤーは地面をスキャンするよう指示され、ARを表示する平面を見つけてCaptain Dotyの配置場所を選びます。Dotyはさらなる指示を出してから消え、セマンティック セグメンテーション機能が起動し、自然地面(草など)から順に3つの環境カテゴリーのうちの1つの分類を試みます。Dotyがエアシップを建造するために必要なリソースを集められれば目標達成です。

カテゴリーは画面内の該当領域にアイコンを表示させることで視覚化されます。画面下部にボタンが現れ、これを長押しすることでバキュームが起動し、そのカテゴリーの「粒子」を集めて漏斗(ろうと)に集めることができます。充分な粒子が集まるとシーンは2つ目および3つ目のカテゴリー(葉、空)へと進みます。

(プレイヤーの周囲にカテゴリーが見つからない場合、デバッグメニューオプションを利用して工程をスキップできます)

使用中のARDK機能

  • ARSceneManager

  • ARSemanticSegmentationManager - このシーンで分類のために使用:

    • natural_ground

    • foliage

    • sky

  • ARPlaneManager - AR地面プレーンの検知

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

追加のヘルパー

  • BuildAShipResourceRenderer - 画面の該当領域にアイコンを表示させてカテゴリーを視覚化

  • BuildAShipDebugManager - デモのデバッグ機能を管理

ステート

StateInstructions

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

StateWarning

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

StateScanning

デバイスのカメラが起動し、プレイヤーはCaptain Dotyを配置するために地面をスキャンするよう促されています。このステートはARPlaneHelperを使用し、Dotyの配置に安全な表面を探します。

StateYetiRequest

Captain Dotyからの追加の指示。

StateCollect

プレイヤーは環境リソースの草、木、または空を探して、バキュームボタンを使ってそれら粒子を漏斗(ろうと)に集めるよう促されます。各リソースはARDKのセマンティック セグメンテーションチャンネルに対応しています。このステートは BuildAShipResourceRenderer を使用してリソースアイコンを視覚化し、セマンティック セグメンテーションチャンネルのテクスチャと空間的に揃うように配置します。このステートには合計3回戻ります。

StateCollectDone

リソース収集の成功を伝えるUI。

StateGameOver

成功メッセージとリスタートの選択肢、またはマップへ戻る選択肢を表示するUI。

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

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

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

  • モックARプレーン