Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mixed Reality Toolkit V2のMixed Reality Scene Systemを使う

326 views

Published on

XRミーティング 2019/10/16 登壇資料
Mixed Reality Toolkit V2に追加されているScene Systemについての紹介。
UnityのSceneを管理し切替えを容易にするための機能として提供されています。

Published in: Technology
  • @ssuserac3ce0 コメントありがとうございます。解決のお役に立ててうれしいです。MRTKV2は基本的に使いたい機能の有効/無効をまずする形になるので他の機能を試すときにも注意してください。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 今までHoloLensでSceneを切り替える方法が分からなかったのですが、この資料を見て初めてわかりました!! 13ページの「Enable Scene System」を有効にしないとうまく動作しないところにつまづいてしまいましたが、なんとかシーン切り替えできました。本当に助かりました。ありがとうございます。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Mixed Reality Toolkit V2のMixed Reality Scene Systemを使う

  1. 1. takabrz1 大阪駆動開発 Takahiro Miyaura Mixed Reality Toolkit V2の Mixed Reality Scene Systemを使う ~ MRTK V2の画面遷移 ~ Master Contents Lighting Contens2 Mixed Reality Scene System
  2. 2. 宮浦 恭弘 (Miyaura Takahiro)  大阪駆動開発コミュニティに生息  HoloLensが日本販売してからXR系技術に取組む  HoloLens系技術Tipsを公開し続けた結果、よく知っている人扱いを受ける。  Mixed Reality Toolkit(以降MRTK)のTipsが比較的多めで、普段(?)からよく (?)MRTKの調査などを行っているうちにMRTKに詳しい人扱いを受ける。  HoloLensを中心にXR系技術と相性のいい技術(機械学習、IOT)を組合せ て日々遊びの中で知見を蓄えています。 技術Tips : https://qiita.com/miyaura takabrz1 ※よかったらこれを機にお知り合いになってください Microsoft MVP for Windows Development 2018-2020 某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず)= XRは趣味です (貢献領域:Mixed Reality)
  3. 3. 本日のテーマ Mixed Reality Toolkit V2の機能の1つ 「Mixed Realirty Scene System」を紹介 UnityのSceneの管理と制御 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) 3
  4. 4. Mixed Reality Scene System UnityのScene管理と制御 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) Mixed Reality Toolkit V2はシーン内に2つのオブジェクトが必要 MixedRealityToolkit MixedRealityPlaySpace UnityでのSceneの取扱い Sceneを「コンテンツ切替え」/「部品」の管理として利用 コンテンツの切替えはSceneManagerを使う。 4 少しおさらい
  5. 5. Mixed Reality Scene System UnityのScene管理と制御 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) Sceneを分けると意外と困ることがある Sceneが増えると管理が大変 シーン間を行き来するような遷移の前後関係も注意がいる LoadしたりUnLoadしたり制御が大変 5 なぜMixed Reality Scene Systemがいるのか シーンを管理し、必要に応じて切替えや遷移をしたい
  6. 6. Mixed Reality Scene System Sceneの管理 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) Manager アプリケーションで一意のオブジェクト(管理系機能)を格納 Sceneを切替えてもアンロードされない Lighting 光源の情報を持つSceneを複数管理 Contents コンテンツ情報を持つSceneを複数管理 6 Mixed Reality Scene Systemでは3つのカテゴリでSceneを管理
  7. 7. Mixed Reality Scene System Sceneのロード/遷移系の操作 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) UnityのSceneManagerの代替機能 あらかじめ定義したManager, Lighting, Contentsの情報を管理 必要に応じてそれらの情報を取得 Sceneの切替えが可能(指定/前/後) Scene切替え時のイベント制御(Load前後で発生するイベント等) 7 MixedRealitySceneSystemオブジェクトを利用 MixedRealitySceneSystemを使う場合はUnityのSceneManagerは使わない
  8. 8. Mixed Reality Scene System 実装手順 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) 8
  9. 9. Mixed Reality Scene System Sceneの作成 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) Manager MRTKで使う管理オブジェクト アプリで使う管理オブジェクト Lighting 光源に関するオブジェクト Contents(今回は4つ) 実際のコンテンツ 9 SceneはManager, Lighting, Contentsに分けて作成
  10. 10. Mixed Reality Scene System Sceneの設定 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) 設定変更用にプロファイルを作成 Copy & Customizeを押下 10 Sceneの設定はMixedRealityToolkitオブジェクトで実施
  11. 11. Mixed Reality Scene System Sceneの設定 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) Target Folder:任意のフォルダを指定 Profile Name:任意のProfile名を指定 [Clone]を押下 11 任意の場所に設定プロファイルの複製
  12. 12. Mixed Reality Scene System Sceneの設定 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) メニューの[Scene System]を選択 [Clone]を押下し複製する 12 Scene Systemの設定プロファイルの複製
  13. 13. Mixed Reality Scene System Sceneの設定 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1)  Enable Scene System  有効/無効の設定  Editor Manage Build Settings  ビルド設定にシーンをすべて追加するかどうか  Editor Manage Loaded Scenes  Manager, Lighting, Contentsが常にロードされるかどうか  Editor Enforce Scene Order  Manager→Lighting→Contentsの順にロードするかどうか  Editor Enforce Lighting Scene  光源用のSceneに利用できる種類を強制するかどうか 13 Scene Systemのパラメータの設定
  14. 14. Mixed Reality Scene System Sceneの設定 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) Use Manager Scene : 使用有無 Manager用Sceneを利用するか Manager用のSceneの設定 Manager用のSceneを設定する ビルド設定に追加/削除 ボタン押下でビルド設定への追加/削除が可能 14 Manager Scene Settings
  15. 15. Mixed Reality Scene System Sceneの設定 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1)  Use Lighting Scene:使用有無  Lighting用のSceneを利用するか  Default Lighting Scene :デフォルトのScene設定  デフォルトのSceneを選択する  Size:利用するLighting Sceneの数  設定するSceneの数を設定する。  Lighting用Sceneの設定  Lighting用のSceneを設定する。  Add to build settings  ボタン押下でビルド設定への追加/削除が可能 15 Lighting Scene Settings
  16. 16. Mixed Reality Scene System Sceneの設定 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) 16 Contents Scene Settings  Size:利用するContents Sceneの数  設定するSceneの数を設定する。  Contents用Sceneの設定  Contents用のSceneを設定する。  Add to build settings  ボタン押下でビルド設定への追加/削除が可能  Tag  Sceneにタグ名を設定  タグ名指定でロードしたい場合に設定する
  17. 17. Mixed Reality Scene System Sceneの設定 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) ビルド設定でScenes In Buildに Sceneをすべて登録 登録済みの場合はグリーンの チェックになる 17 各SceneをScenes In Buildに設定
  18. 18. using Microsoft.MixedReality.Toolkit; using Microsoft.MixedReality.Toolkit.SceneSystem; using UnityEngine; using UnityEngine.SceneManagement; public class SceneStarter : MonoBehaviour { private IMixedRealitySceneSystem sceneSystem; void Start() { sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>(); sceneSystem.LoadContent(sceneSystem.ContentSceneNames[0],LoadSceneMode.Single); } } Mixed Reality Scene System Sceneのロード(指定) 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) 18 指定ContentsのロードはLoadContentを利用 Scene System サービスの取得 登録済みのContentsリストから 最初のsceneを指定 Single:書換え Additive:追加
  19. 19. public class SceneController : MonoBehaviour { private IMixedRealitySceneSystem sceneSystem; void Start() { sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>(); } public void NextContents() { if (sceneSystem.NextContentExists) { sceneSystem.LoadNextContent(true, LoadSceneMode.Single); } } public void PrevContents() { if (sceneSystem.PrevContentExists) { sceneSystem.LoadPrevContent(true, LoadSceneMode.Single); } } } Mixed Reality Scene System Sceneの遷移(前/後) 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) 19 LoadPrevContent/LoadNextContentを利用 端まで来たらループして遷移するかどうか ※そうはならなかった 次のContentsへ 前のContentsへ Scene System サービスの取得
  20. 20. まとめ Mixed Reality Toolkit V2の機能の1つ 「Mixed Reality Scene System」を紹介 UnityのSceneの管理と制御  共通で使うコンポーネントはManagerのシーンで作成可能  ライティング用のシーンを複数用意し切替え可能  コンテンツ用のシーンはNext, Prevで前後へ遷移可能  SceneManagerを使うと動きがおかしくなる 2019/10/16 Copyright © 2019 Takahiro Miyaura(@takabrz1) 20
  21. 21. 大阪駆動開発 関西を中心に、IT系のおもしろそうなことを楽しんでやるコミュニティ

×