この記事について
Azure Remote Renderingとは3Dモデルを最高の品質でMixed Realityデバイスに体験できます。Azureのコンピューティング力を利用して、クラウドでレンダリング、そうしてデバイスへストリーミングとは可能です。こんな方法で各ユーザーは3Dモデルと最大の詳細で操作してコラボレーションができます。この記事で、ARRドキュメンテーションからのサンプルに機能を纏めさせていただきます。
条件
Azure Remote Renderingチュートリアルを完成。
「チュートリアル:素材、ライト、および効果の調整」までだけはOK!
モデル選択
このModel Pathの入力に自分のモデルのリンク(Arrファイル)入れてください。
モデル用意しなかった場合はこのデフォールトリンクいれても大丈夫です。
"builtin://Engine"
下のサンプルはMRTKのREST APIを使って、ARRファイルをModel Path入力に自動で入れます。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Microsoft.MixedReality.Toolkit.Utilities;
using TMPro;
using UnityEngine.UI;
public class ArrDownloader : MonoBehaviour
{
string endpoint = "<こちらは自分のエンドポイント>";
string authorizationKey = "<自分のキー>"
public GameObject modelSlot;
[System.Serializable]
public class SasUrl{
public string results;
}
private void Awake() {
getSas();
}
async void getSas(){
Response response = new Response();
try{
var headers = new Dictionary<string, string>();
headers.Add("x-api-key", authorizationKey);
var parameters = new Dictionary<string, string>();
response = await Rest.GetAsync(endpoint, headers, -1, null, true);
if (!response.Successful)
{
debugText.text = "サーバーにアクセスできません。#0031";
return;
}
//Debug.Log(response.ResponseBody);
var sasUrl = JsonUtility.FromJson<SasUrl>(response.ResponseBody);
Debug.Log(sasUrl.results);
modelSlot.GetComponent<RemoteRenderedModel>().ModelPath = sasUrl.results;
}
catch (Exception e)
{
Debug.LogError(e.Message);
debugText.text = "サーバーにアクセスできません。#0032";
return;
}
}
}
操作
MRTKの環境のようにEditorでキーボード「スペース」を押したらハンドポインターが出てくる。ハンドポインターで左クリックしたら、ボタンを押せます。右クリックを押すと移動したら、頭を回転するように、ビューを回転します。
アプリを起動したら、Connectボタンでセッションを始めます。
セッションを作成します。普段は2-3分をかかったけれど、最大5分ぐらいもかかるかもしてません。
参考:セッション起動は長すぎて
キーボードで「m」ボタンを押したら、操作UIを左手に移動します。
操作のサンプルです。
機能
Azure Remote Rendering機能については、次のセクションで説明します。
Model Tools
まずはストリーミングされたモデルの操る道具を説明します。
Load/Unload
「Load/Unload」ボタンはレンダーされたモデルを表示すると標示されないのボタンです。
Edit Material
Azure Remote RenderingのモデルのMaterialを変更できます。この例では、モデルは簡略すぎて、変更できるものはあまり選択はないです。今度は別のモデルで試します。
この下の例では、もっとコンプレックスモデルで体験した。
Hierearchical State Override
Hierarchical State Overrideとは各オブジェクトを操られることができます。
この別の映像で、車の部分を隠すことができました。
Lock/Unlock
この機能で、モデルの状態をロックされて、操ることはできなくなる。
Session Tools
Session Toolsとは、ARRセッションの環境を操る。各道具は別々の機能を持ってます。各機能でストリーミングされたモデルを影響する。
Cut Planes
Cut Planesとは平面のオブジェクトです。この平面で、切られた部分を表示されていません。なので、モデル中身を見れます。
Directional Light
Directional Lightとは光の源を色が更できます。光の源を変更すれば、オブジェクトの色も影響受けます。
Skybox
Skyboxとはシーン全体の環境です。これを操る場合は、自分のモデルをそれぞれの環境で違いが見えます。