2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Unity】MRTKって3Dモデルの動的ロード とか、XR以外にも使えるよねという話

Last updated at Posted at 2021-08-01

はじめに

MRTKとは、もともとMicrosoft社のMR(AR)ゴーグル、HoloLens用の開発キットです

現在はOculus等VRゴーグルやリープモーションなどにも対応し、
手でのモデル操作や、空間配置するボタン等のUXが充実しています。

XR関係の人しかさわったことがないと思うのですが、
中にはXRに関係なく使えそうな機能がいくつかありますので、
サンプルを見てみるところくらいまで紹介しようと思います。

#目次
・環境、導入方法
・3Dモデルの動的(ランタイム)ロード
・全部入りの便利なシェーダー(ビルドイン、対処すればURPにも)
・音声入力コマンド

#●環境、導入方法

環境、導入方法 現在のUnity2020+MRTKv2.7では、PackageManagerの機能を使いインポートすることが出来ます。 さらに、Mixed Reality Feature Toolという外部ツールが登録をアシストしてくれます。 こちらのツールを使い、「Mixed Reality Toolkit Foundation」「Mixed Reality Toolkit Examples」をインポートします。 https://docs.microsoft.com/ja-jp/windows/mixed-reality/develop/unity/welcome-to-mr-feature-tool 設定後プロジェクトを開くと、XRの設定を自動でしてくれる画面が出ますがスキップします。 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1317891/1494b6ea-90bd-2505-be67-8d7519b90881.png) すでに基本の機能はインポートされた状態で、PackageManagerにパッケージが登録されています。 「Mixed Reality Toolkit Examples」のSamplesから必要なサンプルをダウンロードできます。 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1317891/1d74b4e8-6983-2888-f99e-6371922d5441.png) ダウンロードしたサンプルは↓の場所に入ります ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1317891/168d60b4-696e-b94b-248c-97c837b79873.png)

#●3Dモデルの動的(ランタイム)ロード
サンプル名:Demos - Gltf
サンプルシーン:Demos - Gltf\Scenes\Glb-Loading-Demo

この記事を書いた動機です。
ネット上で「Unity モデル ランタイムロード」などで検索しても有料アセットしか出てこず、買うしかないかなと思っている人多いのでは。
対応しているのはgltfという、主にWEB上でモデル表示をするのに使われている(?)形式。
自分は聞きなじみがなかったですが、世間的には一般的なフォーマットらしく、blender等でも書き出し可能です。
とりあえずの使い方
サンプルシーンを再生すると、インターネット上のラジカセのモデルが表示されます。
image.png
他のシーンで使うには、空のオブジェクトにTestGlbLoadingを追加します。
image.png

URLを指定して再生すると、インターネット上のgltfモデルを表示してくれます。
ローカルのモデルにも対応しているので、デスクトップなどのファイルを指定することもできます。
image.png
↓はTestGlbLoadingの内容ですが、作成したオブジェクトは gltfObjectに格納されます。
gltfObject.GameObjectReferenceでGameObject型になります。
image.png

#●全部入りの便利なシェーダー
サンプル名:Demos - StandardShader
サンプルシーン:Demos - StandardShader\Scenes
image.png

URP、shadergraphの普及で難易度が下がってきてはいますが、初心者には難しいシェーダー作成。
MRTKで使われているシェーダーは、書き込み深度の変更、ディソルブや断面表示、リムライトなど、少しニッチだけれども使いたい人は確実にいる機能が1シェーダーの機能切替で使えます。
URPで使用するには↓のコマンドを実行。
image.png

#●音声入力コマンド
サンプル名:Demos - Input
サンプルシーン:Demos - Input\Scenes\Speech
あらかじめ登録したワードを使ってイベントを実行できます。
日本語入力も難なくやってくれます。
(日本語なら表音文字だから登録はひらがなで登録すればいいけど、英語はどういう理屈なのかわからん…自分の下手な英語では認識してくれなかった)
とりあえずの使い方
MRTKは、どのインプットを受け付けるか、MRTKプロファイルというものを使って設定します。
”Demos - Input\Scenes\Speech”を開き、独自のコマンドを追加してみます。
image.png
次に、音声入力で実行されるイベントを作成します。
サンプルではオブジェクトにアタッチされているので、編集します。
image.png
これで、「じっこう」と言うとオブジェクトの色が変わると思います。

##●終わり
各機能、Untiyで公式採用してほしいくらいです。無料とは有り難いですね。
以上紹介でした。参考になれば幸いです。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?