こんにちは。いっせい(@issey_tsumiki)です。と、PMのしのぶ(@shinoblogavi)です。
この記事の目次
1. Unity Reflect のセットアップ手順
UnityReflectを始める際にざっくりとしたフローを記載します。
はじめに、Unity Reflect を始めるための準備方法について流れを確認します。詳細については、Unity Reflect の申請頂だいた際に付属される、ライセンス認証を行うための日本語マニュアルに記載しておりますのでそちらをご参照ください。
■ 申し込みとライセンス適応
- UnityへUnityReflectのライセンスを申請(体験版/製品版)[Unity for AEC]
- ライセンスコード記載のメールを受信(営業日1~2日程度)
- UnityIDからOrganizations(組織)へUnityReflectのライセンスコードを認証、ユーザーに付与[マニュアル]
■ 各種アプリのインストール
メール記載のUnityHub、ReflectViewerをDownload&インストール
※既存UnityHubをお使いの方はUninstallした上でインストールしてください。UnityHubから対応しているソフトのReflectプラグインをインストール[マニュアル]
※追記
UnityReflect用のインストーラーがライセンスと共に送付されます。
そちらからViewerとPlugin各種をインストールすることが出来るようにアップデートされました。
以上のセットアップが完了すると、いよいよ対応ソフトからReflectでプロジェクトを書き出して[マニュアル]Reflect Viewerを通じて確認することができます。
このドキュメントでは、このセットアップと実行の際にいくつか気をつける点について、紹介します。
2. Unity Reflect の設定と管理
はじめに、Unity Reflect のライセンスを取得したら、これを Unity ID が登録されている組織に対してライセンスを付与します。さらに、Unity Reflect を使用する担当者を登録する必要があります。
Unity ID と管理画面
Unity ReflectのライセンスはUnity IDに紐付いています。Unity IDはUnityを初めたときに作るアカウントです。Unity Reflect を管理する人、変換する人、見る人は全てそれぞれのUnity IDで管理されます。
Unity IDの管理をするための画面が [こちら]です。
普段は殆ど見ることがないので、この管理画面はあまり馴染みがないと思います。この管理画面で管理することが出来る機能には以下のようなものがあります。
尚、もし管理画面が英語になってしまっている場合は、Preferred languageを日本語にするとできます。
組織 に Unity Reflect ライセンスを付与する
Unity Reflectを扱う上で重要なのが、実行する際の『Projects / プロジェクト』と、ライセンスやプロジェクトを管理するための『Organizations / 組織』です。Unity Reflect でのライセンスの管理は『Organizations / 組織』の中で行います。
Unity IDに関連づいた Organizations(組織)の管理もUnity IDの管理画面で行います。管理画面の左のメニューからOrganizations(組織)を選択すると状況を確認できます。
こちらでは、Unityから販売されているのサブスクリプションライセンスを管理するページとなります。通常、会社で運用している場合、Organizations(組織)は一つだと思いますが、新しく組織を作ることでUnityで開発するチームを複数管理することもできます。
中に入ると、サブスクリプションライセンスとメンバーの編集が可能です。このサブスクリプションライセンスに 契約した Unity Reflect のライセンスを登録し、さらに Unity Reflect を使うメンバーに権限を付与します。
サブスクリプションにライセンスを登録する
Reflectのライセンスを購入/体験版 をOrganizations(組織)に追加すると、サブスクリプションの欄にUnityReflectが追加されます。
※UnityReflectのみを使う場合は会社でもUnityProは必要ではありません。
サブスクリプションの欄に追加された瞬間から、ライセンスは使える状態となります(日数のカウントも開始)。
Unity Reflect を使用するメンバーを管理する
サブスクリプションの欄に追加されても、ライセンスはユーザーに紐付けられていません。この状態では誰も Unity Reflect を使用することができません。そのため、Reflectを扱うユーザーをOrganizations(組織)に追加し、このユーザーにライセンスの権限を付与します。(ライセンスの権限の付与はOwner(所有者)のみが行うことができます)。
メンバーには権限が割り振られています『Owners/Managers/Users/Guests』。主な違いはこんな感じです。(詳細はこちら [Unityマニュアル Organization の管理])
Owner (所有者) :プロジェクトを作成できる。ライセンスの管理も可能。
Manager (管理者) :プロジェクトを作成できる。ライセンスの管理はできない。
User (ユーザー) :プロジェクトの閲覧は可能。組織データを見ることは出来る。
ここからもわかるように、メンバーを追加して権限を付与する場合は、Unity Reflect を操作してデータを書き出す担当者に対しては、必ず Manager(管理者)以上 でユーザーを追加するようにしてください。権限が足りない場合、書き出しができない場合があります。
※その他のユーザー(UnityProだけを付与する場合など)はUser(ユーザー)でも問題ありません。
これで、ユーザーにUnityReflectのライセンスが付与された状況になり、使うことが可能となります。
ポイント
次の2つの点をしっかり把握しておくことが大事です。
- Organizations(組織)は開発チームを招待し運用、複数のチームも編成可能
- UnityReflectのライセンスはOrganizations(組織)で管理する。
3. Unity Reflect のプロジェクトの作成と閲覧
ライセンスの登録とユーザーの割当が完了したら、いよいよUnity Reflect お使いいただくことができます。ここではプロジェクトの作成から、Viewer での閲覧方法についてご紹介します。
Projects / プロジェクト の作成と共有
ユーザーにきちんと権限が付与されていれば、Unity Reflect を使って3Dモデルの情報を書き出すことができます。
手順通り、Unity Reflect のプラグインをインストールすると、CADアプリ(Revit)のメニューに「Unity」の項目が追加されます。ここで、Export View もしくは Sync Start ボタンを押すと、Unity Reflect用のプロジェクトを新しく作ることが出来ます。
※UnityHubからプラグインをインストールした後の状態です。
まだ、Unity ID でのサインインが完了していない場合は、右上のアイコンをクリックして、表示に従ってUnity IDでサインインしてください。この際必ずライセンス管理画面で、Master 以上に権限を付与されたユーザーでサインインします。
ここで注意しなければならないのが、Reflectを付与されているOrganizations(組織)を選択しないと書き出せないということです。Project が作成されるときには、指定された組織に対して Unity Reflect のライセンスがあるかチェックされ、ライセンスが確認できなかった場合はProject を作成することができません。
ライセンス認証に成功すると、Project を作成するためのダイアログが開きます。ここで Export を行うと Reflect Server (ストレージ)にプロジェクトがExportされます。
作成された Project は Reflect Server に出力されるだけでなく、Organizations(組織)に対しても、この組織のプロジェクトとして追加されます。組織のプロジェクト一覧をみると出力したプロジェクトが追加されています。
※UnityEditor(UnityHub)で作ったプロジェクトもここに集約されています。
Viewer の使用者(招待ゲスト)の登録
出力されたプロジェクトは、PCやタブレット用の専用Viewer を通じて3Dモデルを確認することができます。ただし、Viewer から見る場合にも、Unity ID の登録が事前に必要です。3Dモデルは、閲覧する権利が与えられたユーザーのみ、見ることができます。
上記でアップロードしたプロジェクトを例に解説していきます。[マニュアル]
公式マニュアルもありますが、アップロード側の設定が抜けていますので補足します。
はじめに、Unity ID の管理画面から、画面左にあるDashboard メニューをクリックし、続けて画面上の Develop タブを選択します。プロジェクト一覧が表示されるため、Reflect Server にアップロードしたプロジェクトをクリックします。下記のような画面が表示されるので、画面左のSettingsのタブの下にUsersがあるので、タブをクリックして開きます。
Usersに入ると[Add a Person or Group]というところが記入出来るようになっています。外部の招待したいメールアドレス(Unity ID)を打ち込み進めます。UnityIDを保有していない場合は、UnityID作成からになります。事前に作っておくと良いでしょう。
アクセスレベルは[User]でも問題ありません。(アップロードする人は[Manager]以上が必須です。)※ゲストはReflectのアップロード権限はありません。
Viewer に対してプロジェクトを公開する
Unity Reflect でプロジェクトをアップロードする画面です。
ここで重要な操作があります。Reflect Server に他のデバイスからアクセスできるように、Reflect Server を一般公開状態にする必要があります。設定のための歯車アイコンがあるので、クリックすると設定画面が表示されます。
Sharing Settings のタブを開き、Publicをオンにします。オンにすることで、同じOrganizations(組織)の人と招待したゲストに自分がアップロードしたプロジェクトが公開されます。
※尚この操作は初回の1度だけで構いません。
現状だと、PCのローカルにデータを保存しサーバーになるため、PCの名称が記載されます。
例)Local(自分)、Desktop-….(他の人)
ゲストのUnityIDでログインした場合は、招待したプロジェクトしか見えません。但し、同じOrganizations(組織)にはプロジェクトが共有されますので注意が必要です。
4. 追加 Tips 情報 ※随時更新
一部正式に公開されていない情報等もあります。参考までに。
異なるネットワーク上のViewer からの体験方法
現段階(2020/2)では、上記のように、UnityReflectの共有設定をONにしていれば、同一ネットワーク内にある Reflect Server からの情報を共有し、3Dモデルをインポートしたり、Sync機能を使うことが可能です。
そして、もし Reflect Serer (となっているPCが)異なるネットワークに接続されていても、アカウントに対して表示が許可されているプロジェクトは、Reflect Viewer のプロジェクト一覧には表示されています。しかし実際には、表示しようとするとエラーが発生します。
将来的に、Unity Reflect がクラウド対応することで異なるネットワークを介したプロジェクトの閲覧や動機が可能になるでしょう。
データの保管場所
Unity Reflect では、主に次の2つの方法でデータ保管が行なわれています。
① Reflect Server(Local 設定の場合、PCのストレージに保存)
%PROGRAMDATA%\Unity\Reflect\Storage
これは、Reflectから書き出したものをPCストレージに保存しています。Reflect Viewer はネットワークを介してここにあるデータをダウンロードして表示します。
②ReflectViewerのキャッシュ保存
%USERPROFILE%\AppData\LocalLow\Unity Technologies\Unity Reflect\ProjectData
これは、ReflectViewerで体験する際にダウンロードしたキャッシュになります。他のユーザーが書き出したものを見る場合は、『Local』の他にフォルダが追加されます。ただしあくまでもキャッシュデータであり、他のViewer にデータをコピーしても表示させることはできません。
ReflectViewerで体験する際にモデルの変更などが合った場合、キャッシュを消して再ダウンロードすることをおすすめします。
※前の情報が残っていると、重複してモデルをダウンロードしてしまう場合があります。
また、BIM側のデータ名を頻繁に変えている場合も要注意です。
アップロード時に名前が違う場合、上書きではなく別物として書き出されます。
そのため、二重にモデルが読み込まれてしまう場合があります。
間違えてアップロードしてしまった場合は、①に保存されている重複モデルを消していただくと動作します。
外部マテリアルの適応方法
Revitの場合、外部テクスチャを使う場合はオプションのレンダリング外観パスを追加していると思います。
こちらの設定だと、Reflectで書き出す際、テクスチャを読み込めず単色で出力されてしまします。この場合は、以下のパスにテクスチャ込みのフォルダを追加し、連携させていただくことで、マテリアルデータを渡すことが出来ます。
%ProgramFiles(X86)%\Common Files\Autodesk Shared\Materials\Textures