0
1

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.

Azure Remote Rendering (ARR) サンプルの機能の纏め

Last updated at Posted at 2021-05-28

この記事について

Azure Remote Renderingとは3Dモデルを最高の品質でMixed Realityデバイスに体験できます。Azureのコンピューティング力を利用して、クラウドでレンダリング、そうしてデバイスへストリーミングとは可能です。こんな方法で各ユーザーは3Dモデルと最大の詳細で操作してコラボレーションができます。この記事で、ARRドキュメンテーションからのサンプルに機能を纏めさせていただきます。

条件

Azure Remote Renderingチュートリアルを完成。
「チュートリアル:素材、ライト、および効果の調整」までだけはOK!

モデル選択

このModel Pathの入力に自分のモデルのリンク(Arrファイル)入れてください。

image.png

モデル用意しなかった場合はこのデフォールトリンクいれても大丈夫です。
"builtin://Engine"

下のサンプルはMRTKのREST APIを使って、ARRファイルをModel Path入力に自動で入れます。

ArrDownloader.cs
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ボタンでセッションを始めます。
image.png

セッションを作成します。普段は2-3分をかかったけれど、最大5分ぐらいもかかるかもしてません。
参考:セッション起動は長すぎて
image.png

セッション接続できましたら、モデルを自動に表示されます。
image.png

キーボードで「m」ボタンを押したら、操作UIを左手に移動します。
image.png

操作のサンプルです。

機能

Azure Remote Rendering機能については、次のセクションで説明します。

Model Tools

まずはストリーミングされたモデルの操る道具を説明します。

image.png

Load/Unload

「Load/Unload」ボタンはレンダーされたモデルを表示すると標示されないのボタンです。

Edit Material

Azure Remote RenderingのモデルのMaterialを変更できます。この例では、モデルは簡略すぎて、変更できるものはあまり選択はないです。今度は別のモデルで試します。

この下の例では、もっとコンプレックスモデルで体験した。

Hierearchical State Override

Hierarchical State Overrideとは各オブジェクトを操られることができます。

この別の映像で、車の部分を隠すことができました。

Lock/Unlock

この機能で、モデルの状態をロックされて、操ることはできなくなる。

Session Tools

Session Toolsとは、ARRセッションの環境を操る。各道具は別々の機能を持ってます。各機能でストリーミングされたモデルを影響する。

image.png

Cut Planes

Cut Planesとは平面のオブジェクトです。この平面で、切られた部分を表示されていません。なので、モデル中身を見れます。

Directional Light

Directional Lightとは光の源を色が更できます。光の源を変更すれば、オブジェクトの色も影響受けます。

Skybox

Skyboxとはシーン全体の環境です。これを操る場合は、自分のモデルをそれぞれの環境で違いが見えます。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?