SlideShare a Scribd company logo
2022/06/23
福本良介とホロモン
・ホロモンアプリをMRTK3環境で動かしてみました!
現在 MRTK3 はパブリックプレビューです
以下の目的での利用が推奨されています
・最新の機能を試してプロトタイプを構築したい
・XR Interaction Toolkit と MRTK3 によるインフラストラクチャーの理解を深めたい
・新しいパッケージング戦略とアラカルト依存関係モデルを評価したい
・OpenXR の互換性と機能の詳細を確認したい
・新しい UX システムとビジュアルデザイン言語について学びたい
以下の目的での利用は推奨されていません
・既存のプロジェクトを 2.x から MRTK3 に移行する(現在の API の不安定性により、移行作業がスムーズに進まない可能性があるため)
・安定した API を期待する実稼働可能なコードを作成する
・アプリケーションのパフォーマンスを評価する (フルリリースでは現在のコードと比較してパフォーマンスが異なる場合があるため)
ホロモンアプリの以下の機能を MRTK3 でも動作するように対応
・同じジェスチャーをするためのハンドトラッキング
・コミュニケーションをとるための音声入力
・現実世界を移動するための空間認識
指定フレーズの音声入力で呼びかけ ハンドジェスチャ認識でじゃんけん
ハンドトラッキングと音声入力は MRTK サブシステムからアクセスできる
MRTKv2 における以下の機能は廃止された
・CoreService
・OnSourcePoseChanged, OnSourceDetected,
OnSourcePoseChanged のイベント
public class HandGesture : MonoBehaviour, IMixedRealityHandJointHandler
{
private void OnEnable()
{
// 登録
CoreServices.InputSystem?.RegisterHandler<IMixedRealityHandJointHandle
r>(this);
}
public void
OnHandJointsUpdated(InputEventData<IDictionary<TrackedHandJoint,
MixedRealityPose>> eventData)
{
// 手の更新イベント
}
}
MRTKv2 での実装例
こんな感じに CoreService に登録して
イベントを受け取る感じの実装
以下のサブシステムからハンドジョイントを毎フレーム取得する
・HandsAggregatorSubsystem
public class HandTrackingHandlerMRTK3 : MonoBehaviour
{
private HandsAggregatorSubsystem aggregator;
void Start()
{
// HandsAggregatorSubsystem は全てのハンド情報を統括管理するサブシステム
aggregator =
XRSubsystemHelpers.GetFirstRunningSubsystem<HandsAggregatorSubsystem>();
}
void Update()
{
bool allJointsAreValid = aggregator.TryGetEntireHand(XRNode.LeftHand,
out IReadOnlyList<HandJointPose> joints);
if (allJointsAreValid)
{
// 手の更新処理
}
}
}
MRTK3 での実装例
こんな感じにサブシステムにアクセスして
ハンド情報を取得する感じの実装
型は異なるが、取れるデータはほぼ同じ
MRTKv2 における以下の機能は現状実装されていない
・SpeechInput のプロファイル設定
・SpeechInputHandler
MRTKv2 での利用例
プロファイルに利用する文言を定義して
SpeechInputHandler でイベントを設定
以下のサブシステムを有効にしてキーワードと UnityAction を登録する
・WindowsPhraseRecognitionSubsystem
MRTK3 での利用例
キーワードと UnityAction の登録には
MRTK Speech オブジェクトを有効化して
SpeechInteractor スクリプトを介して
登録する方法と
スクリプトから手動で登録する方法がある
(今回は後者)
スクリプトでの登録例
public class SpeechInputHandler : MonoBehaviour
{
void Start()
{
PhraseRecognitionSubsystem phraseRecognitionSubsystem =
XRSubsystemHelpers.GetFirstRunningSubsystem<PhraseRecognitionSubsystem>();
if (phraseRecognitionSubsystem != null)
{
phraseRecognitionSubsystem.CreateOrGetEventForPhrase("おいで
").AddListener(() => {
// 音声コマンド処理
});
}
}
}
今回はこんな感じの登録用スクリプトを自作
2022/6/22 時点の最新の MRTK Windows Speech Recognition の
バージョン 3.0.0-pre.6 には不具合があり、音声入力が動作しない
GitHub に issue があがっており、そちらでコードは修正済みなので
MRTK3 で音声認識を利用したい場合は修正を反映すること
詳細はブログにまとめてあるので以下参照。
https://bluebirdofoz.hatenablog.com/entry/2022/06/21/225944
・新機能も使ってないので現状は本当に動いたというだけ
・現在 MRTK3 はパブリックプレビューなので
MRTKv2 に比べて不便な箇所が多い
・前述の注意でお話しした通り、特別な理由がない限りは
MRTKv2 を使った方が良い
Dev Days 2022 の Hackathon 参加者の糧になれば嬉しい
UI系の差し替えがまだだが、現状手動でやるしないのでこの差し替えが一番大変そう……
福本良介(ホロモン) Twitter:@HoloAdventure
・デジモン大好き!
・HoloLens 2 大好き!
・Microsoft MVP
技術ブログ書いてます(MRが楽しい)
https://bluebirdofoz.hatenablog.com/
ホロモンアプリを紹介するYouTubeチャンネル
(ホロモン開発ラボ)
https://www.youtube.com/channel/UCOtzLPAzBsVlsWFhg9eb3EQ
・Holographic Monsters というアプリをリリースしました。
・デジタルなモンスターと
現実世界で遊ぶアプリです
・HoloLens 2 をかぶって
右のQRコードを見ると
インストール画面が出ます
・個人 HoloLens 2 勢の方は
是非遊んでみてください

