Mesh Toolkit でゼロから空間を作ってみる話 - Interactable

653 Views

September 18, 24

スライド概要

XRミーティング 2024/09/18【AR/CR/MR/SR/VR】(https://osaka-driven-dev.connpass.com/event/328713/)登壇資料。
先月に引続きMicrosoft MeshのCustom Immersive ExperiencesをUnityで開発する話。ツールはMesh Toolkitを利用。
今月はMesh Interactablesによる空間内のオブジェクト操作の実装方法について。

profile-image

ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Mesh Toolkit でゼロから空間を作ってみる話 - Interactable 2024/09 XR ミーティング @takabrz1 Takahiro Miyaura

2.

宮浦 恭弘 (Miyaura Takahiro) Microsoft MVP for Mixed Reality 2018-2025 XRは趣味です 大阪駆動開発(とHolomagicians)コミュニティに生息 HoloLens日本販売してからxR系技術に取組む 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura https://zenn.dev/miyaura 最近興味があって取り組んでいるもの ○ Microsoft Mesh ○ Snapdragon Spaces ○ Mixed Reality Toolkit v3.0.0 ○ Vision Proもそろそろ・・・ @takabrz1 ※よかったらこれを機にお知り合いになってください

3.

最近興味の1つに Microsoft Meshがあるんですよ。。。 2024/9/18 © 2024 Takahiro Miyaura

4.

先月はとりあえず平面空間をつくりました。 2024/9/18 © 2024 Takahiro Miyaura

5.

こういう感じで アバターの制約とともに検証しました 2024/9/18 © 2024 Takahiro Miyaura

6.

ということで今日も Microsoft Meshの話 オブジェクトを操作するためのInteractable 2024/9/18 © 2024 Takahiro Miyaura

7.

1 Microsoft Meshについて 2 Interactableについて 目次 3 実装とデモ 4 動作の仕組み 5 注意事項

8.

Microsoft Meshについて 2024/9/18 © 2024 Takahiro Miyaura

9.

Microsoft Mesh 3D没入空間でミーティングやイベントを実施できるサービス https://adoption.microsoft.com/en-us/microsoft-mesh/ Mesh in Teams, built into your Teams meeting experience, elevates engagement with readymade 3D immersive spaces crafted to suit your everyday meeting needs, whether it’s a team social gathering, brainstorming session, or a round-table discussion. Microsoft Mesh allows you to host larger events in custom immersive spaces that are tailored to your specific business needs, like all-hands meetings, onboarding, training, or simulations. Use a no-code editor to easily customize the event or the Mesh toolkit to leverage the power of Unity for fully customizable immersive experiences. 引用:https://adoption.microsoft.com/en-us/microsoft-mesh/ 機械翻訳・・・ Mesh in Teamsは、Teamsのミーティングエクスペリエンスに組み込まれており、チームの親睦会、ブレーンストーミングセッショ ン、円卓会議など、日常的なミーティングのニーズに合わせて作られた既製の3D没入型スペースで、エンゲージメントを高めま す。 Microsoft Meshを使用すると、全員ミーティング、新入社員研修、トレーニング、シミュレーションなど、特定のビジネスニーズ に合わせたカスタム没入型スペースで大規模なイベントを開催できます。コード不要のエディタを使用してイベントを簡単にカスタ マイズするか、Meshツールキットを使用してUnityのパワーを活用し、完全にカスタマイズ可能な没入型体験を実現できます。 2024/9/18 © 2024 Takahiro Miyaura

10.

Microsoft Mesh 大きくは3つの構成 https://adoption.microsoft.com/en-us/microsoft-mesh/ Avatars for Teams Immersive Spaces in Teams Custom Immersive experiences ○ Mesh内で活用 ○ Teamsで利用可な3D空間 ○ 複数のAvatarを作成可 ○ プリセットの空間を利用 ✓ カスタマイズ不可 ○ Unityで自由な空間作成 ✓ Mesh Toolkitで開発 ○ Teams内ではWebカメラの 代替としても利用可 ○ Teams会議から利用可 ✓ Meta Quest ✓ PC Custom Immersive experience 利用× 2024/9/18 © 2024 Takahiro Miyaura ○ 既存環境をカスタイズ ✓ 既製の空間に装飾 ○ Meshポータル ✓ イベント/ミーティング作成 ✓ カスタム環境の管理 ○ Mesh Appを利用 ✓ Meta Quest ✓ PC

11.

Microsoft Mesh 今日のお話ネタはこれ Custom Immersive experiences https://adoption.microsoft.com/en-us/microsoft-mesh/ 既存環境のカスタマイズ(=テンプレート) 新しく環境をつくる ○ プリセット or カスタム環境を利用 ○ 空間内にオブジェクト配置 & テンプレート化 ○ Unityで自由な空間作成 ✓ Mesh Toolkitで開発 ○ 現在の提供オブジェクト ✓ テキスト ✓ 動画 ✓ 画像 ✓ 画面共有 ○ Mesh Appを利用 ✓ Meta Quest ✓ PC ○ 既存環境をカスタイズ ✓ 既製の空間に装飾 今日もこっちの話 2024/9/18 © 2024 Takahiro Miyaura

12.

Mesh Interactablesについて 2024/9/18 © 2024 Takahiro Miyaura

13.

Microsoft Mesh Mesh Interactableとは ユーザが操作できるオブジェクトを作る時に使う機能 https://learn.microsoft.com/ja-jp/mesh/develop/enhance-your-environment/avatar-and-object-interactions/interactables?wt.mc_id=WDIT-MVP-5003104 Interactable ○ オブジェクトの選択を検出 Manipulable ○ オブジェクトのTransformをユーザ操作で変更 Equippable ○ ユーザがオブジェクトを装備 Throwable ○ ユーザがオブジェクトを投げる 2024/9/18 © 2024 Takahiro Miyaura

14.

Mesh Interactables 実装とデモ 2024/9/18 © 2024 Takahiro Miyaura

15.

まずは簡単にデモ 4種類を実際に実装して動かしてみる 2024/9/18 © 2024 Takahiro Miyaura

16.

Mesh Interactables 実装 コンポーネントの設定 2024/9/18 © 2024 Takahiro Miyaura

17.

Microsoft Interactables 対象のオブジェクトを作る Mesh Interactable Setupコンポーネントを追加するだけ Hierarchyパネルで 1. Collider付のオブジェクトを用意する 2. Mesh Interactable Setupコンポーネントを 追加 3. Typeや細かい挙動を設定 ※ Mesh Interactable Setupを初期設定として Mesh Interactable Bodyコンポーネントが自動 的に設定されます ※ ロジック上はMesh Interactable Bodyコンポー ネントを使います。 2024/9/18 © 2024 Takahiro Miyaura

18.

Microsoft Interactables Mesh Interactable Setup – 共通設定 [公式ドキュメント - Manipulables、Equippables、Throwables に共通の設定] https://learn.microsoft.com/ja-jp/mesh/develop/enhance-your-environment/avatar-and-objectinteractions/interactables?wt.mc_id=WDIT-MVP-5003104#settings-common-to-manipulables-equippables-andthrowables 全体で共通になる挙動 1. Interaction Proximity Radius ユーザが操作可能になるオブジェクトとの距離(半径) 2. Hover IK Settings Hover(Focusがある)状態の時のアバタージェスチャーなどを設定 • Hand Pose Shape : 手の形状 • Hand Pose Size : サイズ • Enable IK Tracking: 腕をオブジェクトに合わせるか 3. Highlight Settings Hover/Select状態の時にハイライト効果をつけるための設定 • Hovered : Hover時にハイライトする • Selected : Select時にハイライトする • Highlight Mechanism : ハイライトの種類 • Highlight Color : ハイライト色 • Highlight Transition Duration : 経過時間 • Custom Highlight Material : ハイライト用Material • Exclusion String : 対象外オブジェクト名(一部&子オブジェクト) 4. Object Type このオブジェクトのInteractableタイプ 5. Interaction Cooldown Time 次回Interaction受付までのクールダウン時間(s) 2024/9/18 © 2024 Takahiro Miyaura

19.

Microsoft Interactables Mesh Interactable Setup – Object Type : Manipulable Manipulable固有 1. Manipulation Settings Manipulationの各設定 • Force Mode オブジェクトの移動方法 • Rotation(Default選択時) 回転の有効/無効、軸の設定 • Translation(Default選択時) 移動の有効/無効、軸の設定 • Point Spring(Point Spring選択時) ばねの強さ • Modify Target Transform 対象オブジェクトのTransformをカメラ/アバター基準で変更す るかどうかを設定 • Avatar IK 操作時の手のポーズに関する設定 [公式ドキュメント - Manipulables 専用の設定] https://learn.microsoft.com/ja-jp/mesh/develop/enhance-yourenvironment/avatar-and-object-interactions/interactables?wt.mc_id=WDITMVP-5003104#settings-exclusive-to-manipulables 2024/9/18 © 2024 Takahiro Miyaura

20.

Microsoft Interactables Mesh Interactable Setup – Object Type : Equippable Equippable固有 1. Interaction Offset アバターの手の位置を基準としたターゲットのオフセットTransform 2. Equip Target Pose アバターの胸の位置を基準とした装備オブジェクトのTransform 3. Held Hand Pose 装備時の手のジェスチャー 4. Activate Configuration Manipulationの各設定 • Activate Type 装備したオブジェクトのActivateタイプを設定 • None : 何もしない • Single : Activateアクションを1度だけ実行 • Toggle : Activateアクションを反復する • Activate Target Poses Activate実行時のオブジェクトの座標を設定 [公式ドキュメント - Equippables 専用の設定] https://learn.microsoft.com/ja-jp/mesh/develop/enhance-yourenvironment/avatar-and-object-interactions/interactables?wt.mc_id=WDITMVP-5003104#settings-exclusive-to-equippables 2024/9/18 © 2024 Takahiro Miyaura

21.

Microsoft Interactables Mesh Interactable Setup – Object Type : Throwable (1/2) Throwable固有 1. Interaction Offset アバターの手の位置を基準としたターゲットのオフセットTransform 2. Equip Target Pose アバターの胸の位置を基準とした装備オブジェクトのTransform 3. Held Hand Pose 装備時の手のジェスチャー 4. Aim Configuration 投げる方向等を指し示すAimの各設定 • Arm Extension on Aim エイム時の手の伸ばす度合 • Aim Hand Pose Aim時の手のジェスチャー [公式ドキュメント - Throwable 専用の設定] https://learn.microsoft.com/ja-jp/mesh/develop/enhance-yourenvironment/avatar-and-object-interactions/interactables?wt.mc_id=WDITMVP-5003104#settings-exclusive-to-throwables 2024/9/18 © 2024 Takahiro Miyaura

22.

Microsoft Interactables Mesh Interactable Setup – Object Type : Throwable (2/2) Throwable固有 1. Throw Configuration Throwに関する各設定 • Throw Hand Pose Throw時の手のジェスチャー • VR Settings Meta Quest利用時の投擲速度の設定 • 2D Settings PC利用時の投擲速度の設定 • Throw Target Poses 投げる時のモーション設定 • Show Aim Arc オブジェクトの投擲方向を指し示す円弧を表示 [公式ドキュメント - Throwable 専用の設定] https://learn.microsoft.com/ja-jp/mesh/develop/enhance-yourenvironment/avatar-and-object-interactions/interactables?wt.mc_id=WDITMVP-5003104#settings-exclusive-to-throwables 2024/9/18 © 2024 Takahiro Miyaura

23.

Mesh Interactables 実装 Visual Scripting 2024/9/18 © 2024 Takahiro Miyaura

24.

Microsoft Interactables Interactableの情報を使って実装する 選択されたらオブジェクトの色を変える実装をしたい場合 Mesh Interactable Bodyの IsSelectedプロパティを見る 1. IsSelectedは選択時True、非選択時false 2. Meshにはプロパティが前回値と異なる場合に発火す る[On State Changed]がある 3. 上記の2つの仕様を組合わせてIsSelectedの状 態が変わったら処理を実行するロジックを作成できる 4. 左記の実装は選択状態になると後続が実行されるロ ジックの抜粋 2024/9/18 © 2024 Takahiro Miyaura

25.

Microsoft Interactables Interactableの情報を使って実装する 選択されたらオブジェクトの色を変える実装をしたい場合 Onの時にマテリアルを変更 1. Offの時も同じように実装する 2024/9/18 © 2024 Takahiro Miyaura

26.

Mesh Interactables 動作の仕組み 動作時のコンポーネントの状態 2024/9/18 © 2024 Takahiro Miyaura

27.

Mesh Interactables 動作の仕組み 実行時にMesh Interactable Setupを利用して実体を生成 設定内容が転記 設計時の状態 実行時の状態 マルチユーザ体験を想定した設計になっている模様 Mesh Interactablesの設定を同期化するために初期設定を切り離している? 2024/9/18 © 2024 Takahiro Miyaura

28.

Mesh Interactables 注意事項 2024/9/18 © 2024 Takahiro Miyaura

29.

Mesh Interactables 注意事項:マルチプレイ時のプロパティのスコープ Mesh内で実装する際にプロパティのスコープが異なるものがある 実装時のプロパティにスコープが記載 1. Shared by all Clients 何もしなくてもユーザ間で値が同期化 2. Local to this Client ユーザ毎で値を保持(同期化されない) マルチユーザで同期化している情報を変更するとパフォーマンスに影響する こういった実装は警告が出るようになっています。 2024/9/18 © 2024 Takahiro Miyaura

30.

以上! 2024/9/18 © 2024 Takahiro Miyaura

31.

1 Microsoft Meshについて 2 Interactableについて 目次 3 実装とデモ 4 動作の仕組み 5 注意事項

32.

大阪駆動開発 関西を中心に、IT系のおもしろそうなことを 楽しんでやるコミュニティ

33.

(参考)Custom Immersive Spaceをゼロから作る Unityプロジェクトの作成とMesh Toolkitの導入 2024/9/18 © 2024 Takahiro Miyaura

34.

Microsoft Mesh Custom Immersive Spaceをゼロから作る – プロジェクト作成 Unityプロジェクト作成 Universal 3Dで作る ○ Unity 2022.3.34f1 サポート外バージョンはデプロイ できないことがあるので注意 2024/9/18 © 2024 Takahiro Miyaura

35.

Microsoft Mesh Custom Immersive Spaceをゼロから作る – Mesh Toolkitの導入 Mesh Toolkitのレジストリ登録 Project Settingsから ○ Package Managerの項目で以 下を入力 2024/9/18 © 2024 Takahiro Miyaura ✓ Name: Mesh Toolkit ✓ URL: https://registry.npmjs.org ✓ Scopes(s): com.microsoft

36.

Microsoft Mesh Custom Immersive Spaceをゼロから作る – Mesh Toolkitの導入 Mesh Toolkitのインポート Package Managerから ○ Packagesを[My Registories]に変更 ○ Microsoft Mesh Toolkitを インポート 2024/9/18 © 2024 Takahiro Miyaura