SlideShare ist ein Scribd-Unternehmen logo
1 von 16
HoloLensでUWPの機
能を活用する時の
Tips
MIYAURA @TAKABRZ1
気持ちの自己紹介
 HoloLensが日本発売されるまで一切Unity触ったことない人
 Unity経験は「Cubeが最も優れたオブジェクトだ」ということをヴァー
チャルアカデミーで教えてもらったレベル。
 本職はSEで全くXR未経験者です。
本日のお題
HoloLensで本気で開発するとおおむねぶち当たる(?)悲しい問題
「スレッド制御」
スレッドスレッドスレッドスレッド
スレッドなにってひとのために
最近のCPUは頭がよく見た目1つですがコアを複数持っていて同時に並列で複数の処理が
できます。
CPU
コア コア コア コア
処理1 処理2 処理3 処理4
同時進行できる。
今日説明する部分
なぜか特定の処理が
スレッドで呼び出せない病
スレッドスレッドスレッドスレッド
処理1 処理2 処理3 処理4
ここでよく問題が起きます。
知らない場合永久にはまりこむことになるかもしれません。
CPU
コア コア コア コア
変数A
0? or 1?
0 1
同時値を入れたら? 呼出せない!?
スレッドには種類があります。
・メインスレッド
アプリケーションを起動してからアプリを終了まで処理を実行するライン。
・その他のスレッド
並列で処理する必要に応じてメインスレッドから呼出すライン
メインスレッド
Aスレッド Bスレッド Cスレッド
アプリ起動
アプリ終了
ここであるルールが悩みの原因に。
そのルールとは。。。
メインスレッドの中しか
使えない処理がある
ルールに乗っからないとエラーで落ちる。
ようやくここで本題の
HoloLensでの問題
HoloLens開発で必要な要素
 HoloLensはUnityで作ったものをUWPで出
力しアプリを作ります。
先のルール覚えてますか?
HoloLensではこんなことになってしま
います。
Unityのメインスレッドでしか呼べないUnity用の処理がある。
UWPのメインスレッドでしか呼べないUWP用の処理がある。
最大限機能を使うには
スレッドに気を配らないといけない。
UnityからビルドしたUWPアプリケーション
APPスレッド
Unityライブラリ
その他スレッド(Taskなどで別途実行)
UIスレッド
UWPライブラリ
(UIスレッド専用)
.NET/UWPライブラリ
(共通で使えるもの)
UWPライブラリ
(UIスレッド専用)
Unityライブラリ
HoloLensのスレッド構造
使う処理によってスレッドの切り替え
が必要
Unity側のライブラリはAppスレッドで動かす
 AppCallBacks.Instance.InvokeAppThreadメソッド
 AppCallBacks.Instance.TryInvokeAppThreadメソッド
UWP側のライブラリはUIスレッドで動かす
 AppCallBacks.Instance.InvokeUIThreadメソッド
 AppCallBacks.Instance.TryInvokeUIThreadメソッド
どれが専用の処理か?
以下に関連する処理は注意
画面オブジェクトを扱う処理
 テキストボックスやボタンへの値設定
デバイスを使う処理
 カメラを操作する等
ファイルを扱う処理
 ファイルのI/O等
楽しいHoloLensライフを!

Weitere ähnliche Inhalte

Was ist angesagt?

オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
GREE VR Studio Lab
 

Was ist angesagt? (20)

Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編
 
AR / VR / MRの世界に、置けるUI、置けないUI、置くべきUI
AR / VR / MRの世界に、置けるUI、置けないUI、置くべきUIAR / VR / MRの世界に、置けるUI、置けないUI、置くべきUI
AR / VR / MRの世界に、置けるUI、置けないUI、置くべきUI
 
Azure Spatial Anchorsを活用したHoloLens & Androidシェアリングアプリ
Azure Spatial Anchorsを活用したHoloLens & AndroidシェアリングアプリAzure Spatial Anchorsを活用したHoloLens & Androidシェアリングアプリ
Azure Spatial Anchorsを活用したHoloLens & Androidシェアリングアプリ
 
UnityでUI開発を高速化した件
UnityでUI開発を高速化した件UnityでUI開発を高速化した件
UnityでUI開発を高速化した件
 
MRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTER
MRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTERMRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTER
MRTK-Unreal(UX Tools) を利用した HoloLens 2 アプリ開発 | UNREAL FEST EXTREME 2020 WINTER
 
Mixed Reality Toolkit 3 Recap
Mixed Reality Toolkit 3 RecapMixed Reality Toolkit 3 Recap
Mixed Reality Toolkit 3 Recap
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
UniTask入門
UniTask入門UniTask入門
UniTask入門
 
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
 
Hubsカスタマイズ 別WEBサイトとのログイン連携による入室制限
Hubsカスタマイズ 別WEBサイトとのログイン連携による入室制限Hubsカスタマイズ 別WEBサイトとのログイン連携による入室制限
Hubsカスタマイズ 別WEBサイトとのログイン連携による入室制限
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow) UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
 