More Related Content

Similar to 20220623_HoloLensMeetupVol30_Lt

NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
Takuji Kawata
 
Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみたMagic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみた
NishoMatsusita
 
機械学習によるマーケット健全化施策を支える技術
機械学習によるマーケット健全化施策を支える技術機械学習によるマーケット健全化施策を支える技術
機械学習によるマーケット健全化施策を支える技術
Hirofumi Nakagawa
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
拓将 平林
 
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Oracle Labs 発! Parallel Graph AnalytiX(PGX)Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
オラクルエンジニア通信
 
gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築
Kazuki Ogiwara
 
LogicFlow 概要
LogicFlow 概要LogicFlow 概要
LogicFlow 概要
Tomoyuki Obi
 
Microservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on AzureMicroservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on Azure
Tsukasa Kato
 
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013Akira Inoue
 
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
オラクルエンジニア通信
 
Service Robot Design Matrix (SRDM) を用いたサービスロボットシステムの開発
Service Robot Design Matrix (SRDM) を用いたサービスロボットシステムの開発Service Robot Design Matrix (SRDM) を用いたサービスロボットシステムの開発
Service Robot Design Matrix (SRDM) を用いたサービスロボットシステムの開発
NoriakiAndo
 
20180929 lowcode developlogicflow
20180929 lowcode developlogicflow20180929 lowcode developlogicflow
20180929 lowcode developlogicflow
Tomoyuki Obi
 

Similar to 20220623_HoloLensMeetupVol30_Lt (13)

NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
 
ERP FAS DESIGN
ERP FAS DESIGNERP FAS DESIGN
ERP FAS DESIGN
 
Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみたMagic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみた
 
機械学習によるマーケット健全化施策を支える技術
機械学習によるマーケット健全化施策を支える技術機械学習によるマーケット健全化施策を支える技術
機械学習によるマーケット健全化施策を支える技術
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
 
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Oracle Labs 発! Parallel Graph AnalytiX(PGX)Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
 
gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築
 
LogicFlow 概要
LogicFlow 概要LogicFlow 概要
LogicFlow 概要
 
Microservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on AzureMicroservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on Azure
 
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
最新 .NET テクノロジと次世代型アプリ開発 2013 : DE-011, MSC 2013
 
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
 
Service Robot Design Matrix (SRDM) を用いたサービスロボットシステムの開発
Service Robot Design Matrix (SRDM) を用いたサービスロボットシステムの開発Service Robot Design Matrix (SRDM) を用いたサービスロボットシステムの開発
Service Robot Design Matrix (SRDM) を用いたサービスロボットシステムの開発
 
20180929 lowcode developlogicflow
20180929 lowcode developlogicflow20180929 lowcode developlogicflow
20180929 lowcode developlogicflow
 

More from Holo Mon

20230121_HoloLensMeetupVol32_Lt
20230121_HoloLensMeetupVol32_Lt20230121_HoloLensMeetupVol32_Lt
20230121_HoloLensMeetupVol32_Lt
Holo Mon
 
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
Holo Mon
 
20220118 holo lensmeetupvol29_lt_holomon
20220118 holo lensmeetupvol29_lt_holomon20220118 holo lensmeetupvol29_lt_holomon
20220118 holo lensmeetupvol29_lt_holomon
Holo Mon
 
20210423 kobe meetupvol4lt
20210423 kobe meetupvol4lt20210423 kobe meetupvol4lt
20210423 kobe meetupvol4lt
Holo Mon
 
20210322 holo lensmeetupvol25_lt_holomon
20210322 holo lensmeetupvol25_lt_holomon20210322 holo lensmeetupvol25_lt_holomon
20210322 holo lensmeetupvol25_lt_holomon
Holo Mon
 
20210118 holo lensmeetupvol24_lt_holomon
20210118 holo lensmeetupvol24_lt_holomon20210118 holo lensmeetupvol24_lt_holomon
20210118 holo lensmeetupvol24_lt_holomon
Holo Mon
 
