はじめに
Input-VirtualControllerシーンについて
シーン構成
シーン構成 |
---|
NRCameraRig |
NRInput |
Directional Light |
TargetModelDisplayCtrl |
[Tip:----------------------------] |
[Drag " NRVirtualDisplayer" Prefab Here] |
[Then Breake Prefab Instance And Make] |
[Your Custom Virtual Controller. ] |
CustomVirtualDisplayer |
NRCameraRig、NRInput
Nrealに対応したカメラ、入力システム
別のサンプルシーンで読んでます。
NrealSDK1.3.0のHelloMRシーンを読んでみる
Directional Light
Unity製のライト。
TargetModelDisplayCtrl
[Tip:----------------------------]
このオブジェクト以下はTipを記載しているらしい。
読んでみよう。
Drag " NRVirtualDisplayer" Prefab Here
Then Breake Prefab Instance And Make
Your Custom Virtual Controller.
NRVirtualDisplayerのプレハブをHierarchyにドラッグして
カスタムの仮装コントローラーを作れるらしい
(既存のNRVirtualDisplayerに同期されてしまうので、プレハブ化を無効にするってことですね)
え、便利!!
もう少し理解するため、公式ページを覗いてみた。
以下Nreal公式リファレンス引用
Nreal電話コントローラーの優れた点の1つは、UIインターレースを簡単にカスタマイズできることです。Nreal電話コントローラーを使用する2つの方法は次のとおりです。
・デフォルトの方法 「NRInput」プレハブをシーンにドラッグするだけです。次に、デバイスでアプリを実行すると、デフォルトの仮想コントローラー( "NRVirtualDisplayer"プレハブ)が自動的にロードされます。3つの一般的なコントローラーボタン(トリガー、ホーム、アプリ)があります。この仮想コントローラーは、NrealLightコントローラーと非常によく似ています。
・カスタム方法 「NRInput」プレハブをシーンにドラッグします。次に、「NRVirtualDisplayer」プレハブをシーンにドラッグし、必要に応じて変更します。たとえば、アプリケーションに合わせて、いくつかの新しいボタンを追加したり、コントローラーUIのスタイルを変更したりします。
引用:https://developer.nreal.ai/develop/unity/customize-phone-controller
Nreal Lightでは、グラスにスマートフォンをコントローラーとして接続するので、それに使うようです。
デフォルトだと、2つのボタンとタッチ、ドラッグを検出する場所のみなので、
その他必要なUI等をカスタムできると、、、そういう話か。
CustomVirtualDisplayer
カスタムされたコントローラーを子に持つオブジェクト
スクリプト名 | 役割 |
---|---|
NRVirtualDisplayer | NRInputクラスのEmulateVirtualDisplayInEditorの結果によって、仮装コントローラーの表示を行なっていたり、タッチした座標の更新を行なっている。各ボタンの状態はMultiScreenControllerで管理して流している。プレハブ内にあるBaseControllerPanelがデフォルトのコントローラー |
CustomVirtualControlerUI | これがカスタムした仮装コントローラー。VirtualDisplayerの子にUIを配置することで、コントローラーを作ることができる。 |
各色でNrealのロゴの色を変更
スライダーで大きさの変更
Resetボタンはそのままリセットって感じで。
簡易的ながら、UIを複数配置できるのはいいですね。
Nreal Developer Kit で実行してみた
コントローラーを指でタッチしながら、黄色矢印方向に動かすとロゴが回転する仕組み
Developer Kitでは何も変化がないですね(NrealLight買うか、、
まとめ
UIの処理のみで仮装コントローラーが作れるのは大変ありがたいです!
とすると、Developer KitよりNreal Lightを買ったほうがより良いショートカットなどを作れて大変便利なのでは!?
NRVirtualDisplayerはUnityEditor上で確認できるのでDeveloper Kitでもよく使うことになると思います。
さいごに
NrealのInputが一通り理解できました。
最近(2020/09末)NRSDKが更新され、Inputで取得できる情報が追加されたようですね
(今後も増えていくのだろうか)
今後も更新を追いかけつつ、Nrealに関する記事を投稿していきたいと思います。