Azure Remote Renderingの使い方、設定方法をまとめました。
Azureが何なのかもわからん私がアカウント作るとこから初めた全部入り備忘録。
公式ドキュメントをなぞったものですがちょいちょいハマリポイントがあったので補足しながら書いてます。
※Azure Remote Renderingの概要はこちらの記事が参考になります
・Azure Remote Rendering(プレビュー)概要
・Azure Remote Rendering 公式サンプル徹底解説
Azure Remote Rendrering 公式ページ
Azureの無料アカウントを作成
Azureのアカウントを作成するところから始める。
公式ページ下にあるリンクからアクセス。
Azureを知るのに役立ちそうなリンク
– オンラインウェビナー一覧
– オンラインコースの受講
– FAQとヘルプ
– Azure ポータル クイックスタートページ
環境構築
下準備
公式ページ下にあるリンクからチュートリアルページへアクセス
Azure Remote Rendering 公式ドキュメント
System requirements ページを確認しVisual StudioやUnity等必要なものをインストール
Azure Remote Rendering アカウントの作成
Remote Renderingするためのアカウントを用意する。
アカウントと書いてあるので更にアカウント作るのかと混乱したが「リモートレンダリングするための機能をインストールする」イメージ?(ちゃんと分かってない)
こちらのページを参考に進める
名前を付ける
※ここで付けた名前がそれぞれ以下のように表示される
Next
を押すとデプロイが始まるのでその間にアカウントIDをメモする
Strageアカウントの作成
変換前のデータと変換後のデータを保存するためのアカウントを作る。
このアカウントの中に保存するための場所(コンテナー)を作成する事となる。
こちらの手順を参考に進める。
各項目を入力
– リソースグループ
前手順で作成したリソースグループを選択する
- 場所
近い方が良い気がしたので(Asia Pacific) 東日本
とした
※2020/10/08追記
Remote Renderingアカウントと同じ場所とするのが良さそう(この記事の場合は東南アジア) -
ストレージアカウント名
入力したものが↓こちらの名称となる
検証および作成
ボタンを押し、検証が完了したら再度作成
ボタンを押す
Blobストレージの作成
上記手順で作成したストレージアカウントの中に、データを保存するための場所を作る。
こちらの後半の手順を参考に進める。
同様の手順でアウトプット用とインプット用と2つ作成する
インプット用(変換前データ)をarrinput
アウトプット用(変換後データ)をarroutput
とした。
ストレージアカウントをリンクする
「ストレージアカウントをリンクする」の意味は―
ストレージアカウントがリンクされている場合、たとえばモデルをロードするときなど、アカウントのデータを操作するたびにSAS URIを生成する必要はありません。代わりに、モデルのロードセクションで説明されているように、ストレージアカウント名を直接使用できます。
こちらの手順を参考に進める。
ロールの割り当ての追加
から、前手順で作成したRemote Renderingアカウントを選択する。
(この記事の場合は”RAA”という名称)
選択欄に名前を入れても`このサブスクリプションでマネージド ID Remote Rendering アカウントが見つかりませんでした`とエラーが出てアカウントが見つからず割り当てられない時の対処方法
Remote Rendering アカウントからID(Identity)を開き`状態を`オン
`にしておく。
これによって上記の選択欄に表示されるようになる。
(もしくは画像の④のところからロールの割り当てを行う)
参考:ストレージアカウントを ARR アカウントにリンクできない
同じ手順で3つのロールを設定する。
– 所有者 (Owner)
– ストレージアカウント共同作成者 (Storage Account Contributor)
– ストレージBLOGデータ共同作成者 (Storage Blob Data Contributor)
Unityのセットアップ
こちらの手順を参考に進める。
Azure Remote Rendering 用のディレクトリを作成しGitからクローン
git clone https://github.com/Azure/azure-remote-rendering
ダウンロードしたデータの中にあるUnityプロジェクトQuickstart
を開く
Quickstart
シーンを開きAccount Domain、Account ID、Account Keyを入力する
- Account Domeinn
リストはこちら
https://remoterendering.southeastasia.mixedreality.azure.com
ではなく
southeastasia.mixedreality.azure.com
の形式で入力する。
設定が完了したらシーンを再生する。
Game画面でセッションステータスがStarting...
になっているのを確認する。
VMの起動とモデルのDLで描画されるまで数分かかる。
しばらくするとデフォルトで用意されているハイポリなエンジンのモデルが表示される!
オリジナルのモデルを用意する
こちらの手順を参考に進める。
上記手順でGitからクローンしたデータの中にConversion.ps1
スクリプトがあるのでこれを使う
スクリプトの内容
- 指定されたディレクトリ内のすべてのファイルをローカルディスクから入力ストレージコンテナにアップロードします
- 入力ストレージコンテナーからデータを取得し、変換IDを返す変換を開始するアセット変換REST APIを呼び出します
- 変換プロセスが成功または失敗して終了するまで、取得した変換IDで変換ステータスAPIをポーリングします
- 出力ストレージ内の変換されたアセットへのリンクを取得します
jsonの編集
上記同フォルダにあるjsonファイルを編集する。
IDやストレージの場所、変換したいモデルのファイル名等をここで指定する。
Azureへのログイン
jsonの準備ができたらPowerShellを起動しAzureにログインする。
以下のコマンドを実行。
Connect-AzAccount
上記の様に用語 'Connect-AzAccount' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
とエラーが出て弾かれる場合はモジュールをインストールする。
参考: Azure PowerShell Az module をインストールする
モジュールインストールコマンドはこちら。
stall-Module -Name Az -AllowClobber
インストール後に以下のコマンドでモジュールを最新のものに更新する。
Update-Module -Name Az
完了したら再度Azureログインコマンドを実行する。
Connect-AzAccount
モデルを変換する
Conversion.ps1が置かれた階層へ移動する。
cd D:\Git\ARR\azure-remote-rendering\Scripts
変換コマンドを実行。
.\Conversion.ps1 -UseContainerSas
変換が完了するとSAS URIが発行されるのでこれをメモしておく。
このURIの有効期限は24時間。
24時間を経過した場合はこちらの手順で再発行する。
この時コンテナ内には変換前のデータと変換後のデータが格納されている。
Unityでモデルを表示する
Quickstart
プロジェクトを開きModel Name
欄に上記手順で生成されたSAS URIを入力
シーンを再生する。
Game画面でセッションステータスがStarting...
になっているのを確認する。
数分後に変換したモデルが表示される!
HoloLensにビルドする
こちらの手順を参考に進める。
後はいつもどおりデプロイ。
以上で重いモデルもHoloLensで見れるようになった!
Azure Remote Rendering Showcase アプリ
ここまでの手順ではUnityプロジェクトQuickstart
を使ってきたが、モデルを確認するにはこちらのShowcase
アプリが便利。
– 公式ドキュメント内の解説ページ
設定方法や使い方はこちらに記載されている。
– GitHub
Unityプロジェクトを開くとパッケージエラーが出る
An error occurred while resolving packages:
[*\azure-remote-rendering\Unity\MRPackages\com.microsoft.azure.remote-rendering-0.1.82.tgz\package.json] connot be found.
パッケージは別途以下の通りUnityのPackages>manifest.json
を書き換えて読み込む。
"scopedRegistries": [ { "name": "Azure Mixed Reality Services", "url": "https://api.bintray.com/npm/microsoft/AzureMixedReality-NPM/", "scopes": ["com.microsoft.azure"] } ], "dependencies": { "com.microsoft.azure.remote-rendering": "0.1.82", "com.microsoft.azure.spatial-anchors-sdk.core": "2.7.1", "com.microsoft.azure.spatial-anchors-sdk.windows": "2.7.1",
読み込み後に不具合が出る場合はUnityのLibrary
の中身を一旦全て削除する。
モデルのダウンロードに失敗する
コンナナ内のモデルを選択しダウンロード出来る仕組みとなっているが―
以下のエラーが出てダウンロードに失敗する場合がある。
Failed to load model from 'https://~~'. Reason: Load model failed with status 'FileDownloadFailed'.
コンテナへアクセス出来ないことが原因なので以下の手順でアクセスレベルを変更する。
変換後のモデルが格納されているコンテナ(ここではarroutput
)を選択
アクセスレベルを変更する
これによりダウンローが可能になる。
参考: ARR Showcase App – Failed to load model
環境構築完了後のワークフロー
モデルの変換
- arrconfig.jsonを編集する
"inputAssetPath": "<ファイル名>.glb"
- PowerShellを起動
- Azureにログイン
Connect-AzAccount
- スクリプトのある階層へ移動
cd D:\Git\ARR\azure-remote-rendering\Scripts
- 変換コマンドを実行。
.\Conversion.ps1 -UseContainerSas
出来上がったもの
1億ポリゴンなAR、出来てしまった。
地下から屋根裏まで、
全部入りな旧都城市民会を輪切りに。#AzureRemoteRendering の力すごい。#HoloLens2 pic.twitter.com/jssuHyirZ4— 龍 lilea (@lileaLab) May 12, 2020
追記:Azure Remote Rendering Asset Tool
モデルの変換とプレビューが可能なAzure Remote Rendering Asset Tool (ARRT) というものがリリースされました。
当記事ではモデルの変換はコマンドラインで行っていましたが、GUIで変換が行える便利なツールです。
そちらのセットアップ方法と基本的な異使い方についてもこちらにまとめました。