20201003 kobe hololensmeetup_lt_holomon
20201003 kobe hololensmeetup_lt_holomon20201003 kobe hololensmeetup_lt_holomon
20201003 kobe hololensmeetup_lt_holomon
Holo Mon
 
20200831 x r_developerscommunityconference_holomon
20200831 x r_developerscommunityconference_holomon20200831 x r_developerscommunityconference_holomon
20200831 x r_developerscommunityconference_holomon
Holo Mon
 
20200729 holo meetupvol21_lt_mrtk_channelmapmaker
20200729 holo meetupvol21_lt_mrtk_channelmapmaker20200729 holo meetupvol21_lt_mrtk_channelmapmaker
20200729 holo meetupvol21_lt_mrtk_channelmapmaker
Holo Mon
 
xRLT vol.3 HoloMon LT
xRLT vol.3 HoloMon LTxRLT vol.3 HoloMon LT
xRLT vol.3 HoloMon LT
Holo Mon
 
Hololens2 hackday 2020 in Tokyo
Hololens2 hackday 2020 in TokyoHololens2 hackday 2020 in Tokyo
Hololens2 hackday 2020 in Tokyo
Holo Mon
 
Hololen smeetup 13 holomon
Hololen smeetup 13 holomonHololen smeetup 13 holomon
Hololen smeetup 13 holomon
Holo Mon
 
Holo mon in 3d viewer
Holo mon in 3d viewerHolo mon in 3d viewer
Holo mon in 3d viewer
Holo Mon
 
RS4 Animation 3D Launchers
RS4 Animation 3D LaunchersRS4 Animation 3D Launchers
RS4 Animation 3D Launchers
Holo Mon
 
RS4 3D APP Launchers
RS4 3D APP LaunchersRS4 3D APP Launchers
RS4 3D APP Launchers
Holo Mon
 

More from Holo Mon (15)

20230121_HoloLensMeetupVol32_Lt
20230121_HoloLensMeetupVol32_Lt20230121_HoloLensMeetupVol32_Lt
20230121_HoloLensMeetupVol32_Lt
 
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
20220323_KobeHoloLensMeetupVol5_Lt_HoloMon.pptx
 
20220118 holo lensmeetupvol29_lt_holomon
20220118 holo lensmeetupvol29_lt_holomon20220118 holo lensmeetupvol29_lt_holomon
20220118 holo lensmeetupvol29_lt_holomon
 
20210423 kobe meetupvol4lt
20210423 kobe meetupvol4lt20210423 kobe meetupvol4lt
20210423 kobe meetupvol4lt
 
20210322 holo lensmeetupvol25_lt_holomon
20210322 holo lensmeetupvol25_lt_holomon20210322 holo lensmeetupvol25_lt_holomon
20210322 holo lensmeetupvol25_lt_holomon
 
20210118 holo lensmeetupvol24_lt_holomon
20210118 holo lensmeetupvol24_lt_holomon20210118 holo lensmeetupvol24_lt_holomon
20210118 holo lensmeetupvol24_lt_holomon
 
20201003 kobe hololensmeetup_lt_holomon
20201003 kobe hololensmeetup_lt_holomon20201003 kobe hololensmeetup_lt_holomon
20201003 kobe hololensmeetup_lt_holomon
 
20200831 x r_developerscommunityconference_holomon
20200831 x r_developerscommunityconference_holomon20200831 x r_developerscommunityconference_holomon
20200831 x r_developerscommunityconference_holomon
 
20200729 holo meetupvol21_lt_mrtk_channelmapmaker
20200729 holo meetupvol21_lt_mrtk_channelmapmaker20200729 holo meetupvol21_lt_mrtk_channelmapmaker
20200729 holo meetupvol21_lt_mrtk_channelmapmaker
 
xRLT vol.3 HoloMon LT
xRLT vol.3 HoloMon LTxRLT vol.3 HoloMon LT
xRLT vol.3 HoloMon LT
 
Hololens2 hackday 2020 in Tokyo
Hololens2 hackday 2020 in TokyoHololens2 hackday 2020 in Tokyo
Hololens2 hackday 2020 in Tokyo
 
Hololen smeetup 13 holomon
Hololen smeetup 13 holomonHololen smeetup 13 holomon
Hololen smeetup 13 holomon
 
Holo mon in 3d viewer
Holo mon in 3d viewerHolo mon in 3d viewer
Holo mon in 3d viewer
 
RS4 Animation 3D Launchers
RS4 Animation 3D LaunchersRS4 Animation 3D Launchers
RS4 Animation 3D Launchers
 
RS4 3D APP Launchers
RS4 3D APP LaunchersRS4 3D APP Launchers
RS4 3D APP Launchers
 

20220623_HoloLensMeetupVol30_Lt