仮想と物理とエトセトラ

xRや物理とかごった煮の備忘録的技術ブログ

Unity

Unityアプリ + Holographic Remotingでクライアント(HoloLens2)からサーバ(PC)に向けて接続する(OpenXR)

今回は、以前できなかったUnityアプリでHolographic Remotingの接続待ち(Listen)ができるようになったので、方法をメモします。 xr-physics-work-etc.hatenablog.com Holographic RemotingがOpenXR対応されることで、Unityで使用できるAPIが増えました。 d…

Photon(PUN2)でハンドトラッキングを共有する(簡易版)

今回も前回に続きPhotonに関する試作です。 ハンドトラッキングの情報をほかのユーザに知らせるために手のジョイント情報を共有します。 今回は手にメッシュは張らず、各jointを表示することで手を再現します。 今回は下記を一部参考にしました。 akihiro-do…

Photon(PUN2)でルーム情報を表示する

今日は久しぶりにPhotonについての記事です。 前回 xr-physics-work-etc.hatenablog.com これまでの実装では1つのルームに対して入室していましたが、複数のルームに分けて情報共有することも可能です。 これを実施することで、同じPhoton CloudまたはPhoton…

MRTK(2.7.2)のExampleを試す その5 (Demos - HandCoach)

今回は下記の続きです。 xr-physics-work-etc.hatenablog.com 前提 今回の前提は以下です。 Unity 2019.4.17f1 MRTK 2.7.2 準備 いつものようにPackage Managerからデモをインポートします。 すでにImport済みの場合は、Input againで再度インポートできます…

HoloLens2でxboxのコントローラを使う(Input System)

今回は、HoloLens2でxboxコントローラを使用する方法をメモします。 UnityのInput Systemで簡単に使用できるようなので試します。 Input SystemはこれまでのUnityの入力系と比べ新しく、拡張、カスタマイズが可能なものであると説明されています。 docs.unit…

Vroid Studioから出力したVRMをHoloLens2で閲覧する

今回は、VRoid Studioで作成したアバターをVRM出力し、HoloLens2で閲覧します。 vroid.com VRoid Studioでは気軽にアバターが作成できるため、VRChatなどで用いられることが多いです。 私もアバターを作成してみたので、試しにHoloLens上で投影し、現実世界…

Netcode for GameObjects (旧MLAPI)をHoloLensで使ってみる その2

今回は前回の続きです。 xr-physics-work-etc.hatenablog.com 前回、Hostとして使用したHoloLens2の頭位置は共有されましたが、Clientとして接続したUnityEditorでは共有できませんでした。 この問題を解消します。 下記記事によると、以前のMLAPIからの変更…

Netcode for GameObjects (旧MLAPI)をHoloLensで使ってみる その1

今回は、Unity公式の共有フレームワークのNetcode for GameObjectsを触ってみます。 docs-multiplayer.unity3d.com 元になったMLAPIについては以前触れていますが、v.0.1.0からv.1.0.0になって変更点があると思われるので、確認の意味も込めて触れてみます。…

MRTK(2.7.2)のExampleを試す その4 (Demos - Gltf)

今回は下記の続きです。 xr-physics-work-etc.hatenablog.com 前提 今回の前提は以下です。 Unity 2019.4.17f1 MRTK 2.7.2 準備 いつものようにPackage Managerからデモをインポートします。 Glb-Loading-Demo このシーンは、インターネット上にあるglbモデ…

HoloLens2でJoyConのIMUを使ってみたかった(失敗)

今回はNintendo SwitchのJoyConをHoloLensで使用できるか試します。 使用できれば、加速度、ジャイロセンサを用いて何かしらできそうです。 ※今回の記事はHoloLens上で正しく動作できていません。後々解決策がわかったら記事にします。 JoyConをUnityで取り…

MRTK(2.7.2)のExampleを試す その3 (EyeTracking)

今回は前回の続きです。 xr-physics-work-etc.hatenablog.com 前提 今回の前提は以下です。 Unity 2019.4.17f1 MRTK 2.7.2 準備 前回と同じようにPackage Managerから対象のデモをImportします。 EyeTrackingDemo-00-RootScene このSceneはEyeTrackingの各デ…

MRTK(2.7.2)のExampleを試す その2 (Boundary, Diagnostics)

今回は前回の続きです。 xr-physics-work-etc.hatenablog.com 前提 今回の前提は以下です。 Unity 2019.4.17f1 MRTK 2.7.2 準備 前回と同じようにPackage Managerから対象のデモをImportします。 Boundary Visualization Example このサンプルでは、PlayArea…

MRTK(2.7.2)のExampleを試す その1 Demos-Audio

今回は、MRTK ver.2.7.2のExampleを見て、これまであまり使用してこなかったMRTKの機能を確認します。 第一回はDemos-Audioを使用します。 前提 今回の前提は以下です。 Unity 2019.4.17f1 MRTK 2.7.2 準備 まずは、Package ManagerのMixed Realiy Toolkit E…

簡易翻訳機を作ってみる その6 ボイスコマンドを使って録音を開始する

今回はその5の続きです。 xr-physics-work-etc.hatenablog.com せっかく音声入力で翻訳対象となる文字列を入力しているので、録音の開始も音声入力で行えるように設定します。 準備 音声入力でコマンドを実行するために、Speech Commands ProfileとInteract…

MRTK Figma Bridgeを試してみる

今回は以前取り上げたMRTK Figma Toolkitを、Unityに取り込むためのUnity用Figma Bridgeを試してみます。 xr-physics-work-etc.hatenablog.com MRTK Figma Bridge for Unityは、MRTK FIgma Toolkitで作成したデザインを直接MRTKに取り込むことができるツール…

