はじめに
NRSDK 1.3.0にあるHelloMRシーンを観察していきます。
もし間違いがあれば、指摘いただければ幸いです。
HelloMRシーンについて
NrealSDKに既存で入っているシーン
平面を検知し、床オブジェクトを生成、床オブジェクトをタッチした位置にマスコットを配置するというもの
おそらく、Nreal実機確認の際に一番初めに使用するであろうもの
シーン構成
以下の6つからなる
シーン構成 |
---|
NRCameraRig |
NRInput |
NRLogo |
TrackingInfomationTips |
PlaneDetector |
Directional Light |
NRCameraRig
子にLeftCamera、CenterCaemra、RightCameraがある名前の通りカメラのプレハブ
NRSDK>Prefabsに存在する
Nrealでは、Unity既存のMainCameraではなく、NRCameraRigを使う。
スクリプト名 | 役割 |
---|---|
NRSessionBehaviour | ARシステムの状態を管理するNRSessionManagerを生成し、SessionConfigの情報を設定している。SessionConfigは平面検知方法や画像認識の有無、画像認識ソースなどを設定している |
NRHMDPoseTracker | カメラパラメータを初期化し、デバイスの姿勢を更新するために使用する。TrackingType(3Dof,6Dof)が設定できる。 |
AppManager | Nrealのコントローラーのイベントを設定している。NRInputクラスのAddClickListenerで設定している |
NRMultiDisplayManager | NrealLightでスマートフォンをコントローラーとする時に必要なものらしい(参考:https://developer.nreal.ai/develop/unity/customize-phone-controller) |
NRInput
コントローラーの状態の取得、コントローラーの状態の更新など、コントローラーに関連する処理を行うメインクラス
公式ページに非常にわかりやすく説明してありました。
→https://developer.nreal.ai/develop/unity/controller
スクリプト名 | 役割 |
---|---|
NRInput | コントローラーの状態の取得、更新などを行うクラス。UnityEditorで実行した際のコントローラーオブジェクトなどはこのクラス経由で作られているみたい。通常はNrealDeveloperKitのコントローラーが生成されるが、EmulateVirtualDisplayInEditorをTrueにすると、NrealLightで使用するスマートフォンのコントローラーが生成される。 |
NRLogo
Nrealのロゴ
特にアタッチされているスクリプトはない
TrackingInfomationTips
カメラのトラッキング状態をコンソール、または視覚的に伝えてくれるもの
NRSDK>Demo>ResourceにあるLostTrackingTip、UnInitializedTipなどを生成してくれる
PlaneDetector
スクリプト名 | 役割 |
---|---|
PlaneDetector | 平面と認識された場所に視覚化するためのオブジェクトを生成する平面オブジェクトはPolygonPlaneVisualizerが設定されており、インスペクタから変更可能 |
HelloMRController | Rayを飛ばし、ヒットした場所にオブジェクトを生成するもの。サンプルシーンでは、Mascotが設定されており、インスペクタから変更可能 |
UserDefinePanel | UserDefinePanelを生成するもの |
・Directional Light
Unity製のライト
終わりに
今後もほかのシーンを観察しつつ、学べたらと思います。
理解次第、追記していきます。