はじめに
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等でも書き出し可能です。
とりあえずの使い方
サンプルシーンを再生すると、インターネット上のラジカセのモデルが表示されます。
他のシーンで使うには、空のオブジェクトにTestGlbLoadingを追加します。
URLを指定して再生すると、インターネット上のgltfモデルを表示してくれます。
ローカルのモデルにも対応しているので、デスクトップなどのファイルを指定することもできます。
↓はTestGlbLoadingの内容ですが、作成したオブジェクトは gltfObjectに格納されます。
gltfObject.GameObjectReferenceでGameObject型になります。
#●全部入りの便利なシェーダー
サンプル名:Demos - StandardShader
サンプルシーン:Demos - StandardShader\Scenes
URP、shadergraphの普及で難易度が下がってきてはいますが、初心者には難しいシェーダー作成。
MRTKで使われているシェーダーは、書き込み深度の変更、ディソルブや断面表示、リムライトなど、少しニッチだけれども使いたい人は確実にいる機能が1シェーダーの機能切替で使えます。
URPで使用するには↓のコマンドを実行。
#●音声入力コマンド
サンプル名:Demos - Input
サンプルシーン:Demos - Input\Scenes\Speech
あらかじめ登録したワードを使ってイベントを実行できます。
日本語入力も難なくやってくれます。
(日本語なら表音文字だから登録はひらがなで登録すればいいけど、英語はどういう理屈なのかわからん…自分の下手な英語では認識してくれなかった)
とりあえずの使い方
MRTKは、どのインプットを受け付けるか、MRTKプロファイルというものを使って設定します。
”Demos - Input\Scenes\Speech”を開き、独自のコマンドを追加してみます。
次に、音声入力で実行されるイベントを作成します。
サンプルではオブジェクトにアタッチされているので、編集します。
これで、「じっこう」と言うとオブジェクトの色が変わると思います。
##●終わり
各機能、Untiyで公式採用してほしいくらいです。無料とは有り難いですね。
以上紹介でした。参考になれば幸いです。