簡易翻訳機を作ってみる その5 翻訳結果を音声出力する

今回は前回の翻訳機の続きです。 xr-physics-work-etc.hatenablog.com 今回は、音声読み上げと、別言語を翻訳先とする翻訳を行います。 音声の読み上げでは、TextToSpeechを使用します。 TextToSpeechは、任意の文字列を音声出力するためのコンポーネントで…

簡易翻訳機を作ってみる その4 翻訳対象を声で入力する

今回は下記の続きで、前回キーボードから入力していた翻訳元の文字を、音声で入力するようにします。 xr-physics-work-etc.hatenablog.com 前回の記事で、DictationHandlerをつかっては?とのアドバイスをいただいたので、さっそく使ってみます。 bluebirdof…

簡易翻訳機を作ってみる その3 HoloLens2からDeepLのWebAPIをつかう

今回は下記の続きで、WebAPIをHoloLens2アプリからたたくことで、翻訳できるようにします。 xr-physics-work-etc.hatenablog.com 1. 準備 前回試したWebAPIをC#からHTTPリクエストすることで使用し、翻訳結果を受け取ります。 今回はHTTPリクエストはUnityWe…

UnityProjectをWebGLでビルドする

今回はUnityで作ったプロジェクト、特にMRTKを用いたプロジェクトをブラウザ上で実行できるようにWebGLでビルドする方法をメモします。 今回のメモでは、PCからアクセスすることを前提として、HoloLensやOculus Questなどでブラウザ上からMR, VR体験できるWe…

簡易翻訳機を作ってみる その1 方法検討および調査

最近小技だったり、SDKの使い方だったりが多いので、たまには小規模なアプリを作ってみようと思います。 今回は、HoloLensの音声入出力周りやweb APIをHoloLensから触る方法の学習も兼ねて、簡易翻訳機を作ってみようと思います。 ※どこかで誰かがやっていそ…

HoloLens2のファイルIOを確認する (その2 テキスト、画像、動画読み込み)

今回は前回の続きです。 xr-physics-work-etc.hatenablog.com 今回は、テキスト、画像、動画の読み込みを3種の方法で読み込んでみます。 読み込み方法は以下の通りです。 テキスト:WUPのFileIO.ReadTextAsyncでFileStorageオブジェクトから読み込み 画像:…

HoloLens2のファイルIOを確認する (その1 フォルダ、ファイル作成)

今回は、自分自身の備忘録もかねて、HoloLens2のファイルIOを確認します。 2回ほどに分けて、フォルダ、ファイル作成と、動画や画像、テキストの読み込みを各フォルダから行えるかどうか確認します。 このあたりの情報は、HoloLens2出てすぐのものも多く、最…

HoloLens2用アプリに再ビルド不要なデバッグモードを追加する(プロトコルでの実装)

今回は小技です。 前回、プロトコルから設定することでHoloLens2用アプリケーションでも起動時のモードを切り替えることができることがわかりました。 xr-physics-work-etc.hatenablog.com 今回はこのプロトコルで設定できるURIスキームを用いて、通常起動で…

MLAPIをHoloLensでつかう その4 (物体操作をHost, Clientの両方で行う)

今回は前回の続きです。 xr-physics-work-etc.hatenablog.com 前回では、物体操作はHostからしか行えませんでした。 このままでは都合が悪いことも多いので、誰でも操作できるように、Clientからも物体の操作を行えるようにします。 物体の操作を管理する ML…

MLAPIをHoloLensでつかう その3 (物体の操作を共有する)

今回は前回の続きです。 xr-physics-work-etc.hatenablog.com HoloLensを使った共有に重要な物体の操作に関する共有を行います。 Spawnする物体を用意する 今回はCubeをSpawnし、それを操作します。 まずは、Spawn対象であるCubeを用意します。 Hierarchy上…

MLAPIをHoloLensでつかう その2(ユーザの位置共有をしてみる)

今回は前回の続きです。 xr-physics-work-etc.hatenablog.com 今回もMLAPIのチュートリアルに沿いつつやっていきます。 docs-multiplayer.unity3d.com NetworkManagerを設定する Hierarchy上で空のGameObjectを作成し、NetworkManagerに名前を変更します。 …

MLAPIをHoloLensでつかう その1(環境構築)

今回はUnityのマルチプレイ用ライブラリであるMLAPIを、HoloLensで使用するための環境構築をメモします。 MLAPIはUnetに代わり、Unity公式でサポートされているライブラリです。 docs-multiplayer.unity3d.com PhotonのPUN2と異なり、PhotonクラウドやPhoton…

ConstraintManagerで自作の制約を加える

今回はMRTKの勉強です。 Object Manipulatorや、Bounds Controlを使用する際に一緒にアタッチされる、Constraint Managerの活用について確認します。 docs.microsoft.com Constraint Managerについては、やや古いですが下記が詳しいです。 hololabinc.github…

Hololensの既存アプリをHolographic Remoting対応させる

今回は、既存のHololensアプリをHolographic Remoting対応させる方法をメモします。 Holographic Remotingとは、通常のHololensアプリと異なりレンダリングや物理的な処理をPC側で実行し、レンダリング結果のみHololens上で確認できる機能です。 各種処理をP…

Unityで外部のzipファイルから複数枚画像を取り出す

今回は小技です。 ※物理枠の動作確認がうまくいっていないので、こちらでお茶を濁す 外部ファイルとして、zip中の画像をバイト列で取り出し、テクスチャとして取得します。 準備 今回は、zipファイル中の画像をバイト列のリストとして取り出すクラス(ZipImag…