夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

SFチックのUIボードを作る その⑦ ~ボタンの完成~

HoloLensの開発ツールであるMixedRealityToolkitではサンプルとして配置するだけで使用できるボタンやスライダーなど数多くのUIが同梱されています。

開発者はプレファブとして提供されているこれらをシーンに配置し、Eventを指定するだけでUIとして機能します。

ここではBlenderを用いてSF映画や近未来を描いたアニメ作品に登場するようなFUI(Fictional User Interface)を基にHoloLens用のオリジナルデザインのUIボードを作ります。

今回は第6回目です。 5~10つほど作品が完成したタイミングでGitHubにて公開します。

f:id:Holomoto-Sumire:20200131090611j:plain

 前回の記事

redhologerbera.hatenablog.com

 前回までで3DモデリングツールであるBlenderを用いてボタンのメッシュを作成し、メッシュの形状保持機能を用いたシェイプキーを作成してUnityへエクスポートしボタンとしての機能を設定しました。

 今回はボタンを選択した時のアクションを設定してボタンとして完成させ、機能するかを確認します。

〇ボタンのイベント

 ボタンの親オブジェクトに[Interactable]をアタッチします。

f:id:Holomoto-Sumire:20200206090632j:plain

 [Interactable]はそのオブジェクトのコライダーにカーソルが当たっているときに[AirTap]が行われると呼ばれるイベントを提供します。

 [Input Actions]を[Select]にします。この設定はMixedRealityToolkitの[Provider]の[Input]で設定されているアクションキーに依存しています。

 とくにProviderを独自で編集していない場合[Select]がAirTapの動作に対応しています。

 f:id:Holomoto-Sumire:20200206091322j:plain

 [Events]の[+]アイコンをクリックしてイベントを追加します。

 f:id:Holomoto-Sumire:20200206092223j:plain

新しくイベントが追加されます。ボタンにAirTapが行われたときここに設定されたオブジェクト、もしくはオブジェクトのスクリプトに対してイベントを起こせます。 ここではSphereというUnityprimitive3Dオブジェクトをアタッチしました。

 f:id:Holomoto-Sumire:20200206091842j:plain

 次に[No Function]をクリックし具体的な実行イベントを指定します。

 Sphereが持つ機能でイベントとして扱えるものが表示されます。 今回はAirTapによってSphereが表示されるようにします。

 f:id:Holomoto-Sumire:20200206092701j:plain

 呼ばれるFunctionを設定すると、型によって最終的にイベントによってどの状態に変化するのかを指定できます。

 表示、非表示を行うGameObject.SetActiveはBool型であるためチェックボックスで指定します。

 f:id:Holomoto-Sumire:20200206093113j:plain

 実行結果がこちらです。

 f:id:Holomoto-Sumire:20200206093833g:plain

 以上でHoloLensで使えるオリジナルのボタンの完成です。