初めてのVR/AR開発をUnityで
初めてのVR/AR開発をUnityで初めてのVR/AR開発をUnityで
初めてのVR/AR開発をUnityで
 
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
 
UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法
 
WebRTC Build MCU on browser
WebRTC Build MCU on browserWebRTC Build MCU on browser
WebRTC Build MCU on browser
 
Unity WebSocket
Unity WebSocketUnity WebSocket
Unity WebSocket
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
Hubs Cloud研究-公開リポジトリを中心に-
Hubs Cloud研究-公開リポジトリを中心に-Hubs Cloud研究-公開リポジトリを中心に-
Hubs Cloud研究-公開リポジトリを中心に-
 

Mehr von Takahiro Miyaura

Mehr von Takahiro Miyaura (20)

Microsoft Ignite 2022の情報 & Microsoft Learnの整理をしてみた
Microsoft Ignite 2022の情報 & Microsoft Learnの整理をしてみたMicrosoft Ignite 2022の情報 & Microsoft Learnの整理をしてみた
Microsoft Ignite 2022の情報 & Microsoft Learnの整理をしてみた
 
Mixed Reality Toolkit 3 の更新状況 - 6月からもちょいちょいアップデートされてるよ
Mixed Reality Toolkit 3 の更新状況 - 6月からもちょいちょいアップデートされてるよMixed Reality Toolkit 3 の更新状況 - 6月からもちょいちょいアップデートされてるよ
Mixed Reality Toolkit 3 の更新状況 - 6月からもちょいちょいアップデートされてるよ
 
Mixed Reality Toolkit 3 - 「MRTK XR Rig」と「Bounds Control」
Mixed Reality Toolkit 3 - 「MRTK XR Rig」と「Bounds Control」Mixed Reality Toolkit 3 - 「MRTK XR Rig」と「Bounds Control」
Mixed Reality Toolkit 3 - 「MRTK XR Rig」と「Bounds Control」
 
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」のUXをみる
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」のUXをみるMixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」のUXをみる
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」のUXをみる
 
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介
Mixed Reality Toolkit 3 のチュートリアル「Zappy’s Playground」の紹介
 
MRTK3を調べてみた
MRTK3を調べてみたMRTK3を調べてみた
MRTK3を調べてみた
 
【続】OpenXRでHoloLensアプリを作る
【続】OpenXRでHoloLensアプリを作る【続】OpenXRでHoloLensアプリを作る
【続】OpenXRでHoloLensアプリを作る
 
OpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみたOpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみた
 
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
 
Mixed Reality Toolkit で OpenXRのEye Trackingを使う
Mixed Reality Toolkit で OpenXRのEye Trackingを使うMixed Reality Toolkit で OpenXRのEye Trackingを使う
Mixed Reality Toolkit で OpenXRのEye Trackingを使う
 
Mixed RealityとAzure Digital Twinsを組合わせてデジタルツインを可視化するためのTips
Mixed RealityとAzure Digital Twinsを組合わせてデジタルツインを可視化するためのTipsMixed RealityとAzure Digital Twinsを組合わせてデジタルツインを可視化するためのTips
Mixed RealityとAzure Digital Twinsを組合わせてデジタルツインを可視化するためのTips
 
Mixed Reality Toolkit V3について
Mixed Reality Toolkit V3についてMixed Reality Toolkit V3について
Mixed Reality Toolkit V3について
 
5周年ふりかえり!HoloLens 1とHoloLens 2のUI操作と実装の違いを改めて見てみよう
5周年ふりかえり!HoloLens 1とHoloLens 2のUI操作と実装の違いを改めて見てみよう5周年ふりかえり!HoloLens 1とHoloLens 2のUI操作と実装の違いを改めて見てみよう
5周年ふりかえり!HoloLens 1とHoloLens 2のUI操作と実装の違いを改めて見てみよう
 
World Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになったWorld Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになった
 
UIデザイン設計から開発をつなぐ「MRTK Figma Bridge for Unity」を使ってみよう
UIデザイン設計から開発をつなぐ「MRTK Figma Bridge for Unity」を使ってみようUIデザイン設計から開発をつなぐ「MRTK Figma Bridge for Unity」を使ってみよう
UIデザイン設計から開発をつなぐ「MRTK Figma Bridge for Unity」を使ってみよう
 
Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて
 Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて
Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて
 
今改めて見る Plane finding
今改めて見る Plane finding今改めて見る Plane finding
今改めて見る Plane finding
 
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -
 
Mixed Reality関連のSDKの状況を調べてみた
Mixed Reality関連のSDKの状況を調べてみたMixed Reality関連のSDKの状況を調べてみた
Mixed Reality関連のSDKの状況を調べてみた
 
Azure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたいAzure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたい
 

HoloLensでUWPの機能を活用する時のtips