MRが楽しい

MRやVRについて学習したことを書き残す

新しいプロジェクトでMicrosoftMeshのイベント会場の作成を試す その2(シーンの基本構築)

本日はMicrosoftMeshの小ネタ枠です。
新しいプロジェクトでMicrosoftMeshのイベント会場を作成する手順についてです。
今回はシーンの基本構築についてです。

前回記事

以下の前回記事の続きです。
bluebirdofoz.hatenablog.com

シーンの構築

以下のような会場のベースとなるシーンを基本オブジェクトの組み合わせで作成しました。

トラベルポイントを作成する

トラベルポイントはイベントに参加するアバターが配置される場所を定義します。
MeshToolkitをインポートしていると、Hierarchy上で右クリックから[Mesh Toolkit -> Travel Point Group]を選択できます。

TravelPointGroupオブジェクトが作成されます。
アバターをスポーンさせたい位置に子オブジェクトの TravelPoint を移動します。

トラベルポイントを設定していない場合はシーンの原点(X:0,Y:0,Z:0)にアバターがスポーンすることになります。
またGroupは複数作成することができ、この場合は特定のGroupをデフォルトのスポーングループとして指定する必要があります。
learn.microsoft.com

サムネイルの撮影カメラを設定する

サムネイルカメラを設定すると、会場をアップロードするたびに自動でサムネイル画像を生成してくれます。
Hierarchy上で右クリックから[Mesh Toolkit -> Thumbnail Camera]を選択してカメラオブジェクトを作成します。

[Scene]画面を開き、カメラオブジェクトを選択するとプレビューを確認できます。
Transformを調整して任意の位置にします。

サムネイルカメラを設定していない場合は原点(X:0,Y:0,Z:0)からの視点がサムネイルとして撮影されます。
learn.microsoft.com

エミュレーションモードを利用する

エミュレーションモードを利用すると、エディター上でシーンの動作確認を行うことができます。
エディターの[再生]ボタンをクリックします。

シーンにエミュレーションモードの設定がされていない場合、以下のセットアップダイアログが表示されます。
[Add MeshEmulatorSetup prefab]をクリックするとエミュレーションモードの設定が行われます。

エミュレーションモードではWASDキーの操作でシーンの中を歩き回ったり、コンテンツを試すことができます。

一度セットアップを行うとHierarchyに[MeshEmulatorSetup]オブジェクトが追加され、以降は[再生]すると自動でエミュレーションモードが利用できます。

セットアップダイアログで[Add dummy ...]の方を選択するとダミーオブジェクトが追加されます。
この場合、エミュレーションモードは有効にならず、また以降のセットアップダイアログの表示も行われなくなります。
learn.microsoft.com

次回は環境のアップロードの手順です。

新しいプロジェクトでMicrosoftMeshのイベント会場の作成を試す その1(MeshToolkitパッケージのインポート)

本日はMicrosoftMeshの小ネタ枠です。
新しいプロジェクトでMicrosoftMeshのイベント会場を作成する手順についてです。

MeshToolkit

MeshToolkitパッケージを利用すると新しいプロジェクトからMeshのイベント会場を構築することができます。
環境の開発、イテレーション、パフォーマンスの最適化、公開を制御できるほか、環境に対話型コンテンツを追加したり、ロジックを挿入することもできます。
learn.microsoft.com

Unityプロジェクトの作成

[3D (URP)]のテンプレートを使用し、[Create Project]で新しいUnityプロジェクトを作成します。

生成されたUnityプロジェクトの[Global Volume]オブジェクトを右クリックから[Delete]で削除します。

シーンは任意の名前で保存します。

MeshToolkitパッケージのインポート

PackageManagerでMeshToolkitパッケージをインポートします。
メニューから[Edit -> Project Settings]を開き、Project Settingsダイアログの[Pakcage Manager]タブを開きます。

[Scoped Registries]に以下の参照を追加して[Save]します。

Name:任意の名前
URL:https://registry.npmjs.org
Scope:com.microsoft

次にメニューから[Window -> Package Manager]を開きます。

[Packages]のプルダウンを開き、[My Registries]を選択します。

一覧に[Microsoft Mesh Toolkit]が表示されるので、これを選択して[Install]します。

MeshToolkitをインポートすると、以下のMesh向けプロジェクト設定を行うダイアログが表示されます。
[Apply Project Settings]を選択して設定を反映します。

本設定を行うと以下の設定が行われます。
・PCまたはAndroidの[XR Plugi-in]で[OpenXR]が選択される
・TextMeshProがインポートされる

Tips

