Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Unity で HoloLens 2 アプリを開発しよう!公式 SDK の MRTK-Unit...
Search
Shinya Tachihara
December 15, 2020
Programming
1
1.2k
Unity で HoloLens 2 アプリを開発しよう!公式 SDK の MRTK-Unity の紹介
【Mixed Reality Dev Days Japan 前夜祭】(
https://hololens.connpass.com/event/197070/
) の HL2 アプリ開発の紹介です。
Shinya Tachihara
December 15, 2020
Tweet
Share
More Decks by Shinya Tachihara
See All by Shinya Tachihara
TokyoHoloLensMeetUp_vol21.pdf
decoc
1
1.1k
Other Decks in Programming
See All in Programming
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
29
11k
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
490
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
770
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.1k
Amazon S3 TablesとAmazon S3 Metadataを触ってみた / 20250201-jawsug-tochigi-s3tables-s3metadata
kasacchiful
0
100
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
260
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
200
ARA Ansible for the teams
kksat
0
150
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
660
Software Architecture
hschwentner
6
2.1k
【PHP】破壊的バージョンアップと戦った話〜決断と説得
satoshi256kbyte
0
120
AWS Organizations で実現する、 マルチ AWS アカウントのルートユーザー管理からの脱却
atpons
0
130
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Gamification - CAS2011
davidbonilla
80
5.1k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
99
18k
Transcript
Unity で HoloLens 2 アプリを開発しよう! 公式 SDK の MRTK-Unity の紹介
MRDevDays Japan 前夜祭
自己紹介 株式会社ホロラボ 立原 愼也 (@deco_c_) おしまい!
アジェンダ • MRTKの紹介 • 環境構築 • MRTKのインポートとセットアップ • アプリケーションのビルド
Mixed Reality Toolkit (MRTK) クロスプラットフォームでMRアプリ開発を加速するためのコンポーネントと機能群 microsoft/MixedRealityToolkit-Unity: Mixed Reality Toolkit (MRTK)
provides a set of components and features to accelerate cross-platform MR app development in Unity. (github.com)
MRTKが提供する多様な機能 MRTKが提供する入力システムや認識した環境を 処理する機能 MRTKの機能を使ったUI/UX コンポーネント群
クロスプラットフォームサポート • Microsoft HoloLens • Microsoft HoloLens 2 • Windows
Mixed Reality headsets • OpenVR headsets (HTC Vive / Oculus Rift) • Ultraleap Hand Tracking • iOS や Android などのモバイルデバイス プラットフォームが異なってもボタンやオブジェクトの操作が同じようにできる
MRTKの歴史 2016/05 HTK 2020/09 MRTK v2.5 2017/01 MRTK v1 2018/08
MRTK vNext α 2019/08 MRTK v2.0 HL gen 1 向け ライブラリの作りを一新 リブランディング HoloLens gen 1 の頃から、4年以上MRアプリ開発の知見を積み重ねていっている
開発環境 • Windows SDK 18362+ • Unity 2018.4.x • Visual
Studio 2019 Visual Studio Installer 経由でそろいます
Visual Studio のインストール • Visual Studio 2019
Visual Studio Installer - C++ によるデスクトップ開発 - ユニバーサル Windows プラットフォーム開発
- Unity によるゲーム開発
Visual Studio Installer - Unity Hub 以前は、Unity 201x.x でしたがいつの頃か Unity
Hub をインストール するようになっています - USBデバイスの接続 - C++ (v142) ユニバーサル Windows プラットフォーム - C++ (v141) ユニバーサル Windows プラットフォーム
Unity Hub Unity のインストール Unity Hub -> インストール 推奨 リリースのUnityにチェック
Universal Windows Platform Build Support にチェック
Unity Hub プロジェクトの作成 Unity Hub -> プロジェクト インストールしたUnity バージョンを指定 •
3Dを指定 • プロジェクト名をつける(ex. MRDD) ※ 保存先のパスはあまり深くならないようにする
Unity Universal Windows Platform 環境に切り替える File -> Build Settings… Universal
Windows Platform を 選択して Switch Platform
MRTKのPackage Foundation Tools Examples Extensions Test Utilities MRTKの本体 MRTKを使った サンプル集
シーン遷移 などのMRTKの拡張 サービス MRTKの開発を便利 にするツール群 (主にEditor拡張系) 2.5 から追加された インタラクションを 使ったテストをしや すくするツール
MRTKのインポート Unity Package Unity Package Manager • Unity Package をDLしてきてUnityにイン
ポートする方法 • Manifest ファイルを弄らず、D&Dでで きるので心理的に楽 • PackageをEditor GUIで管理する方法。 • バージョン管理が楽 Mixed Reality Toolkit and Unity Package Manager | Mixed Reality Toolkit Documentation (microsoft.github.io)
MRTKのインポート Unity Package 版 Releases · microsoft/MixedRealityToolkit- Unity (github.com) リリースページへアクセス
Mixed Reality Foundation をDL
MRTKのインポート Unity Package 版 Assets -> Import Package -> Custom
Package DLしたパッケージを指定 して開く Import 下記の方法でもインポートできます • EditorのProjectsタブでAssets にD&D • DLしたUnityPackageを実行
MRTKのインポート Unity Package Manager 版 Microsoft Mixed Reality https://pkgs.dev.azure.com/aipmr/MixedReality-Unity- Packages/_packaging/Unity-packages/npm/registry/
com.microsoft.mixedreality com.microsoft.spatialaudio Edit -> Project Settings…. Package Manager に次を入れる
MRTKのインポート Unity Package Manager 版 Assets -> Show in Explorer
Packages を開く manifest.json を VSやVSCode など のテキストエディタで開く
MRTKのインポート Unity Package Manager 版 dependencies に "com.microsoft.mixedreality.toolkit.foundation": "2.5.1", を追加してUnityに戻る
Window -> Package Manager Microsoft Mixed Reality Toolkit Foundation が 追加されていればOK
MRTKのセットアップ Unity Package インポート後に出てくる 設定をApply もし、Later で飛ばしてしまっても後からやり 直すことができます Mixed Reality
Toolkit -> Utilities -> Configure Unity Project
シーンのセットアップ Mixed Reality Toolkit -> Add to Scene and Configure
Hierarchy に下記が生成される - Mixed Reality Toolkit - Mixed Reality Playspace
セットアップ済みのシーンを使う (UPM版) UPM版では、サンプルの構築済 みのシーンをインポートできる Assets -> Samples -> Mixed Reality
Toolkit Foundation -> Scene System Resources -> DefaultManagerScene
MRTKのセットアップ Profile Mixed Reality Toolkit Profile Camera Profile Camera Settings
Profile Input System Profile Input Pointer Profile ・・・ MRTKは複数のProfileと呼ばれる機能ごとの設定によって動作が決まる
MRTKのセットアップ HoloLens 2 用に設定する Default Mixed Reality Toolkit Configuration Profile
を押す Default HoloLens 2 Configuration Profile を選択 Game Scene が真っ暗になって いたらOK
Sceneを再生してみる Shift キーを押す 手が出たらOK Play ボタンを押し てSceneを再生する
Cubeを動かしてみよう Cube の配置 + ボタン -> 3D Object -> Cube
Hierarchy -> Cube Position (0, 0, 1) Rotation (0, 0, 0) Scale (0.2, 0.2, 0.2)
Cubeを動かしてみよう Object Manipulator をつける Object Manipulator 片手または両手でオブジェクトの - 移動 -
拡大・縮小 - 回転 ができるようになる (旧) Manipulation Handler
Cubeを動かしてみよう Simulator で動かす Shift で手を出して マウスを左クリック これでCubeを掴んだ 状態になる マウスを動かせば 上下左右に
ホイールを動かせば 前後に
Button を配置しよう Mixed Reality Toolkit Foundation -> SDK -> Features
-> UX -> Prefabs -> Pressable Button HoloLens 2 を Hierarchy に D&D Position (0, -0.02, 0.2) Rotation (0, 0, 0) Scale (1, 1, 1)
Button を配置しよう Scene を再生して、Shift を押しな がらマウスホイールを動かすとボ タンが押せる ポコッ♬ 音とアニメーションでフィードバック が返ってくる
Button などのコンポーネントを参照しやすくする Tools Package を追加する Unity Package Manager "com.microsoft.mixedreality. toolkit.tools":
"2.5.1", を追加 Unity Package Microsoft.MixedReality.Toolkit.Un ity.Tools.2.5.1.unitypackage
Button などのコンポーネントを参照しやすくする Toolbox からコンポーネントを配置する
Button を押してCubeの色を変えよう Material を作ろう + ボタン -> Material で 2つのマテリアルを作る
右クリックでRenameして - Before - After としておく Shader を Mixed Reality Toolkit -> Standard に設定する
Button を押してCubeの色を変えよう Material を設定する Before Main Maps Albedo を (0,
100, 0) After Border Light にチェック Inner Glow にチェック Color を (0, 200, 255)
Button を押してCubeの色を変えよう Material を適応する Before を Cube に D&D
Button を押してCubeの色を変えよう Button を押したときのアクションを決めよう Pressable Button の Button Config Helper
の Basic Events の On Click () に Cube を D&D
Button を押してCubeの色を変えよう
Button を押してCubeの色を変えよう
Button を押してCubeの色を変えよう
まとめて動かそう Create Empty で空のオブ ジェクトを生成 名前をTreeにする 複数のオブジェクトをD&D でTreeの下に置く
まとめて動かそう Tree に Object Manipulator をアタッチするでもまとめて動かすことができるが、 今回は Joy Stick という
Experimental な機能を使う MRTKでは実験的な機能も公開されている Microsoft Mixed Reality Toolkit 2.5.0 release notes | Mixed Reality Toolkit Documentation
まとめて動かそう Joy Stick と入力 Joystick Prefab を Hierarchy に D&D
Position (-0.2, -0.1, 0.4) Target Object に Tree を D&D
まとめて動かそう Debug Text の文字がすごいでかいので、 3 くらいにする 遠方にあって操作しづらいものや、オブ ジェクトのサイズがすごい大きいor小さ いものでも、簡単に操作できる
空間を認識できるようにしよう Profilerの設定 • デフォルトではパフォーマンスの観点から 空間認識はOffになっている • MRTKで用意されているテンプレートのプロ ファイルは直接編集できず、テンプレート を複製して設定する Clone
で複製する チェックボックス を有効にする
アプリのビルド Package 名を変更する Unity で HoloLens (UWP) アプリを作る際のパッ ケージ名をプロダクト名に変更するスクリプト -
たるこすの日記 (hatenablog.com) HoloLensにインストールされている他アプリの パッケージ名と重複しない名前に変更する ※ 名前は何でもいい
アプリのビルド VR を有効にする
アプリのビルド アプリをビルドする ビルド先のフォルダを作成する ※ 名前は何でもいい ビルドを選択 フォルダーの選択
アプリのビルド アプリをビルドする ビルド後の.slnファイルを開く • Release • ARM64 • デバイス に切り替えてHoloLensをPCに接続してデバイスを押す
None
もっといいデモなかったのか… 10分は厳しかった…
Examples で使い方を覚えよう Unity Package Manager "com.microsoft.mixedreality. toolkit.examples": "2.5.1", を追加 MRTK
Examples Hub | Mixed Reality Toolkit Documentation (microsoft.github.io)
日本語ドキュメント MRTK へようこそ | Mixed Reality Toolkit Documentation (hololabinc.github.io)
MRTK UX components v2.5.0 1:30pm – 1:55pm Session 4 MRTK
UX components v2.5.0 より詳しいセッションは明日! Mixed Reality Dev Days Japan - Mixed Reality | Microsoft Docs