初めての HoloLens Unreal アプリケーションの作成

このガイドでは、Unreal Engine の HoloLens 上で初めての Mixed Reality アプリを実行する手順について説明します。 "Hello World" のように、画面にキューブを表示する簡単なアプリを作成します。 さらに便利にするために、最初のジェスチャも作成してキューブを回転させ、アプリケーションを終了します。

目標

  • HoloLens プロジェクトを開始する
  • 正しいプラグインを有効にする
  • ARSessionConfig データ資産を使用する
  • ジェスチャ入力を設定する
  • 基本レベルを構築する
  • ピンチ ジェスチャを実装する

新しいプロジェクトの作成

最初に必要なのは、作業するプロジェクトです。 Unreal で初めて開発する場合は、Epic Launcher からサポート ファイルをダウンロードする必要があります。

  1. Unreal Engine を起動します。
  2. [New Project Categories](新しいプロジェクトのカテゴリ) で、 [Games](ゲーム) を選択して [Next](次へ) をクリックします。

Recent projects window open with Games highlighted

  1. [Blank](空) テンプレートを選択して [Next](次へ) をクリックします。

Unreal project browser window with Blank template highlighted

  1. [Project Settings](プロジェクト設定) で、 [C++]、[Scalable 3D or 2D](スケーラブル 3D または 2D)、[Mobile/Tablet](モバイル/タブレット)[No Starter Content](スターター コンテンツを有効にしない) を設定し、保存場所を選択して、 [Create Project](プロジェクトの作成) をクリックします

Note

後で OpenXR プラグインを使用できるようにするため、ブループリント プロジェクトではなく C++ を使用しています。 この QuickStart では、Unreal Engine に付属する既定の OpenXR プラグインを使用します。 ただし、公式の Microsoft OpenXR プラグインをダウンロードして使用することをお勧めします。 それには、プロジェクトが C++ プロジェクトである必要があります。

Project settings window with project, performance, target platform, and starter content choices highlighted

新しいプロジェクトが Unreal エディターで自動的に開かれます。つまり、次のセクションに進む準備はできています。

必要なプラグインの有効化

オブジェクトをシーンに追加する前に、2 つのプラグインを有効にする必要があります。

  1. [編集] > [プラグイン] を開き、組み込みオプション リストから [拡張現実] を選択します。
  • HoloLens まで下にスクロールし、 [Enabled](有効) をオンにします

Plugins window with augmented reality section open and HoloLens highlighted

  1. 右上の検索ボックスに「OpenXR」と入力し、OpenXR および OpenXRMsftHandInteraction プラグインを有効にします。

Plugins window with OpenXR enabled

Plugins window with Open XR Msft Hand Interaction enabled

  1. エディターを再起動します

Note

このチュートリアルでは OpenXR を使用しますが、上でインストールした 2 つのプラグインには、現在、HoloLens 開発用の完全な機能セットはありません。 後で使用する "ピンチ" ジェスチャには HandInteraction プラグインで十分ですが、基本機能以外を使用するには、Microsoft OpenXR プラグインをダウンロードする必要があります。

プラグインを有効にすると、それにコンテンツを設定できます。

レベルの作成

次のタスクは、参照とスケール用の開始点とキューブを使用してプレーヤーのセットアップを作成することです。

  1. [ファイル] > [新しいレベル] を選択し、[空のレベル] を選択します。 この時点では、ビューポートの既定のシーンは空です
  2. [Modes](モード) タブから [Basic](基本) を選択し、PlayerStart をシーンにドラッグします
  • [Details](詳細) タブで、 [Location](位置)X = 0、Y = 0Z = 0 に設定して、アプリの起動時にユーザーをシーンの中心に設定します

Unreal editor scene with location and player start added

  1. [Basic](基本) タブから Cube をシーンにドラッグします
  • キューブの [Location](位置)X = 50、Y = 0Z = 0 に設定して、開始時にプレーヤーから 50 cm 離れた位置にキューブを配置します
  • キューブの [Scale](スケール)X = 0.2、Y = 0.2Z = 0.2 に変更します

シーンにライトを追加しない限り、キューブを表示することはできません。これは、シーンをテストする前の最後のタスクです。

  1. [Modes](モード) パネルで [Lights](ライト) タブに切り替えて、Directional Light をシーンにドラッグします
  • ライトが見えるように、PlayerStart の上にそれを配置します