PackageManagerの一覧に表示されるMicrosoft Mesh Toolkit(Preview)パッケージの方は開発者向けのプレビュービルドです。
安定バージョンのMicrosoft Mesh Toolkitと互換性がないため、使用する際は注意が必要です。

次回はシーンの基本構築の手順です。
bluebirdofoz.hatenablog.com

UnityでUnity glTFastを使ってGLBファイルを取り込む

本日はUnityの小ネタ枠です。
UnityでUnity glTFastを使ってGLBファイルを取り込む方法についてです。

Unity glTFast

Unity glTFastはglTF形式のファイルをサポートするためのパッケージです。
元々OSSで開発されていたパッケージですが、現在はUnity公式パッケージとしてサポートされるようになりました。
docs.unity3d.com

Unity glTFastのインポート

glTFastを利用するにはPackageManagerから取得する必要があります。
メニューから[Window -> Package Manager]を開きます。

Package Managerダイアログの[+]ボタンのプルダウンを開き、[Add package by name...]を選択します。

パッケージ名の入力欄に以下のパッケージ名を指定し、[Add]を実行します。

com.unity.cloud.gltfast

これでUnity glTFastのインポートは完了です。

glbファイルを取り込む

Unity glTFastをインポートしていればAssetsフォルダにglbファイルをドラッグするだけで3Dモデルをプロジェクトに取り込むことができます。

取り込んだ3Dモデルはそのまま[Hierarchy]にドラッグしてシーンに配置することができます。

glbファイルを書き出す

Unity glTFastをインポートしていればGameObjectをglbファイルとして書き出すことができます。
AssetsフォルダのPrefabファイルを右クリックして[Export glTF -> glTF-Binary (.glb)]を実行します。

出力したglbファイルをBlenderで確認すると以下の通り3Dモデルを確認できます。

再生中のGameObjectを書き出す

エクスポートはシーン再生中の[Hierarcy]にも対応しています。
以下のようなシーンを再生するとCubeが落下するシーンを作成しました。

シーンを再生し、出力したい[Hierarchy]上のGameObjectを任意のタイミングで右クリックして[Export glTF -> glTF-Binary (.glb)]を実行します。

すると以下の通り、出力したタイミングの状態でglbファイルが出力されます。

Meshサンプルを使ってMicrosoftMeshのイベント会場の作成を試す その3(登録した会場を使ってイベントを作成する)

本日はMicrosoftMeshの小ネタ枠です。
Meshポータルからイマーシブスペースのイベントを作成する手順についてです。
今回は登録した会場を使ってイベントを作成してみます。

前回記事

以下の前回記事の続きです。
bluebirdofoz.hatenablog.com

Meshポータルからイベントを作成する

以下のWebページにアクセスしてMSアカウントでログインします。
mesh.cloud.microsoft

ページ左側の[イベント]ボタンをクリックします。

[イベント]ページが開きます。
新規にイベントを作成する場合は画面右上の[イベントを作成]をクリックします。

[イベントの詳細]ページが開くのでイベントの詳細情報を設定します。
[イベント名]、[開始/終了時刻]のみ必須の入力項目になります。

3D空間のベースを選択します。
今回はアップロードした会場を基に新規作成したいので[環境から開始する]を選択し、[次へ]をクリックしました。

[コレクションから]のプルダウンを開き、会場を登録したコレクションを選択します。

前回コレクションにアップロードした会場を一覧から選択して[次へ]をクリックします。

次にこの会議に招待するユーザを入力します。
[イベントを作成]をクリックするとイベントが作成され、招待ユーザにイベントが通知されます。

イベントを作成すると、イベントページに表示されるようになります。
[イベントの詳細]から詳細を確認できます。


イマーシブスペースへの参加

PCまたはQuestからイマーシブスペースに参加する手順は以下を参照ください。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

以下の通り、登録した会場のイベントに参加できました。

Meshサンプルを使ってMicrosoftMeshのイベント会場の作成を試す その2(イベント会場のアップロード)

本日はMicrosoftMeshの小ネタ枠です。
Meshサンプルを使ってMicrosoftMeshのイベント会場の作成を試す手順についてです。
今回はイベント会場のアップロードについてです。

前回記事

以下の前回記事の続きです。
bluebirdofoz.hatenablog.com

コレクションの作成

イベント会場をアップロードするにはあらかじめMeshポータルでコレクションを作成する必要があります。
以下のMeshポータルにログインして[コレクション]タブを開きます。
mesh.cloud.microsoft

コレクション画面が開くので[コレクションの作成]ボタンをクリックします。

作成するコレクションの名前とプライバシー設定を設定して[コレクションの作成]を実行します。
コレクションはイベント会場の環境やテンプレートを保存しておく枠組みになります。

これでコレクションが作成できました。

