5.ボタンの追加およびピースの位置のリセット

前のチュートリアルでは、ポーン コンポーネントにハンド インタラクション アクターを追加し、チェス盤にマニピュレーター コンポーネントを追加して、両方を対話型にしました。 このセクションでは、引き続き Mixed Reality ツールキットの UX Tools プラグインを使用して、ブループリントの新しい関数とアクター参照を使用してチェス アプリを作成します。 このセクションの完了までに、デバイスまたはエミュレーターに Mixed Reality アプリをパッケージ化してデプロイする準備が整います。

目標

  • 対話型ボタンの追加
  • ピースの位置をリセットする関数を作成する
  • 押されたときに関数をトリガーするボタンをフックする

Reset 関数の作成

最初のタスクは、チェスのピースをシーンの元の位置にリセットする関数のブループリントを作成することです。

  1. WhiteKing を開き、[My Blueprint](マイ ブループリント)[Functions](関数) セクションの横にある [+] アイコンをクリックして、「Reset Location」という名前を付けます。

  2. SetActorRelativeTransform ノードを作成するには、ブループリント グリッドの Reset Location から実行をドラッグしてリリースします。

    • この関数では、アクターの親に対して相対的に変換 (位置、回転、スケール) を設定します。 この関数を使用すると、ボードが元の位置から移動した場合でもボード上のキングの位置がリセットされます。
  3. イベント グラフ内で右クリックし、 [変換の作成] を選択し、 [場所]X =-26Y = 4Z = 0 に変更します。

    • SetActorRelativeTransform[新しい相対変換] ピンに [戻り値] を接続します。

Reset Location (位置のリセット) 関数

メイン ウィンドウに戻る前に、プロジェクトをコンパイルして保存します。

ボタンを追加する

関数が正しくセットアップされたので、次のタスクでは、タッチしたときにオフにするボタンを作成します。

  1. [Add New](新規追加) > [Blueprint Class](ブループリント クラス) をクリックし、[All Classes](すべてのクラス) セクションを展開して、UxtPressableButtonActor を見つけます。
    • これに ResetButton という名前を付け、ダブルクリックしてブループリントを開きます。

HoloLens 2 スタイル ボタンから新しいブループリントをサブクラス化する

  1. [コンポーネント] パネルで [ResetButton(self)] が選択されていることを確認します。 [詳細] パネルで、 [ボタン] セクションに移動します。 既定の [Button Label](ボタン ラベル) を「リセット」に変更し、 [Button Icon Brush](ボタン アイコンのブラシ) セクションを展開し、 [Open Icon Brush Editor](Icon Brush Editor を開く) ボタンをクリックします。

ボタンのラベルとアイコンを設定する

アイコン ブラシ エディターが開き、ボタンの新しいアイコンを選択できます。

ボタンのアイコンを選択する

ボタンの構成のために調整できる設定は、他にも多くあります。 UXT Pressable Button コンポーネントの詳細については、ドキュメントをご覧ください。

  1. [コンポーネント] パネルで [ButtonComponent (Inherited)](ButtonComponent (継承)) をクリックし、 [詳細] パネルを下にスクロールして [イベント] セクションを表示します。
    • [On Button Pressed](ボタンが押されたとき) の横にある緑色の + のボタンをクリックして、ボタンが押されたときに呼び出されるイベントをイベント グラフに追加します。

ここから、レベルの WhiteKing アクターへの参照が必要な WhiteKingReset Location 関数を呼び出す必要があります。

  1. [My Blueprint](マイ ブループリント) パネルの [変数] セクションに移動し、 []+ ボタンをクリックして、変数に WhiteKing という名前を付けます。
    • [Details](詳細) パネルで、 [Variable Type](変数の種類) の横にあるドロップダウンを選択し、WhiteKing を検索して、 [Object Reference](オブジェクト参照) を選択します。
    • [Instance Editable](インスタンスの編集可能) の横にあるチェック ボックスをオンにすると、変数をメイン レベルから設定できるようになります。

変数を作成する

  1. WhiteKing 変数を [My Blueprint](マイ ブループリント) > [Variables](変数) から Reset Button イベント グラフにドラッグし、[WhiteKing の取得] を選択します。

関数の起動

あとは、ボタンが押されたときに Reset 関数を正式に起動するだけです。

  1. WhiteKing の出力ピンをドラッグしてリリースし、新しいノードを配置します。 Reset Location 関数を選択します。 最後に、 [On Button Pressed](ボタンが押されたとき) から出力実行ピンを [Reset Location] の入力実行ピンにドラッグします。 ResetButton ブループリントの [Compile](コンパイル)[Save](保存) の後、メイン ウィンドウに戻ります。

On Button Pressed (ボタンが押されたとき) から Reset Location 関数を呼び出す

  1. ResetButton をビューポートにドラッグし、その位置を X = 50Y = -25Z = 10 に設定します。 回転を Z = 180 に設定します。 [Default](既定) で、WhiteKing 変数の値を WhiteKing に設定します。

変数の値を設定する

アプリを実行し、チェスのピースを新しい場所に移動し、先ほどの HoloLens 2 スタイル ボタンを押すと、リセット ロジックが動作するのを確認できます。

これで、対話可能なチェスの駒とボードを備えた Mixed Reality アプリと、駒の位置をリセットする、完全に機能するボタンが完成しました。 ここまでで完成したアプリは GitHub リポジトリにあります。 このチュートリアルをさらに進めて、リセット ボタンを押したらボード全体がリセットされるように、チェスの残りの駒を設定してみてください。

ビューポートの終わりのシーン

このチュートリアルの最後のセクションに進む準備ができました。そこでは、アプリをパッケージ化してデバイスまたはエミュレーターにデプロイする方法について説明します。

重要

アプリケーションをデバイスまたはエミュレーターにデプロイする前のこの時点で、推奨される Unreal パフォーマンス設定 を使用してプロジェクトを更新する必要があります。

次のセクション: 6. デバイスまたはエミュレーターへのパッケージ化とデプロイ