Unreal editor scene with cube and directional light added

  1. [File](ファイル) > [Save Current](現在を保存) に移動し、レベルに Main という名前を付けて、[Save](保存) を選択します

シーンを設定したら、ツールバーの [再生] を押して、キューブの動作を確認します。 作業内容を鑑賞したら、Esc を押してアプリケーションを停止します。

Scene in play mode with the cube in the middle of the screen

シーンをセットアップしたので、AR でいくつかの基本的な対話式操作を実行できるようにします。 最初に、AR セッションを作成する必要があり、ブループリントを追加してハンド インタラクションを可能にできます。

セッション アセットの追加

Unreal の AR セッションは、それ自体では発生しません。 セッションを使用するには、ARSessionConfig データ資産を処理する必要があります。それが次のタスクです。

  1. [Content Browser](コンテンツ ブラウザー) で、[Add New](新規追加) > [Miscellaneous](その他) > [Data Asset](データ アセット) を選択し、ルート コンテンツ フォルダー レベルであることを確認します
  2. ARSessionConfig を選択し、 [Select](選択) をクリックして、アセットに ARSessionConfig という名前を付けます。

Pick data asset class window open with AR session config asset highlighted

  1. ARSessionConfig をダブルクリックして開き、既定の設定をすべてそのままにして [Save](保存) を選択し、メイン ウィンドウに戻ります。

AR session config asset details window

それが完了したら、次のステップとして、レベルが読み込まれたら AR セッションが開始し、レベルが終了したら停止するようにします。 さいわい、Unreal には、レベル ブループリントと呼ばれる特別なブループリントがあり、レベル全体のグローバル イベント グラフとして機能します。 レベル ブループリントで ARSessionConfig アセットを接続すると、ゲームの再生が開始されたときに AR セッションが正常に起動します。

  1. エディターのツール バーから、[Blueprints](ブループリント) > [Open Level Blueprint](Level ブループリントを開く) をクリックします。

Blueprint menu open with open level blueprint option highlighted

  1. 実行ノード (左向き矢印アイコン) を Event BeginPlay からドラッグして離します
  • [Start AR Session](AR セッションの開始) ノードを検索し、Enter キーを押します
  • [Session Config](セッション構成) の下にある [Select Asset](アセットの選択) ドロップダウンをクリックし、ARSessionConfig アセットを選択します

Blueprint graph with event begin play connected to the start ar session function

  1. EventGraph 内の任意の場所を右クリックし、新しい Event EndPlay ノードを作成します。
  • 実行ピンをドラッグして離してから、 [Stop AR Session](AR セッションの停止) ノードを検索して Enter キーを押します
  • [Compile](コンパイル)[Save](保存) の順にクリックして、メイン ウィンドウに戻ります

重要

レベルが終了しても AR セッションがまだ実行されている場合、ヘッドセットへのストリーミング中にアプリを再起動すると、特定の機能が動作しなくなることがあります。

Event end play node attached to the stop ar session function

入力の設定

  1. [Edit](編集) > [Project Settings](プロジェクトの設定) を編集し、[Engine](エンジン) > [Input](入力) に移動します
  2. [Action Mappings](アクション マッピング) の横にある [+] アイコンを選択して、RightPinch アクションと LeftPinch アクションを作成します。

Binding input settings with right and left pinch action mappings highlighted

  1. RightPinch および LeftPinch アクションをそれぞれの OpenXR Msft ハンド インタラクション アクションにマップします。

Action mappings with Open XR Msft Hand interaction options highlighted

ジェスチャの設定

入力を設定したので、わくわくする部分に進むことができます。ジェスチャの追加です。 右ピンチでキューブを回転させ、左ピンチでアプリケーションを終了しましょう。

  1. [Level Blueprint](Level ブループリント) を開き、InputAction RightPinchInputAction LeftPinch を追加します
  • ターゲットを Cube に設定し、 [Delta Rotation](デルタ回転)X = 0、Y = 0Z = 20 に設定して、右ピンチ イベントを AddActorLocalRotation に接続します。 これで、ピンチするたびにキューブが 20 度回転するようになります
  • 左ピンチ イベントを Quit Game に接続します

Level bluprint open with input actions for right and left pinch events

  1. キューブの [Transform](変換) の設定で、 [Mobility](モビリティ)[Movable](移動可能) に設定して、動的に移動できるようにします。

Tranform settings with mobility property highlighted

これで、アプリケーションをデプロイしてテストする準備ができました。