イベント会場のアップロード

作成したコレクションにMeshサンプルのイベント会場をアップロードします。
初めにメニューから[Mesh Toolkit -> Configure -> Apply Project Settins]を実行してMesh向けのプロジェクト設定を構成します。

メニューから[Mesh Toolkit -> Environments]を開きます。

[Mesh Environments]ダイアログが開くので先ほどコレクションを作成したMSアカウントで[Sign in]を行います。

新しいイベント会場をアップロードする場合、初めに[Create Environment]タブを開きます。

入力欄から以下の項目を入力して[Create Environment]をクリックします。
・Internal Name:会場名
・Description:説明文
・Environment collection:追加先のコレクション
・Capacity:入場可能人数

コレクションが存在しない場合

コレクションが存在しない場合、以下のように[Environment collection]欄に No Environment... が表示されて[Create Environment]が実行できません。
前述のコレクション作成を実施するか[Refresh Environment collections]ボタンで情報の再読み込みを試してみてください。

[Update Environment]タブを開くと、イベント会場の情報が追加されています。
[Select a scene]をクリックし、会場として利用するシーンファイルを指定します。

次にビルドターゲットを指定します。PC向けまたはAndroid(Quest)向け、あるいはその両方が指定できます。

[Build & Publish]ボタンを押すと、会場のビルドとアップロードが開始されます。

処理が完了すると以下の結果ダイアログが表示されます。これで会場のアップロードは完了です。

Meshポータルから作成したコレクションを確認すると、[環境]一覧でアップロードした会場が確認できます。

次回は作成した会場を使ってイベントを開催する手順です。

Meshサンプルを使ってMicrosoftMeshのイベント会場の作成を試す その1(Meshサンプルのダウンロード)

本日はMicrosoftMeshの小ネタ枠です。
Meshサンプルを使ってMicrosoftMeshのイベント会場の作成を試す手順についてです。

Meshサンプル

MeshサンプルはMicrosoftMeshで作成できる様々な種類の体験を学習するためのサンプルプロジェクトです。
以下の5種類のサンプルシーンが含まれています。
・Mesh 101
・Toybox
・Physics Effects Gallery
Dart Room
・Science Building
learn.microsoft.com

今回はこのうちのScience Buildingを使って、イベント会場を作成する手順を試します。

Meshサンプルのダウンロード

以下のGitHubプロジェクトをクローンして取得するか、Zipファイルでプロジェクトをダウンロードします。
今回は[Download ZIP]からzipファイルをダウンロードしました。
github.com

ダウンロードしたMesh-Toolkit-Unity-main.zipファイルを適当なフォルダに展開します。

解凍フォルダ直下に、フォルダ毎にサンプルシーンが分けられています。
今回はScience Buildingを利用します。

Unity 2022.3.7f1のインストール

MeshサンプルはUnity 2022.3.7f1で作成されています。該当バージョンのUnityのインストールが必要です。
以下のアーカイブページからインストールを実行してください。
unity.com

PC向けとQuest向けのシーンをビルドするため、インストール時に以下のモジュールを選択します。
Android Build Support
Windows Build Support (IL2CPP)


Meshサンプルを開く

UnityHubを起動し、Meshサンプルを開きます。
[Add project from disk]から先ほど展開したフォルダを指定してプロジェクトを開きます。

プロジェクトが開いたらシーンを開いてサンプルを確認します。
Science Buildingでは以下のシーンファイルを開いてイベント会場を確認できます。

Assets/Scenes/ScienceBuilding.unity

エディターの[再生]ボタンを押すと、イベント会場を歩き回って動作を確認できます。

次回はイベント会場のアップロードの手順です。
bluebirdofoz.hatenablog.com

GitKrakenで特定ファイルの特定行の変更履歴を確認する

本日はGitKrakenの小ネタ枠です。
GitKrakenで特定ファイルの特定行の変更履歴を確認する方法を記事にします。

GitKrakenで特定ファイルのGitログを確認する

確認したいワークスペースのタブを開きます。

ファイル基準でログを確認したい場合、[View all files]にチェックを入れます。
これでGitで管理されている全てのファイルがTree形式で表示されます。

検索欄に確認したいファイル名を入力します。
ファイルを選択するとFileView画面が表示されるので、[History]ボタンをクリックします。

これで選択したファイルに関連するGitログを確認できます。

特定行の変更履歴を確認する

更に特定行の変更履歴を確認したい場合は、FileView をスクロールして変更履歴を確認したい行の左側のアイコンをクリックします。

その行が変更されたコミットに移動するので[DiffView]に切り替えます。

これで特定ファイルの特定行の変更履歴を確認することができました。