Hiromuブログ

HoloLens などに関するブログです

Azure Remote Rendering

Azure Remote Rendering(ARR) に関して、ドキュメントを順に追っていくよりも、以下の順で進めるのが効率が良いと感じたのでおすすめの進め方についてまとめてみました。この流れでまずは動くものを確認した上で詳細を確認していくのが良いように思います。

※価格に関しての注意点:クライアントのアプリとクラウド上のVMが接続されていなくても、VMが起動している時間で課金されます。一定時間経過すると自動的にVMが停止するようになっていますが、必要ない場合は明示的にセッションを停止するようにしておくと良いと思います。停止方法については以下の「セッションの停止方法」参照

進め方

  • Azureのリソース設定(これをしないことには始まりません、サンプルの確認もできない)

    • Azure Remote Rendering アカウントの作成

      • Account ID をメモする
      • Access Keys タブの Primary key をメモする
    • ストレージアカウントの作成

      • レンダリングの設定に使用したのと同じ location にするのが理想と書かれている
      • Account Name をメモする
      • Account Key をメモする
      • モデルの出力先用に作成した コンテナ名をメモする(ドキュメントではarroutput)
  • サンプルを動かす

    • Quickstarts
      • ビルトインモデルである約1800万ポリゴンのエンジンが表示される
    • arr-showcase-app
      • GitHub
      • コンテナに格納したモデルを表示でき、部品の選択・移動やマテリアルやライトの変更などができる
  • オリジナルのモデルを確認する

  • スクラッチでUnityの実装をする

セッションの停止方法

  • Azure ポータルから(これが一番簡単かつ確実だと思います)
    f:id:HiromuKato:20200821110544p:plain

  • Quickstarts アプリの場合
    Auto-Stop Session にチェックを入れると Play 終了後セッションを停止する

    f:id:HiromuKato:20200416235632p:plain
    Auto-Stop Session

  • arr-showcase-app アプリの場合
    インスペクタにセッション操作ボタンがある

    f:id:HiromuKato:20200416235638p:plain
    Stop Session

  • チュートリアルのアプリの場合

  • Example PowerShell scripts

    • PowerShell によるセッションの停止
    • このドキュメントのPrerequisites に書かれている Azure PowerShell をインストールしておく必要がある
    • Azure アカウントへの接続
      Connect-AzAccount -Subscription <subscriptionID>
    • セッションの確認方法
      .\RenderingSession.ps1 -GetSessions
    • セッションの停止方法
      .\RenderingSession.ps1 -StopSession -Id <sessionID>

おまけ

arr-showcase-app アプリにおいて Azure のアカウント情報は RemoteRenderingService オブジェクトのインスペクタで設定するようになっていますが、以下のような arr.account.xml をStreamingAssetsに格納するか、もしくは、arr.overrides.xml を Application.persistentDataPath に格納することでもアカウント情報を設定することができます。(arr.account.xml についてはドキュメントで触れられているもののどのような内容を記載すればいいのかが書かれていなかったのでソースを確認しました)

f:id:HiromuKato:20200416235809p:plain
arr.account.xml

<?xml version="1.0" encoding="utf-8"?>
<Configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Account>
    <AccountDomains>
      <AccountDomain>eastus.mixedreality.azure.com</AccountDomain>
      <AccountDomain>westeurope.mixedreality.azure.com</AccountDomain>
      <AccountDomain>westus2.mixedreality.azure.com</AccountDomain>
      <AccountDomain>southeastasia.mixedreality.azure.com</AccountDomain>
    </AccountDomains>
    <AccountId>★アカウント情報</AccountId>
    <AccountKey>★アカウントキー</AccountKey>
  </Account>
  <Storage>
    <StorageAccountName>★ストレージ名</StorageAccountName>
    <StorageAccountKey>★ストレージのアカウントキー</StorageAccountKey>
    <StorageModelContainer>★モデルを格納したコンテナ</StorageModelContainer>
  </Storage>
  <Session>
    <MaxLeaseTime>300</MaxLeaseTime>
    <AutoRenewLease>true</AutoRenewLease>
    <AutoReconnect>true</AutoReconnect>
    <AutoReconnectRate>15.0</AutoReconnectRate>
  </Session>
</Configuration>

ドキュメントのピックアップ