見出し画像

02.Reality Engine®ウォークスルー

----------------------------------------------------------------

以下、Reality Engine2.10 Previewドキュメントの翻訳記事です。
URL:https://docs.zerodensity.tv/reality210/reality-walkthrough

https://www.zerodensity.tv/


現実のウォークスルー Realityへようこそ



このチュートリアルでは、バーチャルスタジオシステム、Reality Editorとコントロールアプリケーションの基本的な概念を理解していただきたいと思います。このチュートリアルでは、以下の内容を説明します。

・レンズとトラッキングキャリブレーションの精度の重要性を理解します。
・リアリティの最もクールな機能の一つであるプロジェクションボリュームと3Dマスキングの背後にあるアイデアを得ることができます。
・最高のキーイング結果を得るために重要な物理的側面と仮想的側面の重要な違いや関係性がわかります。
・バーチャルと拡張パイプラインをゼロから作成します。

このチュートリアルは、ゼロ密度サポートチームから受けるトレーニングの補足であり、リフレッシュメントであることを覚えておいてください。

このチュートリアルでセルフ・トレーニングを終えた後は、以下のようなビデオを作成して楽しむことができます。



リアリティの紹介



Reality Suiteアプリケーション
Reality Suiteアプリケーションを実行するには、まず、Reality Suiteで使用するマシンを設定する必要があります。

画像1

使用する機械の構成は、5つのカテゴリーに分けてメモしておくことができます。


1.Cook Server:出荷モードで実行されるプロジェクトをクックするために使用されます。クッキングとは、プロジェクトをより多くのメモリとパフォーマンスを効率的に使用するために変換するプロセスです。クックされたプロジェクトはすべてシッピングモードで実行されます。クックサーバーはReality Cook Serverアプリケーションを実行します。このマシンにはグラフィックカードは必要ありませんが、Reality Editorが必要です。Cook ServerReality Editorのインストールは必須です。

Cook ServerのインストーラーはReality Editorのインストーラーと一緒にオプションのインストーラーコンポーネントです。Reality Editorのインストーラのセットアップを実行し、"Cook Server"のみを選択してください。

プロジェクトはReality Editorなしでは調理できませんので、Reality Editorをクックサーバーのマシンにインストールする必要があります。


2.Reality Engine:すべてのプロジェクト/仮想セットを含むメインエンジンです。1つまたは複数のReality Engineをインストールすることができます。プロジェクトはReality Engineのライセンスでこれらのエンジンから実行されるので、これは高性能なワークステーションでなければなりません。このマシンにはAJA I/Oビデオボードがインストールされます。このマシンにはReality PrerequisitesReality Engineのインストールが必須です。各エンジンは独自のキャッシュを持っており、プロジェクトが起動してエンジンサーバーがオンになるたびに、エンジンはローカルキャッシュからスタジオの最新バージョンを呼び出します。

Reality Engineの認定システム構成を参照してください。


3.Control Server:その名の通り、1台または複数のエンジンを制御するためのメインの制御源であり、各エンジンに様々なコマンドを与えて制御することができます。オペレーターは生放送中にこれらのコントロールマシンでReality Controlを使用します。コントロールアプリケーションはプロジェクトを起動/停止するためにReality Engineにコマンドを送り、Reality Engineでのプロジェクトの処理方法をコントロールして、希望する出力を実行します。また、クックサーバーと通信して調理プロセスを実行します。
コントロールアプリケーションは、スタジオの設定を行い、バーチャルシーンと全てのReality Engineとの接続を定義し、シンプルなインターフェースを使って、ビデオ入出力、キーヤー、カラーコレクション、トラッキングカメラ、バーチャルシーンなどのノードを接続してレンダリングパイプラインを合成することができます。セットアップを変更するつもりがなければ、ほとんどの場合、これは一度だけの作業です。セットアップが完了したら、単にスタジオを起動して、時間がなくてもオンエアに行きます。オンデマンドで様々な機能をトリガーして、シーン内のバーチャル要素をコントロールすることができます。このマシンは、1台または複数のリアリティエンジンとクックサーバーをコントロールするために使用されるので、高い設定は必要ありません。低設定のコンピュータやラップトップでも使用できます。このマシンにはReality Controlのインストールが必須です。

Control Server の認定システム構成を参照してください。


4.Reality Editor:デザイナーはReality Editorのライセンスを取得したマシンでReality Editorを使用します。Reality Editorを起動するためには、Reality Editorライセンスが付属しているUSBドングルをこのマシンに接続する必要があります。このマシンにはReality EditorReality Prerequisitesのインストールが必須です。Reality PrerequisiteはReality Editorのライセンスを取得するために必要な "CodeMeterRuntime64-650.msi"をインストールします。

Reality Editorの認定システム構成を参照してください。


5.Network Attached Storage:ネットワーク接続ストレージ。これは、Reality Suiteの他のすべてのワークステーションがアクセスし、プロジェクトの設定ファイルを読み書きできるR: Driveになります。

Reality Suiteで作業するためには、十分なHDDの空き容量を持つ共有ドライブをマッピングする必要があります(最低100GB以上をお勧めします)。

R Driveの設定を参照してください。


Reality Suiteソフトウェア



Reality環境に接続されたマシンを制御するために、サーバーの種類ごとに専用のソフトウェア・アプリケーション・インターフェースが設計されています。

Realityを使用するためには、主に4つの実行ファイルがインストールされている必要があります。

Reality Prerequisites:Reality Engineワークステーションにインストールされている必要があります。
Reality Engine:Reality Engineワークステーションにインストールします。
Reality Control:Reality Controlサーバーにインストールします。
Reality Editor:Reality Editorワークステーションにインストールします。クックサーバーはReality Editorと一緒にインストールします。

Reality Suite Softwareアプリケーションのインストール手順を参照してください。


Reality Suiteアプリケーションをインストールすると、以下の3つのアプリケーションでシステムを動かすことができます。

Reality Engine:すべてのプロジェクト/仮想セットを含むメインレンダリングエンジンです。

Reality Control:リアリティコントロール。プロジェクトの作成、スタジオの作成、スタジオの起動、Reality Engineのモニタリングとコントロール、データ駆動型グラフィックテンプレートのようなアクションイベントのトリガーに使用します。

Reality Editor:プロジェクトの作成と編集に使用します。プロジェクトの作成や編集、移行やプロジェクトで使用するブループリントの作成に使用します。


トラッキングキャリブレーションと微調整


現実の軸を理解する
トラッキングデバイスが異なると、システムへのアプローチも異なります。ここでは、Reality Suiteの軸を見ることができます。

ノードのすべてのTransformプロパティで、この軸の設定に応じて値が変化していることがわかるはずです。そして、これらの値はデフォルトであり、特にX軸とY軸の値は、あなたがセットで異なる角度と異なるパンの値を見ている場合は、適切に決定する必要があることを覚えておいてください。

Depth:現実のX軸
Width:現実のY軸
Height:現実のZ軸

画像2


正しいトラッキング方法の選択



バーチャルスタジオでも拡張現実スタジオでも、現実世界のカメラセンサーがどこにあるかを知る必要があります。位置だけでなく、以下のようなパン、ティル、ロールの値も知る必要があります。

画像3

・位置、パン、チルト、ロールの値に加えて、視野レンズの歪みを知る必要があります。これをカメラトラッキングと呼びます。

一般的に、カメラのトラッキングには大きく分けて2つの方法があります。

1.機械的なセンサートラッキング
2.画像追跡
しかし、追跡方法が何であれ、追跡装置はシリアルポートまたはネットワーク、またはその両方からデータを転送します。


トラッキングシステムのレンズキャリブレーション


トラッキングシステムの中には、レンズの視野データをプロトコルと一緒に提供しているものもあります。そのようなトラッキングシステムのベンダーはレンズデータを自分で校正していますので、Realityはこのレンズ校正プロセスには関与できません。しかし、トラッキングプロトコルが最終的なレンズデータを提供していない場合、Realityはトラッキングプロトコルから送られてくるズーム/フォーカスエンコーダの値を使用してレンズキャリブレーション値を提供することができます。

メカニカルエンコーダからのデータは整数値です。リアリティトラッキングノードは、これらの生のエンコーダの値を0と1の間の浮動小数点にマッピングします。
テスト中にトラッキングデバイスが利用できない場合でも、UserTrack ノードを使用して他のノードにテストのトラッキングデータを送信することができます。


レンズセンターシフト


レンズセンターシフトは、トラッキングソリューションのプロバイダーがレンズセンターシフトキャリブレーションを提供していない場合、または提供している場合でも、これらの値を上書きしたい場合に適用する必要があることを覚えておいてください。

カメラボディにレンズを装着した場合、レンズの中心をイメージセンサーの中心に完全に合わせることができません。その結果、ズームイン/ズームアウトの際に、カメラは画像を左右に数ピクセル、上下にずらしてしまいます。

この機械的な誤差を補正するために、後のステップでは、このずれ量を試行錯誤しながら求めていきます。

画像4


レンズセンターシフトの調整


このシフトキャリブレーションは、レンズとカメラボディの組み合わせに固有のものです。機械的条件に大きく依存するため、全く同じカメラモデルを使用していても、他のカメラボディを使用するたびに変化する可能性があります。
カメラのパン/チルトをロックした後:

1.レンズを物理的な物体を中心にして、最大レベルまでズームインします。
2.カメラ画像の上にクロスヘアー画像のオーバーレイを置いてください。
HDバージョン(1920*1080)はこちらから
https://docs.zerodensity.tv/reality210/files/47710461/47710464/1/1595514993477/Crosshair1920-1080.png

UHDバージョン(3840*2160)はこちらから
https://docs.zerodensity.tv/reality210/files/47710461/47710465/1/1595514993590/Crosshair3840-2160.png

ダウンロードできます。
3.ズームアウトした後、センターシフトに小さな値を入力します。
4.画像がシフトしなくなるまでシフト値を繰り返しながら、ズームイン、ズームアウトを繰り返します。


カメラ画像の上にオーバーレイ画像を追加するには、以下の手順に従います。
・カメラ映像をMixerノードの Channel1 端子に接続します。
・ノードグラフを右クリックして、「Create」→「Media I/O」→「MediaInput」と進み、MediaInputノードを作成します。
・UHD 画像を使用している場合は、MediaInput ノードの MaxSize を 3840 と 2160 に変更するか、デフォルトのままにしておきます。

画像5

MediaInput ノードの Output ピンと Mixer ノードの Overlay ピンを接続します。
・下図のように十字の画像が重なっているのがわかります。

画像6


正しいトラッキングパラメータの設定


正しいトラッキングパラメータを設定することで、現実の地面と仮想の地面の間でのスライドを防ぐことができます。これを実現するには、以下の手順に従ってください。

(SYSTEM WITH STYPE) Stypeトラッキングキャリブレーションの後、ノードグラフにLensノードを持たない方が良いかもしれません。ノードグラフに Lens ノードを追加した場合、Focal Distance 以外の Lens ノードのすべてのプロパティを無効にしてください。Lensノードは次のようになります。*** DOFを使用する予定でレンズノードが必要な場合は、このノードを追加してください****

画像7


(FOR SYSTEMS WITH STYPE)ノードグラフにLensノードがあり、Lensリストに使用しているレンズが含まれていない場合は、使用しているレンズに最も近い焦点距離Focal Distance)を持つLensを選択してください。

画像8


(FOR SYSTEMS WITH STYPE) nodegraph上のStypeノードに移動し、下図のようにNodal Offsetが0になっていることを確認してください。

画像9


・すべてのCustom ActorTrack Modifierのノードをチェックして、以下のようにRollTiltの値がゼロになっていることを確認してください。

画像10


CycloramaノードのTrackピンがStypeノードのTrackピンに直接接続されていることを確認してください。残りのノードのTrackピンは、以下のようにTrack Modifierに接続されているはずです。

画像11

レンズの位置に物理的な変化があることを意味するレンズを取り出して戻した場合は、上記で説明したレンズセンターシフトキャリブレーションを再度行う必要があります。


・トラッキングシステムのDevice Mapping(Device TransformCamera Transform)パラメータがゼロ(0)に設定されているかどうかを確認してください。

画像12


PTZヘッドを使用している場合は、「現実の軸を理解する」の章を読んで、リアリティの軸に関連してトラックノードのDevice Transformを変更する必要があるかもしれません。カメラのゼロピボットポイントに関連する測定値と変換値については、トラッキングソリューションプロバイダに相談し、以下のようにDevice Transformに入力してください。シームレスなキャリブレーションを行うためには、特にRealityのRYP値であるPTZ値の精度が非常に重要であることを覚えておいてください。

画像13


・Reality Editorで、フロアオフセットがゼロ(0)よりも大きいかどうかを確認します。

画像14


例えば、今回のプロジェクトでは、使用するセットの床がZ軸より30cm高くなっています。この場合、下図のようにセットアップ中のプロジェクションキューブProjection Cube)の底面Bottom)が見えなくなります。

画像15


投影キューブの底面は0にすると見えなくなります。

画像16


プロジェクションキューブの底面は、30に設定するとグラフィックと競合し、31に設定すると完全に見えるようになります。

これは何を意味しているかというと、グラフィックがz軸より30cmほど高くなっているということです。この設定をうまく機能させる正しい方法は、Custom ActorLocal Transformを31cm変更することで、グラフィックスを31cm下げることです。

画像17


カスタムアクターのZ-Transformパラメータを設定します。

これらのパラメータを正しく設定すると、プロジェクトのトラッキングが正常に動作するはずです。Track Modifierに接続されている全てのCustom Actorは、同じZ Transform値を持つことを忘れないでください。

Custom ActorTrack Modifierが変更された場合は、これらのパラメータをチェックすることを忘れないでください。


パン/チルト/ロール座標のマッピング


生のトラッキングデータがPan、Tilt、Rollの異なるデータ座標を提供している場合があるかもしれません。例えば、トラッキングノードではTiltとTiltの代わりにPanのデータを受信することがあります。これらの座標を入れ替えるために、Reality Controlアプリケーションのすべてのトラッキングノード(FreeD、MoSys、Stype、UserTrackなど)には、Transform MappingセクションのPan/Tilt/Rollという新しいプロパティオプションがあり、様々なマッピング方法を使用することができます。

画像18

Reality Engineに送信されたトラッキングデータに応じてマッピングを行うための6つの可能な順列オプションが利用できます。

下の例では、PTRTPRのマッピングの動作を見ることができます。パンとチルト座標が入れ替わっています。

User Trackノードは、動作を表示するために使用されます。

画像19


パン/チルト/ロールの座標の用語:

画像20



Reality Editorでプロジェクトを開始する



リアリティエディターの立ち上げ

デスクトップ上のアイコンをダブルクリックしてReality Editorを起動します。インストールと設定の後、Reality Editorを初めて起動すると、シェーダーのコンパイルに時間がかかることを覚えておいてください。

画像21


Unreal Project Browser を起動すると、プロジェクト ファイル用の 2 つのフォルダを探します。

C:\Users\**username**\Documents\Unreal Projects:このフォルダは、Reality Suiteがインストールされると自動的に作成されます。
R:\Reality\Projects : このフォルダは、インストール時にユーザーが作成します。特にマルチエンジンシステムでは、このフォルダにプロジェクトファイルを保存しておくことが重要です。


もし、起動したいプロジェクトがこのフォルダにない場合は、「Browse」をクリックしてコンピュータ内のプロジェクトを探すか、「New Project」タブから新規プロジェクトを起動してください。

画像22


プロジェクトを選択すると、デフォルトのマップでリアリティエディタが起動します。

画像23



プロジェクト設定の表示と編集


ここで、[Edit] + [Project Settings] に移動します。

Default GameModeが ZDGameMode であることを確認します。
Maps & Modesを選択し、選択したDefault Mapsを確認して編集します。

画像24


[Rendering]に進み、[Enable alpha channel support in post processing]を[無効]に設定します。

画像25


この変更には、リアリティエディタの再起動が必要です。

画像26


プロジェクトの起動とRealityの設定


Project Settingsの表示と編集が終わったら、Playボタンをクリックして、選択したビューポートでプロジェクトを再生することができるようになりました。

画像27


本プロジェクトでは、以下のようなマルチビューワーを使用して開始します。

画像28


Reality Controlを起動し、[F7]を押してReality Setupを起動します。

画像29


ポータルウィンドウ機能を使用する場合は、プロジェクトのプロジェクト設定からグローバルクリッピングプレーンを有効にしてください。Edit + Project Settings + Engine + Renderingで、以下のようにSupport global plane for Planar Reflectionsが有効になっていることを確認してください。

画像30



Realityノードグラフ


スタジオの開始 ENGINE1ボタンをクリックして、ENGINE1を選択しましょう。基本的にはここでReality Processing Engineの設定を開始します。デフォルトでは、MixerEngine Controlノードしかありません。

画像31


Mixerノード上でマウスを左クリックすると、ノードのzdnode Propertiesが表示されます。Functionsタブをクリックすると、ノードから呼び出し可能な関数の一覧が表示されます。

画像32

画像33

ノードグラフの拡大・縮小には、マウスホイールを使用します。パンするには、マウスの真ん中のボタンを使ってください。


Realityの設定にノードを追加する


ノードグラフにノードを追加するには、何もない領域を右クリックするだけです。作成メニューの下には、ノードを処理するための多くのカテゴリがあります。

画像34


ノードを追加する方法はもう一つあります。キーボードの[TAB]キーを押すだけで、検索ボックスのダイアログが表示されるので、ノード名を書いてノードグラフに追加することができます。

画像35

ノードを追加する方法はとても簡単で、ノードの正確な文字を覚える必要はありません。
例えば、Audio Mixerノードを追加したい場合は、"xer "と入力するだけです。


クイックスタートのために、Cameraノードを作成してみましょう。カメラノードは、ノードグラフ上で右クリックし、Create> UE Render > Camerを選択すると生成されます。Cameraノードを左クリックしてドラッグすると、ノードグラフ内の好きな場所にノードを配置することができます。

画像36


ノードの接続


Camera_0ノードの出力ピンを左クリックすると、マウスポインタのすぐ下に接続線が作成されます。マウスの左ボタンを離して、MixerノードのChannel1入力ピンに接続します。

画像37


Camera_0Mixerに接続すると、Multiviewerのプログラム出力にカメラのレンダリング出力が表示されます。デフォルトではMixerノードは Channel1 入力を表示しているため、このカメラレンダリングは自動的に表示されます。Mixerノードを選択して、左側のプロパティを見てください。

画像38


なぜMultiviewerで結果が出ているかというと、MixerMultiviewer出力端子がEngine ControlDisplay端子に接続されているからです。

画像39



ノードのプロパティを変更する


マウスを使ってCamera_0ノードを左クリックすると、カメラノードが選択され(黄色の枠で囲まれています)、ウィンドウの左側にそのプロパティが表示されます。デフォルトでは、カメラの変換は0, 0, 0になっています。

数値プロパティを変更するには3つの方法があります。

Left click:マウスで数値をドラッグします。
Double click:桁の編集モードに入るには、今、あなたのキーボードの左/右カーソルボタンは、桁の間を移動するには、上下カーソルボタンを上げる/選択した桁の値を下げることができます。
Middle button click:あなたは、モードを編集する番号になります。ちょうどあなたが持っていたい正確な値を入力します。

画像40

画像41


Local Transformプロパティを使用して、カメラをこの位置に移動します。プロジェクトのデザインによっては、カメラの位置が異なる場合があります。マルチビューワの画面にも同じような画像が表示されているはずです。「Program」 には、CameraノードであるChannel 1入力が表示されています。​他のすべてのチャンネルにはまだビデオ入力が接続されていません。

画像42



​ノードの複製


​ノードを複製する場合は、ノードを右クリックしてDuplicateを選択します。

画像43

右クリックメニューを使用して、ノードを削除、書き出し、コピーすることもできます。​これらのコピーおよびエクスポート機能は、類似したノード設定を持つ複数のエンジンを設定する場合に便利です。

画像44


Cameraノードを複製したら、その出力を [Mixer] ノードの [Channel 2] に接続します。​マルチビューアでは、 「プレビュー」 出力でも同じビューが表示されます。​ここでCamera_1ノードを選択し、変換を次のように変更します。

画像45


​Camera_1ノードを200 cm上に移動しました。​マルチビューアに次のような出力が表示されます。

画像46



​ノードへのコマンドの送信


​例として、Mixerノードを使用して「トランジションを実行」コマンドを送信します。​ミキサーを選択し、 「functions」 タブに移動してDoTransitionボタンをクリックします。​これにより、 「Channel 1」 と 「Channel 2」 の間にディゾルブが作成されます。​このコマンドを送信すると、 「Program」 出力に継続時間が1.0秒のディゾルブが表示されます。

画像47

​ミキサーでは、ディゾルブだけでなくカットとワイプのトランジションもサポートされています。

画像48


​トランジションが完了すると、 「Program」 出力と 「Preview」 出力が入れ替わります。​マルチビューアでは、 「Channel 1」 は緑色で表示され、 「Channel 2」 は赤色のアイコンで表示されます。

画像49

PDFのダウンロード
http://docs.zerodensity.tv/download/attachments/4817363/Reality25_NodeGraph.pdf


リアルタイムビデオI/Oの設定


Reality Processing Engineはノードベースなので、SDIデバイスやビデオ入出力もノードとして表現されます。個別のビデオI/O設定ツールはありません。また、各Virtual Setの設定ファイルには、エンジンごとに独自のビデオI/O設定があります。


サポートされているSDIビデオボード


Reality Engineは現在サポートしています。
AJA Corvid 88、AJA Corvid 44 12G BNC、AJA Corvid 44ファミリーSDI I/Oボード。
AJAボードの詳細情報をご覧ください。

Corvidボードには多くのフレーバーがあるが、対応しているのはCorvid 44とCorvid 88ファミリーのみ。これらのモデルから選ぶ場合でも、背の高いもの、短いもの、PCIカード、BNCコネクタのスタイル、ファンのオプションなどがあります。これらのボードのどれを選んでも、エンジンのシャーシにフィットするものを選ぶことができます。しかし、ファンレスのCorvidボードを選択すると、非常に効率的な冷却環境が必要になります。そのため、むしろCorvidボードにファンを搭載した方が良いでしょう。
AJA Kona 5ボードは実験的なものとしてのみサポートされています。


AJA デバイスノード


画像50

このノードは、ノードグラフの物理的な PCI-e AJA ビデオボードを表します。最大4枚のビデオボードを定義することができます。デバイスノードは、ビデオボードのリファレンスソースとビデオモードを入力SDI信号と共に検出します。


AJA デバイス設定


画像51

AJA ビデオデバイスをセットアップするためには、DeviceID, Reference, RingBufferSize プロパティをセットアップする必要があります。

DeviceID:使用したいビデオボード名。1つのシステムでは、最大4つのAJA Corvidボードをリストアップすることができます。
Reference:あなたのリファレンス同期ソースが何から来ているのかを述べなければなりません。外部 "シンクソースを使うことをお勧めします。しかし、いくつかのセットアップでは、あなたの AJA 出力を SDI 入力のタイミングにロックすることができます。
RingBufferSize:このプロパティは、このデバイスを使用してビデオ出力を行う際に、何フレームをバッファリングすべきかを定義します。

RingBufferSizeを大きくするとレイテンシも高くなります。しかし、レイテンシに余裕があれば、短期間のパフォーマンス低下がビデオ出力のフレームを落とすことはないでしょう。デフォルトでは、リングバッファサイズは2フレームですが、1フレームまで下げることができます。しかし、1フレームということは、同期レンダリングを行っていることを意味します。つまり、一つ一つのフレームを1フレームの持続時間でレンダリングして出力する必要があります。


​AJAデバイスチャネルステータス


画像52

AJADevice ノードはすべてのチャンネルをモニタします。各チャンネルはボード上の1つのBNCを表します。Corvid ボードの各チャンネルは、入力または出力として設定できます。


​AJAデバイス情報


画像53

AJADevice ノードは、現在インストールされている DeviceVersionDriverVersionSerialNumber、およびカードにインストールされている Firmware を検出します。この情報は技術サポートの目的に役立つかもしれません。

各 AJA カードノードは一度に一つのデバイスのみを設定することができます。同じデバイスを複数回選択することができます。

画像54


入力ビデオのビット深度


画像55

AJAInputノードは8ビットまたは10ビットのビデオ入力モードをサポートしています。精度は Pixelformat プロパティで選ぶことができます。10ビットビデオモードの方が精度は高くなりますが、パフォーマンスは少し高くなります。


入力ビデオ遅延


遅延はインターレースビデオ入力時にはフィールド単位で、プログレッシブビデオ入力時にはフレーム単位で動作します。ディレイの設定は、トラックデバイスとトラッキングカメラからのビデオ入力を同期させるために必要です。


入力ビデオ信号範囲



画像56

Legal Range」と「Full Range」モードを選択することができます。以下は、8ビットのルーマ値の範囲です。

Legal Range [16 – 235]
Full Range [0 – 255]

​カメラによっては、フルレンジのビデオ信号を送信する場合があります。​このような場合、「Full Range」ビデオモードを使用すると、白黒レベルで詳細を表示できます。



カラースペース



画像57

YCbCr値をRGBに変換する際の入力色空間です。サポートされている色空間は以下の通りです。

・Rec 601:SD NTSC/PAL
・Rec 709:HDTV
・Rec 2020:UHDTV


クロマフィルタリング 4:2:2 信号入力


4:2:2 YCbCr ビデオ信号のクロマは、輝度値の半分の解像度しかありません。どんなコンピュータでも、RGB値に変換する前にクロマ信号をフィルタリングしなければなりません。このクロマフィルタリングのステップは、良い結果を得るためのキーヤーには欠かせません。

リアリティビデオ入力ノードは、輝度重み付きクロマフィルタリングと呼ばれる方法を使用しており、フィルタリングされたクロマ解像度を向上させるのに役立ちます。

画像58

デフォルトでは、クロマフィルタは左右のサンプルをウェイト0.5でサンプリングします。バランスを 0.0 に設定すると完全に左の画素が使われます。1.0に設定すると、完全に右の画素を使用します。この設定は「デバイス」設定の詳細メニューにあります。これらのパラメータを持ってくるためには、三角形のアイコンで表示されている詳細ボタンをクリックする必要があります。


AJA入力フォールバック


画像59

AJAInput には "Fallback" 入力があり、ここに別の
AJAInputノードや画像をフォールバックとして接続することができます。つまり、入力の信号が失われた場合には、ノードはそのフォールバック入力をバイパスします。


AJAタイムコード


画像60

Timecode ピンは常にEngine ControlTrackingノードに接続されていなければならず、フレームを一致させるためにそれ自身のタイムコードデータをトラッキングとエンジンの両方に送信します。AJAから他のデバイスに送られるデータの詳細は、このノードのプロパティの下で見ることができます。

画像61



AJA出力ノード


画像62

このノードはノードグラフから SDI ビデオボードにビデオを出力します。AJA Input ノードと同様に、AJA Output ノードも AJA Video Card の信号がどのピンから来ているかを知る必要があり、これは OutputMode で編集することができます。AJAInput ノードと同じように、出力の VideoFormat, Pixelformat, VideoRange, ColorSpace を設定できます。AJAOutput ノードは RGB から YCbCr 4:2:2 のフィルタリングもサポートしています。AJAInput ノードと同じ ChromaFilterBalance が出力ノードにも適用されます。

画像63


AJA 出力ノードのプロパティが、出力StandardsFrameratePixel Formatの選択に基づいて公開されるようになりました。

これにより、そのデバイスに対して適切な設定が選択され、技術的に可能なハードウェアの組み合わせのみが利用可能となり、​不具合や不適合を避けることができます。

画像64

画像65

画像66



Corvid 44 12G BNCでのインターレース出力フォーマットの設定


AJA Corvid 44とCorvid 88とは異なり、Corvid 44 12G BNCカードは、ビデオ出力フォーマットをインターレース信号に設定するための追加設定が必要です。

この設定は以下の指示に従ってください。

AJA Outノードでインターレース形式を設定しなければなりません。

画像67


AJA Outノードを選択して、上の画像のようにアドバンスドプロパティの矢印を展開します。

ここで Reverse Fields プロパティを True に設定します。



プロジェクションキューブ


投影の目的

Projection Cubeは、Keyerからのカメラ信号やスタジオカメラからの直接のカメラ信号が投影されるセットデザインの3D(ボリューム)の領域を定義します。

キー付きパイプラインの場合、Reality Keyerノードを使用して放送カメラからの画像からキーを作成した後、画像を歪ませずに処理したRGBA画像をProjection CubeノードのVideo入力ピンに接続します。また、トラッキングデバイスのOutputProjection CubeノードのTrack入力端子に接続します。 そして、Projection CubeOutputピンをProjection CubeのActorピンに接続します。

画像68


そして、拡張パイプラインを使用している場合は、カメラ出力の遅延(必要に応じて)と歪曲されていない画像をProjection CubeVideoピンに接続する必要があります。また、トラッキングデバイスのOutputProjection CubeノードのTrack入力端子に接続します。 そして、Projection CubeOutputピンをProjection CubeのActorピンに接続します。

画像69


プロジェクションキューブ


Realityとは、入ってきたキー映像を3D空間に合成することです。そのためには、Projection Cubeと呼ばれる「Boundary Cube(境界キューブ)」を定義する必要があります。

画像70

Reality Keyerからの画像は、TrackノードのTransformCameraノードのFOVを使用して、「Projection Cube」に投影されます。

プロジェクションキューブの境界を正確に定義することは非常に重要です。上図のようにプロジェクションキューブが表示されている場合は、スタジオ内の撮影可能な場所にカメラを移動させ、常にプロジェクションキューブ内にいることを確認してください。
この方法を用いることで、2Dのレイヤリングが不要になり、「スクリーン空間の反射」などのレンダリング技術が可能になります。



プロジェクションキューブの位置を調整する


画像71

3D空間で何をしているのかを簡単に見るためには、Projectionノードをデバッグモードにしておくと良いでしょう。Projectionノードがデバッグ状態にあるときは、全ての面にチェッカーボードのパターンが描かれます。このモードでは、プロジェクションキューブの深さや高さを簡単に確認することができます。

ここで、 Projection CubeTransformプロパティを使って、Projection Cubeの相対位置を変更します。

画像72

次に、FarLeftRightTop プロパティを使用して Projection Cubeの寸法を設定します。仮想セットの床が 0 に設定されていない場合は、Transform プロパティの Z を使用します。 Projection Cubeの接地面の高さを設定するには、Z の値を大きくする必要があります。

Bottomプロパティは、物理的な "Cyclorama"の地面がZ座標でトラッキングカメラの地面の上にある場合にのみ使用されます。


プロジェクションキューブを外から見る


プロジェクションキューブを外部から見るには 下図のように2つ目のCamera ノードをシステムに追加し、MultiviewerノードのChannel2に接続し、2つ目のCameraノードの右上のコントローラーアイコンをクリックしてバーチャルゲームパッドを有効にしてください。

画像73


Virtual Gamepadを有効にすると、下図のようにノードの右下にあるVirtual Gamepadアイコンを右クリックすると、ゲームのようにW,A,S,Dのボタンを使って特定のノードのLocal Transformを変更することができます。

画像74


バーチャルゲームパッド機能を使用して、CameraノードのLocal Transformを変更します。

画像75


そして、最初のCameraノードの右上のPCアイコンをクリックして、最初のカメラをデバッグモードにします。

画像76


下記のようにカメラがセットで表示されることを確認してください。

画像77


Channel2ではプロジェクションキューブと最初のカメラを外から見始めます。

画像78


これにより、プロジェクションボリュームの理解が広がり、より良いものになります。


サイクロラマの設定



シクロラマの紹介

バーチャルスタジオプログラムを制作する場合、グリーンスクリーンやブルースクリーンのサイクロラマが必要になります。通常、これらのサイクロラマは1、2または3の壁を使用して構築されます。壁は、エッジとコーナーに丸みを帯びたコーブを持つ必要があります。シクロラマの壁は、カスタムビルドすることができますまたは特定のメーカーから提供されることがあります。

シクロラマがどのように構築されていないにもかかわらず、シクロラマで最も重要なことは、丸みを帯びたコーブのエッジとコーナーです。その後、シクロラマの塗装と照明が付属しています。

現実は、仮想世界で実際の物理的なサイクロラマを3Dメッシュとしてシミュレーションして作成します。それに応じてマスクが作成されます。


シクロラマの寸法を測定する


ここでは、フィジカルサイクロラマの一例を紹介します。

画像79

シクロラマの寸法をすでにお持ちの場合は、それがより実用的でしょう。しかし、以下の手順で寸法を測定することができます。


サイクロラマノードを「Debug」モードにする


画像80

“Reality Processing Engine”のほとんどのノードは特別な "デバッグ "モードを持っています。デバッグモードを切り替えるには、ノード上で右クリックして有効にします。デバッグモードに設定されたノードはオレンジ色で表示されます。オンエアする前に、ノードの "デバッグ "状態をfalseにしておく必要があります。

画像81


ノードがデバッグモードに設定されている場合、合成クリーンプレートをレンダリングする代わりに、サイクロラマを「ワイヤーフレーム」メッシュとして描画します。このモードは、サイクロラマのセットアップ中に非常に便利です。

画像82


Delay ノードに移動し、Delay ノードの Output ピンを Mixer ノードの Channel1 に接続します。Cyclorama ノードの Render ピンの歪んだイメージを MixerOverlay ピンに接続します。

画像83


ゼロ点とカメラの変換に応じて、以下のようなサイクロラマが観測されます(現在のカメラ入力でセットのゼロ点が見える場合)。

画像84

このサイクロラマはデフォルト値で描かれています。自分のサイクロラマに実際の値を追加してみましょう。


サイクロラマの高さ Z寸法


サイクロラマの高さは、下の写真のように、サイクロラマの上端から下端までの高さを測る必要があります。

画像85

このサイクロラマの高さは300cmです。そして、この値はサイクロラマノードのSizeプロパティのZ値に入力されます。

画像86


サイクロラマの幅:Y寸法


サイクロラマの幅は、下の写真のように、サイクロラマの左端から右端までを測る必要があります。

画像87


このサイクロラマの幅は477cmです。そして、この値はCycloramaノードのSizeプロパティのY値に入力されます。

画像88


サイクロラマの奥深さ:両翼


実際のアプリケーションでは、お客様の中には、異なる翼の長さのサイクロラマを作成したいと考えている方もいるでしょう。このように、サイクロラマの奥行きは左右で異なる場合がありますので、これらの値を別々に入力することができます。翼の長さは、曲線の終点からサイクロラマの終点までの長さであることを覚えておいてください。

画像89


値を入力する前に、このサイクロラマには左翼がありますが、右翼はありません。そこで、以下のようにHasRightWingをFALSEに変更します。

画像90


この例では、両方の翼の長さが同じで322cmです。これらの値は、CycloramaノードのWingsの値に入力されます。

画像91


垂直半径


サイクロラマでは入り江もあり、この入り江の半径はプロパティに入力する必要があります。

画像92


サイクロラマの原点の変換値の測定


オリジンを設定します「0」ポイント

物理的なセットの中で原点を設定し、それをマークしなければなりません。これは、原点からの相対的なトラッキングカメラの設定に必要です。トラッキングされた三脚の雲台を考えてみてください。三脚を動かすたびに、原点からの相対的なX,Y,Z座標の測定が必要になります。

画像93


プリセットの原点の位置

画像94


デフォルトでは、OriginPresetプロパティは「CenterBack」に設定されており、これは地面の真ん中の壁の中心を意味します。しかし、異なるプリセット値を選択することもできますし、"CenterBack "に相対する "カスタム "座標を入力することもできます。
もし「Origin」の位置を確認したい場合は、DrawAxisMarkerを「True」に設定します。

画像95


測定後のトランスフォーム値の設定

この例では、セットのゼロ点は、トラッキングキャリブレーションの際に配置されたサイクロラマの右前方にあります。そこで、以下のように原点からこの点までの距離を各次元で測定します。

画像96


そして、これらの値を適宜入力してください。

画像97

X Property:X 次元における原点からの距離をセンチメートル単位で表します。
Y Property:Y 次元における原点からの距離をセンチメートル単位で表したもの。
Z Property:Z 次元における原点からの距離をセンチメートル単位で表します。


サイクロラマへの「Clean Plates」のマッピング


物理的なサイクロラマとトラッキングを正確に表現できたことを確認したら、サイクロラマのクリーンプレートをキャプチャし、ジオメトリにマッピングします。このようにして、Reality Keyerノードは必要な "クリーンプレート "を取得することができます。

Cycloramaノードが "デバッグ "モードになっていないことを確認してください。このようにして、ノードはサイクロラマメッシュ上にマッピングされたイメージをレンダリングします。

クリーンプレートをキャプチャするには、まずClearProjectionsボタンで以前のキャプチャをクリアしてから、トラッキングカメラを使って可能な限りワイドに移動し、AddProjectionボタンをクリックします。一度の投影ではすべてのサイクロラマをキャプチャすることはできないかもしれませんので、サイクロラマのすべてをカバーするまで上記のプロセスを繰り返す必要があるかもしれません。

サイクロラマ全体をできるだけ少ないキャプチャでキャプチャするようにして、複数のキャプチャはできるだけ避けてください。これは品質向上には役立ちませんが、Reality Processing Engineの処理負荷が増えるだけです。


「Garbage Matte」の柔らかさを調整する


画像98

もしカメラがサイクロラマから外れた部分を見た場合、その部分をマスクしなければなりません。サイクロラマのジオメトリを定義しているので、「リアリティ」はこれを自動的に行うことができます。このマットの柔らかさはSmoothnessプロパティで調整できます。

このSmoothnessプロパティは、SegmentCountプロパティにも影響されます。


リアリティキーヤと微調整


キーヤは、グリーンスクリーンのバーチャルスタジオ制作に最も必要不可欠な部分です。Reality Keyerの下のReality Keyerセクションでは、様々なキーイングプロパティの操作方法を説明しています。

Reality KeyerはReality Engineの内部キーヤー機能で、コンタクトシャドウ、透明オブジェクト、髪の毛のようなサブピクセルの詳細など、実際の環境の詳細を保存するために、ライブカメラのビデオ入力のキーイングに素晴らしい結果を提供する、世界で最も先進的で実生活に忠実なキーヤーの一つです。

Reality Keyerは、4:4:4 RGBカメラソースにも対応しています。このキーヤーは、ガーベージマスクの他に、「フォースフィル」と「スピルバイパス」バッファ用の3Dマスクもサポートしています。これらのマスクを使用することで、バーチャル環境とリアル環境を組み合わせたハイブリッドなバーチャルスタジオ運用が可能になります。


リアリティキーヤノード


画像99

Reality Keyerノードは、画像ベースのキーイング技術に使用されます。ピンは以下の通りです。

Input:これは SDI 入力であるAJA Inputからの直接出力または遅延出力のいずれかになります。

CleanPlate:これはColorノードのカラーか、Cycloramaノードの歪んだRender出力のどちらかになります。

Mask:3D ジオメトリマスクの組み合わせ、または Cyclorama ノードの歪んだMask出力のいずれかになります。

OutputReality Keyerノードのキー付きイメージのOutputです。

HardMask:キー画像を微調整するためのCore Matteビューです。

HardMaskHorzBlur:照明、サイクロラマの背景色、カメラが最適化されている場合、Reality Keyerはわずかな調整しか必要としません。異なるモードで作業している間は、以下のようにReality KeyerノードのOutputプロパティを使うことができます。

画像100

クリーンプレートをセットアップした後、Reality Keyerを微調整するためのワークフローをご紹介します。キーイングの主なステップは以下の通りです。

1.ソフトマットとコアマットの微調整
2.こぼれた部分の鍵の作成
3.スクリーンの減算と流出抑制
4.カラーコレクション(オプション)


クリーンプレートのためのサイクロラマ投影のキャプチャ


イメージベースのキーヤーであるReality Keyerの最高の結果を期待するには、サイクロラマをうまく投影することが重要です。下の写真のように、できるだけ広いスクリーンショットを撮ることが重要です。

画像101

上記のようにサイクロラマの投影を追加するには、サイクロラマノードのファンクションタブに移動して、投影の追加をクリックしてください。

画像102


このプロジェクションを追加すると、このクリーンプレートがCycloramaノードのCaptureセクションに追加されます。

画像103


サイクロラマ全体が1つのショットに収まらない場合は、中心から投影を開始し、サイクロラマの側面の投影を取得している間に投影の追加 (Add Projection) をクリックすると、これらの投影がショットにステッチとして追加されます。


リアリティキーヤの情報


出力タイプの違いを確認して、キーヤの出力を微調整してみましょう。

Soft Matte(ソフトマット)

画像104

まずは、 Combined Soft Matteの結果から見ていきましょう。最終的には、前景の被写体のエッジ部分のディテールが細かくなるようなソフトマットにしたい。ソフトマットの中央に透明感や穴があっても構いません。これらの穴を埋めるのは Core Matteの仕事です。

OutputTypeとしてCombined Soft Matteを選択します。
・理想的なグリーンスクリーンのためにはこれらの重みは "0.5" であるべきですが、状況によってはこれらの値を微調整する必要があるかもしれません。
SoftMatteRedWeight を調整すると、これらのピクセルがピンク色になることが予想されます。
・影のような柔らかさの詳細を扱うために、 SoftMatteGamma1SoftMatteGamma2を逆方向に組み合わせています。これらの値を変更すると影の可視性と透明度に影響を与えます
・ソフトマットの設定ですべての穴を補正しようとしないでください。ソフトマットでエッジをきれいに見せるようにしてください。


Core Matte(コアマット)

画像105

Combined Soft Matteを上手に使った後は、ハードマットの微調整をしてみましょう。 Core Matte表示モードを使ってハードマットを見ることができます。このマットの仕事は、Combined Soft Matteの穴を埋めることです。このマットは硬くなり、厳しいマットになるので、ハードマットコントロールを使って、「クリップ」、「浸食」、「ソフト」にする必要があります。ハードマットコントロールを調整しながら、穴や透明部分が見えないようにすることを目指します。前景の被写体のためにラフなマットを作成し、グリーンスクリーンのサイクロラマに数ピクセル以上のサイズの部分が含まれないようにする必要があります。

OutputType を Core Matte として選択します。

・理想的にはコアマットをまったく使わないほうがいいでしょう。緑の光を反射するピクセルは、より柔らかく、またはより透明になります。

・間接光が入ってくるとコアマットでは透明になってしまうので、使用しているサイクロラマ用の生地が反射材ではないかどうか確認してください。

・タレントの中央の穴はコアマットで処理します。シーン内のタレントに黒点がないことをCore Matteで確認してください。

・ハードマットの「黒」と「白」をクリッピングしてチューニングします。CoreMatteBlackPointの値を大きくすることで、緑の画面内の間違ったピクセルを除去してみることができます。また、CoreMatteWhitePointの値を下げることで、前景の被写体の穴や透明度を埋めることができます。

髪の毛の詳細を調整する必要がある場合は、OutputTypeShrinked Matteに切り替え、Softnessを変更して、髪の毛の詳細を表示するための最適な値を見つけてください。


Spill(スピル)

画像106

マットを生成した後、キーヤは被写体の緑色のエッジと、緑色のスクリーンの壁や床に反射した間接的な緑色の光を抑制する必要があります。シーンを見ることで、こぼれ球を見て、こぼれ球のパラメータをどの程度操作するかを決めることができます。

OutputType を Spill Matte に選択します。

ScreenSubtractEdge が 1 の場合、エッジからすべての緑を引くことを意味します。同様に、ScreenSubtractCore は、コアからグリーンを差し引くことを意味します。これは、緑の反射やエッジを抑制する別の方法です。

・Core Matteをリモディファイするのではなく、UnPreMultGammaの値を操作することができます。この値はエッジの柔らかさにも影響します。

EdgeSpillReplaceColorを使いすぎないように、シーンの色に合わせて少し修正してください。


Final Matte(ファイナルマット)

画像107

Reality Keyerのパイプラインでは、「Combined Soft Matte」と「Shrinked Core Matte」を生成し、最終的なマットに合成します。Final Matte表示モードを使って見ることができます。

・必要に応じて FinalMatteBlackPointFinalMatteWhitePoint をごくわずかに調整して穴を埋めてください。これ以上の値に調整する必要がある場合は、ライトの配置を変えたり、カメラセンサーとそのプロパティを確認したり、物理的なサイクロラマの色のプロパティを確認したりすることを検討してください。

・マットの最終的な柔らかさをコントロールするには FinalMatteGamma を使用してください。


色補正ノードの追加

セットによってタレントの色特性が異なるため、セット内のタレントの色特性を補正するために、異なるセットに切り替えるたびに色補正を行う必要があるかもしれません。Reality KeyerノードのColor Correctionセクションを使用するよりも、以下のようにReality Keyerノードの後にColor Correctionノードを追加した方が良いでしょう。

画像108


そして、別のセットに切り替えるときには、これらのプロパティだけを変更してください。

画像109


その他のヒント

・放送用カメラを使用している場合は、CLASS settingを確認してください。詳細はこちらをご覧ください。
・タレントの周りに黒い線が見える場合はカメラのセンサーが悪い可能性があります。
・タレントの周りに赤い線が表示された場合はカメラとレンズに問題がある可能性がありますので、DilateRGBAノードのプロパティを使用して解決することができます。
サイクロラマの汚れによる彩度は、色差キーヤであるため、キーイングの品質に確実に影響します。常にきれいな状態であることを確認してください。


キーヤFOVソフトネス


​Keyer FOV (視野) Softness Nodeは、カメラレンズのFOVに相対的に応じて、キー設定されたソースのエッジの柔らかさレベルを操作します。これにより、FOV範囲で完全なピクセルの柔らかさが作成され、すべての視野ステップで完全なキー設定が得られます。

​[視野] (FOV) の値を小さくすると、イメージがより近くに表示されます。つまり、キー設定されたソースが大きくなり、エッジのピクセルがよりソフトになり、視野の範囲が補正されます。​同様に、 [視野] (FOV) の値を大きくするとイメージの視野が広くなります。つまり、キー設定されたソースが自動的に小さくなり、エッジの柔らかさが低くなり、正確な柔らかさの値を使用してエッジが切り取られるのを防ぎます。

KeyerFOVSoftnessノードを使用して、ノードグラフでピンを接続する方法を理解しましょう。


1. Add the new KeyerFOVSoftnessnode to the graph. (Considering that all other required nodes are already saturated on node graph with its pins connected).

KeyerFOVSoftnessノードは、「キーイング」カテゴリにあります。
ノードにはデフォルトの入力ピンと出力ピンが追加されます。ここで、ノードグラフにすでに表示されているKeyerFOVSoftnessReality KeyerTrackingの3つのノード(この例では、トラッキングノードの名前はCamera Trackです。)にピンを追加する必要があります。

画像110


​2.ノードにはデフォルトの入力ピンと出力ピンが追加されます。ここで、ノードグラフにすでに表示されているKeyerFOVSoftness、Reality Keyer、Trackingの3つのノード(この例では、トラッキングノードの名前はCamera Trackです。)にピンを追加する必要があります。

画像111

​これで、入力ピンと出力ピン(それぞれTrackFOVとSoftness)がKeyerFOVSoftnessノードに生成されます。


3. トラッキングノード(この例では、トラッキングノードの名前はCamera Trackです。)を選択し、FOVグリーン出力ピンを有効にします。

画像112

これで、出力ピンの視野がカメラトラックノードに生成されます。


4. Reality Keyerノードを選択し、Softness Red Inputピンを有効にします。

画像113

これでReality Keyerノードに入力ピンが生成されました。


5. この3つのノード間のピンを接続します。

Camera Track FOV出力ピンをKeyerFOVSoftnessノードのTrackFOV入力ピンに接続します。

そして、KeyerFOVSoftness Softnessの出力ピンをReality KeyerSoftness入力ピンに接続します。

画像114


このノードグラフパイプラインでは、KeyerFOVSoftnessコネクションが確立されています。

これでTrack FOVプロパティがSoftnessプロパティとリンクされるようになり、レンズのFOV値が変化するたびに、KeyerのSoftness値が相対的に変化していることに気づくでしょう。

TrackFOV値を小さくするとソフトネス値が大きくなり、TrackFOV値を大きくするとソフトネス値が小さくなります。


プロジェクトの料理


クッキングとは、プロジェクトをより多くのメモリとパフォーマンスを効率的に使用するために変換するプロセスです。

Reality Editor上でプロジェクトファイルを編集して確定した後、プロジェクトをクッキングすることが重要です。バーチャルセットを準備することは、実際にアンリアルプロジェクトのスタンドアロン版を作成することであり、エディタなしで実行することができます。これにより、コンピュータがReality Editorで実行する必要がなくなるため、Reality Engineのパフォーマンスが向上します。

下にあるリアリティコントロールを使用します。
C:\Program Files\Zero Density\Reality Control Applications\2.10
にあるZDRealityControl.exeを以下のようにしてください。

この記事の画像のバージョン番号は参考画像なので、インストールしているバージョンとは異なる場合があります。
やり方はどのバージョンでも同じです。

画像115


この実行ファイルをダブルクリックしてアプリケーションを実行します。ダブルクリックすると、以下のようなスプラッシュ画面が表示されます。

画像116


そうすると、リアリティコントロールアプリケーションが別のデスクトップアプリケーションとして起動します。

画像117


このアプリはデフォルトで4つのタブがあります。

Launcher:このモジュールはネットワーク内に接続された全てのリアリティエンジンと直接通信します。このモジュールは、プロジェクトをOnAirに送信するために、各リアリティエンジンに同時にコマンドを送信します。スタジオを起動することは、ライブ放送制作のためのバーチャルセットプロジェクトを実行するための最終ステップです。

LauncherモジュールはReality ControlアプリケーションのStudioモジュールで設定した全てのプロジェクトを起動可能な状態で表示します。

それぞれのリアリティエンジンには、同じプロジェクトを設定したり、異なるプロジェクトを設定したりすることができます。プロジェクトの起動時に、プロジェクトは定義されたReality Engine上で実行され、そのReality Engine上のAJA I/Oボードを介して表示されるプログラム出力に表示されます。

Studio:このモジュールはプロジェクト/バーチャルセットを特定のReality Engineに設定するために使用します(プロファイルと呼ぶこともできます)。これはプロジェクトがLauncherモジュールから起動されたときに、どのReality Engineがどのプロジェクトを実行するかを定義します。同じプロジェクトや異なるプロジェクトをそれぞれのReality Engineに割り当てることができますが、Reality Engineごとに.rgraphファイルを保存することもできます。調理されたプロジェクトを起動するにはスタジオを作成する必要があります。プロジェクトは出荷モードまたはエディタモードで起動できます。

スタジオでは、特定のリアリティエンジンを起動する機能を提供しています。

複数のリアリティエンジンを一緒に使う場合は、両方のリアリティエンジンで同じクックドプロジェクトを起動したり、それぞれのリアリティエンジンで異なるクックドプロジェクトを起動したりすることができます。

Cook:クッキングとは、プロジェクトをより多くのメモリとパフォーマンスを効率的に使用するために変換するプロセスです。クッキングされていないプロジェクトはエディタモードで起動しますが、これは "スタンドアロンモード "とも呼ばれています。

調理されたプロジェクトは、スタジオモジュールのReality Engineで実行するように設定されています。

Engine Monitor:このモジュールでは、このコントロールサーバーに接続されているすべてのリアリティエンジンの詳細を表示することができます。このモジュールはハードウェアコンポーネントのプロセスのリアルタイムの変化とワークステーションにインストールされているコンポーネントの詳細を表示します。

これはReality Engineのシステムリソース監視の一種です。Windowsタスクマネージャツールの一般的なリードを踏襲していますが、機能が大幅に拡張されています。これらの拡張された機能により、システムのリアルタイムな状態やその他のプロセスレベルの詳細を確認することができます。


Cookサーバー


プロジェクトの設計を終えた後、それは生放送で使用する前に調理する必要があるように、それはより効率的で、より少ない時間を消費し、ネットワークトラフィックのためのより良い構成を持つことに注意することが重要です。

下の接続図では、R DriveにはNAS(Network Attached Storage)が推奨されていることがわかります。そして、サーバーの定義は2つあります。

画像118


使用する機械の構成は、5つのカテゴリーに分けてメモしておくことができます。

1.Cook Server:クックサーバーは、出荷モードで実行されるプロジェクトを調理するために使用されます。クッキングとは、プロジェクトがより多くのメモリとパフォーマンスを効率的に使用するために変換されるプロセスです。クックされたプロジェクトはすべてシッピングモードで実行されます。クックサーバーはReality Cook Serverアプリケーションを実行します。このマシンにグラフィックカードは必要ありませんが、Reality Editorが必要です。Reality EditorReality Cook Serverのインストールは必須です。

Cook Server installerはReality Editorのインストーラーと一緒にオプションのインストーラーコンポーネントです。Reality Editorのインストーラのセットアップを実行し、"Cook Server "のみを選択してください。

プロジェクトはReality Editorなしでは調理できませんので、クックサーバーにReality Editorをインストールする必要があります。
可能であれば、クックサーバーをクッキング用に別の強力なマシンにしておくとパフォーマンスの面でも良いでしょう。

2.Reality Engine:すべてのプロジェクト/仮想セットを含むメインのReality Engineです。1つまたは複数のReality Engineをインストールすることができます。プロジェクトはReality EngineのライセンスでこれらのReality Engineから実行されるので、これは高性能なワークステーションでなければなりません。このマシンにはAJA I/Oビデオボードがインストールされます。このマシンにはReality PrerequisitesReality Engineのインストールが必須です。それぞれのReality Engineは独自のキャッシュを持っており、プロジェクトが起動してエンジンサーバーがオンになるたびに、Reality Engineはそのローカルキャッシュからスタジオの最新バージョンを呼び出します。

Reality Engineの認定システム構成を参照してください。


3.Control Server:その名の通り、1台または複数のリアリティエンジンに様々なコマンドを与えることで、1台または複数のリアリティエンジンを制御することができる主制御源です。オペレータは生放送中にこれらの制御装置でReality Controlを使用します。コントロールアプリケーションはプロジェクトを起動/停止するためにReality Engineにコマンドを送り、Reality Engineでのプロジェクトの処理方法をコントロールして、希望する出力を実行します。また、調理プロセスを実行するためにクックサーバーと通信します。

コントロールアプリケーションはプロジェクトを起動/停止するためにReality Enginesにコマンドを送信し、Reality Engineでプロジェクトが処理される方法をコントロールして所望の出力を実行します。また、クックサーバーと通信して調理プロセスを実行します。また、コントロールアプリケーションはスタジオの設定を行い、バーチャルシーンと全てのReality Engineとの接続を定義し、シンプルなインターフェースを使用して、ビデオ入出力、キーヤー、カラーコレクション、トラッキングカメラ、バーチャルシーンなどのノードを接続してレンダリングパイプラインを合成することができます。セットアップを変更するつもりがなければ、ほとんどの場合、これは一度だけの作業です。セットアップが完了したら、単にスタジオを起動して、時間がなくてもオンエアに行きます。オンデマンドで様々な機能をトリガーして、シーン内のバーチャル要素をコントロールすることができます。このマシンは、1台または複数のリアリティエンジンとクックサーバーをコントロールするために使用されるので、高い設定は必要ありません。低設定のコンピュータやラップトップでも使用できます。このマシンにはReality Controlのインストールが必須です。

Control Server の認定システム構成を参照してください。


4.Reality Editor:デザイナーはReality Editorのライセンスを取得したマシンでReality Editorを使用します。Reality Editorを起動するためには、Reality Editorライセンスが付属しているUSBドングルをこのマシンに接続する必要があります。このマシンにはReality EditorReality Prerequisitesのインストールが必須です。Reality PrerequisiteはReality Editorのライセンスを取得するために必要な "CodeMeterRuntime64-650.msi"をインストールします。

Reality Editorの認定システム構成を参照してください。


5.Network Attached Storage:これは、Reality Suiteの他のすべてのワークステーションがアクセスし、プロジェクトの設定ファイルを読み書きできるR:ドライブになります。

Reality Suiteで作業するためには、十分なHDDの空き容量を持つ共有ドライブをマッピングする必要があります(最低100GB以上をお勧めします)。

R ドライブの設定を参照してください。


クックサーバーの実行ファイルを実行する


Cook Server installerはReality Editorインストーラーのオプションのインストーラーコンポーネントです。そのため、必ずReality EditorのインストーラからCook Serverをインストールし、「Cook Server」コンポーネントにチェックを入れてください。

この実行ファイルはクックサーバーのみで実行してください。クックサーバーを起動するには、クックサーバー上の「C:\Program Files\Zero Density\Reality Editor\2.10\CookServer」フォルダに移動し、 ZDRealityCookServer.exeをクリックしてください。

Reality Controlアプリケーションの右下には、クックサーバーのON/OFF状態を示すインジケーターがあります。

赤色:クックサーバーがOFFになっています。したがって、プロジェクトをクックすることはできません。クックサーバー実行ファイルを起動して有効にします。

緑色:クックサーバーがON(稼働中)になっています。これで、プロジェクトをクックすることができます。


Cook


クックサーバーは、出荷モードで実行されるプロジェクトを調理するために使用されます。クッキングとは、プロジェクトがより多くのメモリとパフォーマンスを効率的に使用できるように変換されるプロセスです。

クックタブの下には、以下のように5つのセクションがあります。

画像119

1.Projects:"R:Reality Editorで作成した "Unreal Project "が、R:R:Reality\RealityProjectsフォルダに保存されます。
2.Maps:選択したUnreal Projectから使用するレベルマップの一覧です。
3.Cooks:クックされたプロジェクトの一覧です。Cooks: クック済みリストに追加された全てのプロジェクトが表示されます。
4.Cook History:特定のプロジェクトの特定のマップの履歴を見ることができます。
5.Cook Setting:Reality Editorに存在するプロジェクト設定の一部を有効にすることで、特定のクックを管理することができます。


プロジェクトの料理


R:\Reality\Projectsのパスの下に、Reality Editorで作成した "Unreal Project "が最低でも1つはあるはずです。Reality ControlのCookタブは、コントロールアプリケーションを起動するたびに、このパスをスキャンしてプロジェクトの一覧を表示します。目的のプロジェクトが表示されていない場合は、refreshボタンを押してください。

LauncherはProjectsフォルダのみをスキャンし、サブフォルダやその他のフォルダは認識しないことに注意してください。ランチャーが認識する.uprojectファイルのパスの例をご覧ください。

画像120


このクックで使用するリアリティプロジェクトを選択してください。

画像121


選択したUnreal Projectから使用するレベルマップを選択します。

画像122

各プロジェクトは複数のマップを持つことができ、いずれかのマップを別のクックとして使用することができます。この方法では、同じプロジェクト内に複数のマップを持つことができ、ディスク容量とプロジェクト管理の時間を節約できます。


ここで「Add」をクリックして、プロジェクトに新しい料理項目を追加します。

画像123


"Add Cook" ダイアログで、このクックの名前を入力し、Create をクリックします。R:\Reality\Cooks\\\ フォルダの下にCookの設定ファイルが生成されます。

画像124


新しい料理がクックリストに表示されます。

画像125


注意してほしいのは、あなたの「クック」がNotCookedと表示されていることです。これは、「クック」がリアルタイムで作れるように準備されていない(最適化されていない)ことを意味しています。

調理を開始するには、「Cook」ボタンをクリックしてオンエアの準備をしてください。これで「調理」プロセスが開始されますが、プロジェクトのサイズによっては数分かかる場合があります。

画像126

クックをクリックすると、クックの設定画面が表示されます。

このウィンドウでは、プロジェクトのデザイン中にReality Editorで行った設定から派生したいくつかの設定を見ることができます。これらの設定の利点は、ここから設定を変更できることです。Reality EditorのEdit + Project Settingsで変更することができますが、Reality Controlソフトウェアを使うと、Reality Editorで元のプロジェクトファイルを編集しなくても、これらの設定を操作することができます。プロジェクトの設定を変更したら、「Save & Cook」をクリックしてください。

画像127

オプションが編集できない場合は、「編集可能」モードに設定する必要があります。以下の手順で設定を行ってください。

ウィンドウ→設定へ

画像128

下にスクロールして「Cook Settings」に移動し、編集可能にしたい項目名をダブルクリックします。

画像129


"Edit Cook Setting"ダイアログが表示されます。必要な変更を行い、「Save」をクリックして設定を保存します。

画像130

"IsEditable"をONにチェックすると、調理を始める前にプロジェクトや料理の設定値を編集できるようになります。


​調理プロセスが開始されると、 [Cook History] タブで調理が開始状態であることがわかります。​これは、調理プロセスが正常に開始されたことを意味します。

画像131


調理の進行状況/警告/エラーを確認するには、調理項目を右クリックしてログを表示を選択します。

画像132


クックマネージャータブに移動し、特定のコックの状態やログを確認することができます。

画像133


クックが正常に終了すると、「Cooks」タブで「Cooked」にステータスが変更されているのがわかります。

画像134


ここで調理作業は終了です。次はスタジオの作り方とプロジェクトの立ち上げについて説明します。

調理中に何かがうまくいかず、Cook StateがRedのままになってしまった場合は、ログウィンドウを右クリックしてマウスを右クリックし、Copy_to_Clipboardを選択してテキストエディタに貼り付ければ、どのようなエラーが発生したのかを確認することができます。通常はプロジェクトからasset fileが欠落していることがわかります。
Unreal® Engine には、エディタ コードを含まない別のShipping Executableが用意されています。セットを準備する際には、実際にプロジェクト アセットのコンテンツをシッピング実行ファイル用に調理しています。このプロセスでは、アセットをよりパフォーマンスの高いフォーマットに変換し、リアルタイムのパフォーマンスを最大化しています。Reality Editorからプロジェクトをテスト実行することができますが、エディタではエディタコードのオーバーヘッドが発生し、システムのパフォーマンスが低下するため、リアルタイム再生のフレームレートが低下します。



スタジオの作成とプロジェクトの立ち上げ


スタジオ
Studio モジュールでは、プロジェクト/仮想セットを特定のエンジンに設定することができます (プロファイルと呼ぶこともできます)。これにより、プロジェクトが Launcher モジュールから起動されたときに、どのエンジンがどのプロジェクトを実行するかが定義されます。

多くのクック済みセットを持っているので、2つのエンジンが異なるクックで一緒に作業しているスタジオデザインや、1つのエンジンと1つのクックされていないセットを持っている他のスタジオを整理したいと思うかもしれません。各エンジンにスタジオプロファイルを設定すると、プロジェクトの特定の出荷バージョンまたはエディタバージョンで特定のエンジンだけを起動できる機能を提供します。

スタジオタブの下には、以下のように7つのセクションがあります。

画像135


1.Studios:あなた自身のスタジオ(プロフィール)を作成することができます。
2.Engines:あなたの環境で設定されているすべてのエンジンがここに表示されます。あなたの環境で設定されているすべてのリアリティエンジンがここに表示されます。
3.Projects:Reality Editorで作成したプロジェクトがここに表示されます。Reality Editorで作成したプロジェクトがここに表示されます。R:\RealityProjectsのパスで保存されたプロジェクトのみ表示されます。
4.Maps:スタジオのマップを選択します。スタジオのマップを選択します。(未調理のマップはEditorモードでのみ表示され、一度調理されたマップはShippingモードで利用可能です)
5.Launching Type:プロジェクトの起動タイプを選択します。起動タイプは2種類あります。エディタ(エディタ(スタンドアロン)モードで起動)とシッピング(調理済みバージョンで起動)です。
6.Project Settings:プロジェクトの設定を提供します。


スタジオの作成
Studio」タブに移動し、「Add」をクリックします。

画像136

スタジオの名前を変更して、Createをクリックします。これで、パス R:\Reality\Studiosの下に Studio の設定ファイルが作成されます。

画像137


スタジオセクションの下に「MyFirstStudio」が作成されているのがわかります。

画像138


右側の「エンジン」セクションには、利用可能なリアリティエンジンがリストアップされています。スタジオの設定に使用するエンジンを選択します。

画像139


プロジェクトセクションでは、調理済みまたは調理されていないプロジェクトが表示されます。

画像140

プロジェクトを調理することでパフォーマンスが向上する一方で、Realityユーザーの中には、これらのプロジェクトの調理されていないバージョンを放送で使用したいと考える人もいることを覚えておいてください。


まだ調理されていないマップをクリックすると、Launching Typeが空になっているのがわかりますが、それでもShippingではなくEditorモードを選択することができます。

画像141


このプロジェクトのクックマップを選択すると、以下のようにクック名が表示されます。

画像142

プロジェクト (仮想セット) をクッキングすることは、実際にはエディタなしで実行できる Unreal プロジェクトの最適化されたバージョンを作成することです。これにより、コンピュータがエディタを実行する必要がなくなるため、エンジンのパフォーマンスが向上します。


ここで、プロジェクト設定セクションで.rgraphファイルをブラウズして選択し、[開く]をクリックします。

画像143


スタジオのパラメータを設定したら、「Save」をクリックしてスタジオを保存します。

画像144


Launcherタブの下に新しいスタジオが表示されているのがわかります。これはランチャブル状態になっていて、起動する準備ができています。

画像145



ランチャー



ランチャーモジュールはネットワーク内に接続された全てのリアリティエンジンと直接通信します。このモジュールは、プロジェクトをOnAirに送信するために、各エンジンに同時にコマンドを送信します。スタジオを起動することは、ライブ放送制作のためのバーチャルセットプロジェクトを実行するための最終ステップです。

LauncherモジュールはReality ControlアプリケーションのStudioモジュールで設定したすべてのプロジェクトを起動可能な状態で表示します。

それぞれのリアリティエンジンには、同じプロジェクトを設定したり、異なるプロジェクトを設定したりすることができます。プロジェクトの起動時に、プロジェクトは定義されたエンジンで実行され、そのリアリティエンジンのAJA I/Oボードを介して表示されるプログラム出力に表示されます。


スタジオの立ち上げ



スタジオの設定が終わったら、スタジオを起動して、作業したいエンジンで作業を開始するのを確認します。ここで、`MyNewStudio`をクリックして、メニューの上部にあるLaunchをクリックします。

画像146


メニューの下部には、4つのステップでエンジンが起動することが表示されています。

Verify:リアリティコントロールは、コックが適しているかどうかを確認します。
Cache:Reality Controlは、このスタジオのエンジンに選択された調理済み/調理されていないセットがCacheフォルダに存在するかどうかをチェックします。存在しない場合は、R:/Reality/CooksフォルダからエンジンのローカルC:/RealityCacheフォルダにキャッシュされます。
Launch:Cacheの下にセットが見つかると、起動プロセスが開始されます。
OnAir:エンジンの準備ができました。


スタジオが起動し、このスタジオに関連する.rgraphファイルがない場合は、以下のようにマルチビューワが起動します。

画像147

スタジオ設定で.rgraphと.ractionファイルを選択していない場合は、上記のようにMultiviewerが起動します。



拡張現実バーチャルスタジオ


拡張パイプラインを作成できるようにするには、nodegraphを右クリックしてImport Template -> Composite augmented with shadowsを選択し、AJADeviceノードを追加して準備の整ったテンプレートを使用します。nodegraphは以下のようになります。

画像148


SDI 入出力


AJAカードが正しくインストールされ、ドライバが更新され、ファームウェアがチェックされていることを確認したら、AJAデバイスAJA入力の値を管理する必要があります。

画像149


AJA DeviceDeviceIDが選択されていることを確認してください。

画像150


物理的な AJA カードの入力ピンと同じ InputMode を選択してください。

画像151


次にAJAOutputに行って、 Mixer ノードの Program ピンが AJAOutput ノードの Video ピンに接続されていることを確認してください。

画像152


物理的な AJA カードの入力ピンと同じ OutputMode を選択してください。

画像153


そして、それはあなたのSDI出力上の表示を見ることができるように右のVideo Formatを選択することが非常に重要であり、そうでなければ、どちらかが歪んだ画像またはあなたのディスプレイモニターで全く画像が表示されません。

画像154


レンズとトラッキング


レンズとトラッキングノードは、カメラ上の物理的なレンズとスタジオにインストールされたトラッキングシステムの視覚化と設定を提供します。デフォルトでは、レンズとトラッキング関連のノードは以下のようになっています。

画像155


お使いのシステムに合ったレンズを選択してください。お使いのレンズがまだこのリストにないと思われる場合は、該当する最も近いものを選択してください。

画像156


デフォルトでは、UserTrackノードはテンプレート上にあります。ノードグラフを右クリックしてCreate -> Trackingを選択すると、トラッキングパラメータを選択および変更できます。Reality上の使用可能なトラッキングデバイスが表示されます。また、Realityは、FreeDノードでアクティブにできるFreeDプロトコルを使用するトラッキングデバイスと互換性があります。

画像157

正しいトラッキングノードを追加したら、Deviceのプロパティで

EnableDevice が TRUE に設定されていることを確認してください。
UDPPortまたはPort Nameが正しく設定されており、物理デバイスのUDPPortまたはエンジンのポート名に応じてこのプロパティで設定することができます。
ProtocolはD1またはA1に正しく設定されていますが、これはトラッキングソリューションプロバイダに相談してください。


レンズとトラッキングノードの設定が完了した後、トラッキングデバイスからデータが流れているのを見ることができるはずです。データの流れが正しいかどうか、必要なチェックを行い、微調整を行ってください。


投影


Realityでは、タレントはレイヤーベースの合成ではなく、3Dシーンのグラフィックで合成されます。Projection Cubeと呼ばれるメッシュにタレントを投影することで提供されます。 ProjectionノードにはSDI入力の歪まない画像が必要です。そこで、以下のようにSDI InputをProjectionノードのVideoピンに接続する前にUndistortノードを追加します。

画像158


Projection CubeGeometryを変更して、デフォルトでは以下のようになっているシーンと物理的なスタジオにフィットするようにします。

画像159


Projection CubeTransformを変更していない場合、セットのゼロ点から右、左、近く、遠くの50メートルに対応する以下の値を入力することができます。以下の値は、100*100メートル(センチメートル単位で表示)の投影面積に対応しています。

画像160


ポストプロセス


Unreal Engine を搭載した Post Processing には多くの機能があります。このチュートリアルでは、仮想オブジェクトの影を作成する方法を説明します。

画像161


Reality Editorに戻って、椅子に近い位置にあるPoint Light Assetをセットに追加して、Reality Editorの右側にあるWorld Outlinerに表示されているのを確認してください。

画像162


Add ComponentをクリックしてZDActorをこのアセットに追加し、PointLightという名前に変更して、ノードグラフ上で表示できるようにします。

画像163


Transformに行って、Movableにします。

画像164


PointLightComponent (Inherited)をクリックしながらZDと入力し、ZDShadow Channelを表示し、赤、緑、青、アルファのいずれかを選択します。異なるシャドウチャンネルを選択することで、セット内にシャドウをレンダリングするライトを最大4つまで追加することができます。

画像165


プロジェクトを保存し、もう一度PlayをクリックしてReality Setup Nodegraphを開き、Engine ControlノードをクリックしてRenderShadowが有効になっているかどうかを確認し、TRUEに設定します。

画像166


Post Process Materialノードに移動し、MaterialRealityShadowsAOに設定されているか確認してください。

画像167


ライトは数値順に追加されるので、今回追加したPointLightはShadowChannel1にあります。Shadow1Opacityで影の不透明度を管理し、デフォルトでは0.500になっているので、影の不透明度が変化していることに気づきます。

画像168


最終合成


最後に、カメラ入力、バーチャルオブジェクト、後処理パラメータは、最終的な出力のために Composite Passesノードに送られます。

画像169


影が見えるようにするには、CameraノードのShadowピンがComposite PassesノードのLightingピンに接続されていることを確認してください。


グリーンスクリーンバーチャルスタジオ


拡張パイプラインを作成できるようにするために、nodegraph上で右クリックしてImport Template -> Composite with Cyclorama and KeyerとCompositeし、AJADeviceノードを追加して、用意されているテンプレートを使用します。ノードグラフは以下のようになります。

画像170


SDI 入出力


AJAカードが正しくインストールされ、ドライバが更新され、ファームウェアがチェックされていることを確認したら、 AJA DeviceAJA Inputの値を管理する必要があります。

画像171


AJA InputDeviceIDが選択されていることを確認してください。

画像172


物理的な AJA カードの入力ピンと同じ InputMode を選択してください。
この例では、HD入力としてSingleLink (1) になります。

画像173


AJA Outputに移動し、MixerノードのProgram ピンがAJAOutputノードのVideoピンに接続されていることを確認します。

画像174


物理的な AJA カードの入力ピンと同じ OutputMode を選択してください。
この例では、HD出力としてSingleLink (5) になります。

画像175


そして、それはあなたのSDI出力上の表示を見ることができるように右のビデオフォーマットを選択することが非常に重要であり、そうでなければ、どちらかが歪んだ画像またはあなたのディスプレイモニタで全く画像が表示されません。

画像176


レンズとトラッキング


レンズとトラッキングノードは、カメラ上の物理的なレンズとスタジオにインストールされたトラッキングシステムの視覚化と設定を提供します。デフォルトでは、レンズとトラッキング関連のノードは以下のようになっています。

画像177


お使いのシステムに合ったレンズを選択してください。お使いのレンズがまだこのリストにないと思われる場合は、最も近いものを選択してください。

画像178


デフォルトでは、UserTrackノードはテンプレート上にあります。ノードグラフを右クリックしてCreate -> Trackingを選択すると、トラッキングパラメータを選択および変更できます。Reality上の使用可能なトラッキングデバイスが表示されます。また、Realityは、FreeDノードでアクティブにできるFreeDプロトコルを使用するトラッキングデバイスと互換性があります。

画像179


正しいトラッキングノードを追加したら、Deviceのプロパティで

EnableDevice が TRUE に設定されていることを確認してください。
UDPPortまたはPort Nameが正しく設定されており、物理デバイスのUDPPortまたはエンジンのポート名に応じてこのプロパティで設定することができます。
ProtocolはD1またはA1に正しく設定されていますが、これはトラッキングソリューションプロバイダに相談してください。


レンズとトラッキングノードの設定が完了した後、トラッキングデバイスからデータが流れているのを見ることができるはずです。データの流れが正しいかどうか、必要なチェックを行い、微調整を行ってください。


投影


実際には、才能は3 Dシーンのグラフィックスと合成されます。​レイヤベースの合成ではありません。​これは、投影立方体 (Projection Cube) と呼ばれるメッシュ上にオリジナルを投影することで実現されます。Undistortノードには、歪みのないSDI入力イメージが必要です。​したがって、次に示すように、SDI入力をProjectionノードのVideoピンに接続する前に、Undistortノードを追加します。

画像180


​Projection CubeGeometryを修正して、シーンと物理スタジオにフィットするようにします。

画像181


投影立方体のトランスフォーム (Transform) アトリビュートを変更していない場合は、セットの0ポイントから右、左、近接、および遠方50メートルに相当する以下の値を入力することができます。以下の値は、100×100メートル(センチメートルで示される)の投影面積に相当し、製品内のニーズに十分対応できます。

画像182


最終合成


​最後に、カメラ入力、仮想オブジェクト、および後処理パラメータはすべて、最終出力の合成パスノードに送られます。

画像183


アクションビルダーとアクション制御


日々の作業の中で、拡張または仮想のパイプラインで構成されるリアリティセットアップを使用するよりも、セット内のいくつかの変数、メディアなどを変更し、異なる関数を呼び出すためのより簡単なインターフェイスを必要とする場合があります。この目的のために、アクションビルダで作成された単純なボタンとプレースホルダで構成されるアクションコントロールを使用できます。詳細なガイドはここにありますが、これらのアプリケーションを理解するための基本的な例についてはここで説明します。


一例:セットでの看板の作成と管理


ビルボードとMediaInputノードの作成
Reality Setupでノードグラフを右クリックし、Create -> UEActor -> BillboardBillboardノードを作成します。

画像184


ノードグラフ上でもう一度右クリックして、Create -> Media I/O -> MediaInputと進み、MediaInputノードを作成し、以下のようにBillboardノードのVideoピンに接続します。

画像185


​セットに看板俳優がいることについては、Reality Editorを参照してください。

画像186



掲示板の位置を制御するアクションの作成


リアルでのZ方向であるビルボードの位置を上下に移動するアクションを作成します。

アクションビルダーのロゴをダブルクリックして、アプリケーションを起動します。アクションビルダーでは、この.rsetファイルに接続してアクションを作成するために、.rsetファイルが必要です。rsetファイルを選択し、 [Open] ボタンをクリックします。

画像187


​アクションビルダが起動したら、 [create] ボタンをクリックして.ractionファイルを作成します。

画像188


​必要に応じて名前を変更し、 [OK] をクリックします。

画像189


​次に、Root Panelを右クリックし、Create -> Action Groupを選択して、アクショングループを作成します。

画像190


BillboardUPアクションの作成
アクション・グループは、Billboard変換に関するアクションで構成されます。Action Groupを右クリックし、 Create -> Actionを選択します。

画像191


このアクションの名前をBillboardUPに変更します。

画像192


​覚えているかもしれませんが、すべてのノードには2つのタブがあります。

​・PropertiesSetN ode Propertyプロパティとして参照されます。
​・Actions:これらはCall Node Functionとして参照されます。

この例では、BillboardノードのTransformプロパティを変更するため、BillboardUPを右クリックしてSetNodePropertyTaskを呼び出し、Create -> Task -> SetNodePropertyを選択します。

画像193


ノードプロパティを設定するタスクは以下のように作成されます。

画像194

上記、あなたが変更する必要があります。

Name:名前を変更する必要があります。あなたはこの例のためにUPされますあなたが好きなように名前を変更することができます。
Duration:このタスクの持続時間は2秒です。このタスクの持続時間は、ここでは2秒です。
Interpolation:アニメーションの種類。デフォルトではジャンプです。EaseinOutは2秒のアニメーションを提供します。
Node:プロパティを持つ利用可能なすべてのノードがリストアップされています。
Property:操作したいノードを選択すると、利用可能なすべてのプロパティが一覧表示されます。
Value Type:これは、定数またはバインディングのいずれかです。バインディングは、演算子が変更できるようにコントロールを与える変数を作成できることを意味します。
Transform- Z property:この例では、アクションの高さを2メートルにしたいと思います。


BillboardDownアクションの作成
ビルボードの高さを2メートル移動したら、元の位置に戻したいと思います。BillboardUPアクションボタンを右クリックし、Duplicateをクリックします。

画像195


アクションが複製されたら、アクションの名前をBillboardDOWNに変更します。

画像196


​以下に複製したタスクを見てください。

画像197


​上記では、以下を変更する必要があります。

Name:DOWNという名前に変更します。
Duration:このタスクの期間 (ここでは2秒) 。
Interpolation:アニメーションのタイプ。​これは既定ではです。​EaseinOutは2秒のアニメーションを提供します。
​・Node:プロパティを持つ使用可能なすべてのノードが一覧表示されます。
​・Property:操作するノードを選択すると、使用可能なすべてのプロパティが一覧表示されます。
Value Type:これは、定数かバインディングのどちらかになります。バインディングとは、演算子に変更する制御を与える変数を作成できることを意味します。
Transform- Z property:この例では、アクションを地上0メートルの元の位置に配置します。


​Action BuilderとAction Controlのボタンをクリックする
​アクションコントロールは、編集モードを持たないアクションビルダの別のバージョンです。

​追加したアクションボタンは、両方のアプリケーションでテストできます。​この例では、Reality Action Builderを試してみましょう。​以下のようにBillboardUPボタンをクリックします。

画像198


​EaseinOutアニメーションを使用すると、ビルボードが2秒で2メートルの高さに移動することがわかります。

画像199


​同様にして、BillboardDOWNボタンをクリックします。

画像200


​ビルボードは元の位置に戻ります。

画像201


​この種類のノードプロパティの設定アクションは、システムで使用している特定のノードグラフ内の使用可能なすべてのノードに適用できます。


カムと照明の設定


Keyerから最良の結果を得ることは、完全に現実やKeyerの調整ではありません。​Keyerの品質は、カメラの品質とその調整、およびスタジオの照明設定によって決まります。​これらの他の要因がなければ、リアリティは仮想スタジオで品質キーを提供できません。

カメラ設定
​* カメラアイリスは手動モードにする必要があります。​グリーンは露出オーバーになってはいけません。​そうしないと、彩度が失われます。​画面の品質に影響します。

​* 詳細を閉じる必要があります。

​* システムメニューに3 Gセクションが表示されるので、レベルAとして選択する必要があります。

​* カメラがCLASS (色収差およびシャープネスソリューション)設定をサポートしている場合。​アクティブにするには、次の手順に従います。

​System Menu\Configuration\Lens\Lens corrections. (システムメニュー\設定\レンズ\レンズの修正) 。

​この設定は、ブロードキャストカメラでのみ使用できます。


シクロラマのサイズ
まず、図1のサイクロラマの大きさについて説明します。

シクロラマの高さ(Z):300cm
シクロラマの幅 (Y):477cm
シクロラマの深さ(X):322cm

図1

画像202


明らかにサイクロラマの大きさは自分の希望によります。しかし、いくつかの注意点があります。

・サイクロラマの幅は、2枚の翼で作ることができます。しかし、この幅では、ランプの光の波が壁に反射してしまい、仮想環境に悪影響を与えてしまいます。例えば、図1のようなサイクロラマの大きさにした場合。3つ目の壁を作りたいとします。シクロラマを有効に利用するためには、少なくとも750cm以上の幅を確保する必要があります。

・シクロラマの色の赤と青のチャンネルの値は、できるだけゼロに近い方が良いです。


照明
照明は、Keyerのプロセスの中で非常に重要な部分です。照明の位置や明るさは、キーヤに大きな影響を与える可能性があります。そのため、照明の設定は非常に重要なステップとなります。Keyerで最高の結果を得るために、照明についていくつかのポイントを挙げておきます。

最高の結果を得るためには、3種類の照明があります。

・グリーンに照らすために使用されるランプ
・才能を照らすためのランプ
・フロアで使用されているランプ

A) 緑に照らすために使用されるランプ
図2のように、矢印で示したランプは緑色に照らすために使用されています。

図2

画像203


B)才能を照らすためのランプ
それらのランプを2つに分けることができます。タレントさんに使った照明は、マゼンタフィルターを付けてください。マゼンタフィルターは、照明から発生する赤と青のチャンネルを除去するために使用します。照明のマゼンタフィルターを付けていないランプが2つありますが、これはサイクロラマの前面に吊るしておきます。図3では、マゼンタフィルターを使用したバックライトの構成を見ることができます。

図3

画像204


C) 床に使用されているランプ

図4

画像205


光の波は均等に才能の表面に来るはずです。そのためには、床に光が当たるようにしなければなりません。さもなければ、特に図3のモデルのような才能の下側に多くの流出が表示されます。

図5

画像206

画像207



リアルタイムレイトレーシング


Reality 2.8を皮切りに、NVIDIA RTXシリーズカードでDirectX 12とDirectX Ray Tracing (DXR)を最大限に活用したWindows 10 RS5アップデートを使用したリアルタイムレイトレーシングの初期アクセスをサポートしています。

レイトレーシングは、信じられないほどリアルな照明効果を生み出すことができるレンダリング技術です。基本的には、アルゴリズムが光の経路をトレースし、コンピュータが生成した世界で光が最終的にぶつかる仮想オブジェクトとの相互作用をシミュレートします。シーン内の光と影をレンダリングするための、より高度でリアルな方法です。

レイトレーシング機能は、一連のレイトレーシングシェーダーとレイトレーシングエフェクトで構成されています。これらのそれぞれを使用することで、シャドウイング、アンビエントオクルージョン、リフレクションなどの最新のオフラインレンダラーに匹敵する、自然でリアルな見た目のライティングエフェクトをリアルタイムで実現することができます。

レイトレーシング技術は、コンテンツの視覚効果にリアルタイムで映画のような品質のレンダリングをもたらし、光の物理的な挙動をシミュレートすることで、リアルな照明、影、反射を提供します。レンダリングは、光が当たる場所を分析し、人間の目が実際の光、影、反射を処理するのと同じように、相互作用と相互作用を計算します。

Reality Engineは、Nvidia RTX GPU技術のような世界の主要企業の最新の強力な技術を活用して、今日の業界で可能な高品質でリアルなレンダリングを実現します。

レイトレーシングを使用するには、以下の基準に従うことが必須です。

1 Realityバージョン:Realityバージョン2.8以降。
2 Microsoft Windows OSのバージョン :Windows 10 RS5 (Build 1809) 以降。

3 GPU:DXR対応のNVIDIA RTX 6000。認定GPU。

4 DirectXバージョン: Reality EditorはDX12モードで起動する必要があります。

5 Reality Editorでレイトレーシングを有効にする :Reality Editorでレイトレーシングオプションを有効にする必要があります。

6 スタジオ起動の設定 :Reality Controlアプリケーションで、プロジェクトのスタジオを作成しながら、起動設定でDX12オプションを "チェック "します。


DXR。次世代のグラフィックスAPI


DirectX レイトレーシング(DXR)技術は、レイトレーシングに大きくフォーカスしています。

DirectX 12は、MicrosoftのDirectXアプリケーションプログラミングインターフェースの最新バージョンで、Windowsベースのシステム上でビジュアルやその他のマルチメディアタスクを、飛躍的に高いフレームレートと改善されたパフォーマンスで処理します。

DXR技術は、現在のGPU技術を補完し、Reality Engineは、Nvidia RTX GPU技術のような世界有数の企業の最新の強力な技術を活用して、今日の業界で可能な高品質でリアルなレンダリングを実現します。

DXR APIを実行するにはDX12モードで実行する必要があります。


GPU Direct APIがDX12に対応

GPU Directは、パフォーマンスを犠牲にせずに映像を出力するために重要です。これは、DXR API(DX12はDXRの前提条件)を使用して、リアルタイムのレイトレーシングでシーンをレンダリングする場合に非常に重要になります。


Nvidia Quadro RTX 6000はレイトレーシング用の認定GPUです。

レイトレースレンダリングの導入に伴い、レイトレースをサポートするための新技術GPUも同様に重要になってきています。

画像208


NVIDIA RTXプラットフォームは、レイトレーシング、ディープラーニング、ラスタライゼーションを融合させ、コンテンツ制作者の創造プロセスを根本的に変革します。

RTXプラットフォーム上に構築されたアプリケーションは、リアルタイムのフォトリアリスティックなレンダリングとAIによって強化されたグラフィックス、ビデオ、画像処理のパワーをもたらし、何百万人ものデザイナーやアーティストが全く新しい方法で素晴らしいコンテンツを作成できるようにします。

非リアルタイムレンダリングに長年使用されてきたレイトレーシングが、リアルタイムで動作し、光の物理的な挙動をシミュレートすることでリアルなライティングを提供します。レイトレーシングは、光が視聴者の目から仮想3Dシーンを通過する際の経路をトレースすることで、ピクセルの色を計算します。シーンを通過する際、光はあるオブジェクトから別のオブジェクトに反射したり(反射の原因となります)、オブジェクトに遮られたり(影の原因となります)、透明または半透明のオブジェクトを通過したり(屈折の原因となります)します。これらすべての相互作用が組み合わされて、ピクセルの最終的な色が生成され、画面に表示されます。

RTX 6000 GPUには、専用のレイトレーシングアクセラレーションハードウェアが含まれており、高度なアクセラレーション構造を使用し、全く新しいGPUレンダリングパイプラインを実装することで、グラフィックスアプリケーションでリアルタイムのレイトレーシングを可能にしています。

RTXボードのRaytraceについての詳細は、以下のリンクをクリックしてください。


Rawの入力


Rawデータとは?
簡単に言えば、ベイヤーパターン/イメージと呼ばれる画像処理前のセンサーデータです。RealityでのRawデータの利点は、カメラからキャプチャした非圧縮データをアルゴリズムを使ってRealityで脱ベイヤー処理し、良質なキーヤーを達成するための優れた信号を持つ高品質のビデオを提供することです。

シングルセンサーカメラでは、各写真サイト(またはピクセル)をフィルタリングして赤、緑、青のいずれかの値を生成することで色が生成されます。各ピクセルには1つの色値しか含まれていないため、RAWはモニター上では見分けがつかない。これは、Rawがビデオではないことを意味します。Rawはビデオに変換して使用する必要があります。これは通常イメージの各終了するピクセルのための色そして明るさ両方を決定する脱ベイヤープロセスによって行われる。生のビデオの利点は、一般的なビデオ処理が組み込まれていないことです。ホワイトバランス、ISO、その他の色調整がないため、センサーは見たままの画像を出力します。これは、高いビットレートとともに、リアリティの中で膨大な量の調整が可能になります。


RealityでのRawビデオ入力での作業


始める前に、まず、すべてのカメラがRawデータを提供しているわけではないことを理解しておきましょう。市場にはRawを提供する特定のカメラがあり、その一つがPanasonic VariCamです。リアリティは現在、VariCamのRawデータをサポートしており、ライブビデオ制作で使用することで、これまで以上にキーイングの見栄えが良くなります。

RealityでRaw入力を設定するには、以下の手順に従います。


基本的なRaw入出力パイプラインの作成


Raw入力を使用して作業するプロジェクトを起動します。

Setupタブのノードグラフで、以下のノード(Rawデータ処理ノード)を同じ順序(1-2と3)で追加します。

1.DelognノードEXPERIMENTAL > Varicam
2.DebayerSourceノードEXPERIMENTAL
3.Matrix-DRangeScaleノード:EXPERIMENTAL > Varicamに移動します。
これらの3つのノードがすべての画像処理と生の入力データのde-Bayer/de-mosaic処理を行います。

画像209


ビデオ入力の場合は、AJAcard ノードを追加してから AJAinRGBA ノードを追加します。AJAcard Device出力ピンを AJAinRGBA ノードのDevice入力ピンに接続します。

Raw 入力の場合は、新しい AJAinRGBA ノードを使用しなければなりません。EXPERIMENTAL > Media I/Oに進みます。ここがカメラからのRawデータにアクセスするポイントです。

​ここで、3つの新しいノード(上記の順序で)を追加します。これらのノードは、すべてのイメージ処理と未加工の入力データのデバイヤ/デモザイクを行います。

​[AJAinRGBA][Video]>[VaricamDelog]入力ピンを接続します。

​[VaricamDelog][output]>[DebayerSource] [input] ピンを接続します。

​次に、[DebayerSource] [Output]>[Matrix-DRangeScale][input] ピンを接続し、最後に[Matrix-DRangeScale][output]ピンを[Mixer Default]ノードまたは合成パイプラインのその他のノードに接続します。

[​Matrix-DRangeScale]からの出力は、最終的に、他の非生のビデオソースと同様に、SDIまたはHDMIモニタで見ることができる、処理されたベイヤー/デモザイク出力を提供します。


​次の図は、入力から出力までのRawデータ処理ノードを示しています。​言い換えると、単純に、ビデオ着信[Matrix-DRangeScale][Output]ピンがAJAの入力からであると仮定します。​また、[Matrix-DRangeScale][Output]ピンからの出力は、他のノードの他の入力ピンに送られます。

画像210


​下のイメージは、他のノードを使用した入力から出力へのRawデータ処理ノードを示しています。この例では、keyerのCycloramaと合成されています。

画像211

すべての製品名および会社名は、それぞれの所有者の商標または登録商標®です。


ピクセルストリーミング


​ワークステーションでReality Engineの出力を実行し、レンダリングされたビデオフレームをWebRTC経由でブラウザとモバイルデバイスにストリーミングします。

​SDIビデオ出力信号の場合、Reality EngineはAJAビデオI/Oカードを使用しますが、Pixel Streamingの導入により、Reality Engineの出力をブラウザやモバイルデバイスにストリーミングできるようにさらに拡張されました。

​Pixel Streamingを使用すると、Reality Engineの出力をデスクトップPCまたはワークステーション上で、Reality Engineに含まれるWebサービスの小さなスタックとともに実行できます。​人々は、デスクトップであれモバイルであれ、選択したプラットフォーム上で最新のWebブラウザを使用して接続し、レンダリングされたビデオフレームをReality Engineアプリケーションからストリーミングします。​ユーザーが何かをインストールしたりダウンロードしたりする必要はない。​YouTubeやNetflixから動画をストリーミングしたり、プレーヤーのウェブページでHTML 5のUIをカスタマイズしたりするようなものだ。

​次の手順に従って、レンダリングされた出力をローカルネットワーク経由でブラウザおよびモバイルデバイスにストリームします。


Pixel Streamingの仕組み


​しかし、Pixel Streamingでは、Reality Engineワークステーションを使用して最終的なビデオ出力をレンダリングし、そのワークステーションで使用可能なリソース (ビデオI/O、CPU、GPU、メモリなど) を使用してすべてのフレームをレンダリングします。​このレンダリングされた出力を継続的にエンコードしてメディア・ストリームにし、軽量なWebサービス・スタックを通過させます。​ユーザーは、他のコンピュータやモバイルデバイスで実行されている標準的なWebブラウザで、そのブロードキャストストリームを表示できます。

​次の図は、リアリティエンジンからの出力がWebブラウザを使用して複数のデバイスにストリーミングされる様子を示しています。

画像212

​リアリティエンジンからの複数の出力は、Webブラウザを使用して複数のデバイスにストリーミングされます。

​ピクセルストリーミングは、リアリティエンジンからの1つの出力だけに制限されるのではなく、rgraphで行われた設定に基づいて複数の出力をストリーミングできます。

[Pixel Stream]ノードは、任意のノードから出力を受け取ることができる[Input] ピンを持っています。複数の[Pixel Stream]ノードを使用して、複数のブラウザにストリーミングすることができます。

下の画像では、2つの出力が2つの独立したブラウザにストリームされています。

画像213


接続プロセス


1. .rgraphに[Pixel Stream]ノードを追加して「Start」機能を実行すると、設定したHTTPポートを介してWebブラウザにメディアストリームの送信を開始します。
2.クライアントがシグナリングサーバに接続する。
3.クライアントブラウザと[Pixel Stream]ノードとの間に直接接続が確立される。
4.クライアントと[Pixel Stream]ノード間の接続が確立されると、[Pixel Stream]ノードはブラウザに直接メディアのストリーミングを開始します。


前提条件


IPアドレス - Reality Engine(ストリーミング出力のソース)のIPアドレスを知る必要があります。
Pixel StreamingをLANやVPN内で始めるには、お使いのコンピュータの内部IPアドレスが必要になります。コマンドプロンプトまたはコンソールウィンドウから ipconfig コマンドを実行し、IPv4 アドレスで始まる行を見つけます。
別のネットワーク上のコンピュータやモバイルデバイスから接続しようとしている場合は、外部IPアドレスが必要になります。


サポートされているクライアントブラウザ



ピクセルストリーミング再生は、WebRTCプロトコルをサポートする最新のブラウザ上で動作します。例えば、以下のブラウザの最近のバージョンでは、追加設定なしで動作することがテストされており、知られています。

・Google Chrome (デスクトップおよびモバイル)
・アップルSafari


Reality Editorでのピクセルストリーミングの設定


・Reality EditorのメインメニューからEdit > Pluginsを選択します。
GraphicsのカテゴリーでPixel Streaming Pluginを見つけ、Enabledボックスにチェックが入っていることを確認します。

画像214

Pixel Streamingプラグインはデフォルトで有効になっているので、この設定は必要ないかもしれません。

・Realityエディタに戻り、メインメニューからEdit > Project Settingsを選択します。
Reality [category] > [Engine]ノードで、"ZDPixelStreaming Path"を見つけます。
・PixelStreaming.exeのデフォルトパスは

C:\Program Files\Zero Density\Reality Engine\2.10\Engine\Source\Programs\PixelStreaming


これはReality Engineのインストール時に利用できるPixelStreaming.exeのデフォルトの実行パスを定義します。

理想的には、Reality Engineの出力をWebブラウザにストリーミングできるようにReality Engineにインストールします。

画像215


ZDPixelStreaming.exeはReality EngineとReality Editorのインストールされたフォルダの下にあります。

Reality Engineパス

画像216

Reality Editorパス

画像217


Reality Editor(Reality Engineのセットアップがインストールされていない)から出力をストリーミングしたい場合は、Reality [category] > [Engine] ノードの "ZDPixelStreaming Path"を修正する必要があります。PixelStreaming.exeのパスは以下の通りです。

C:\Program Files\Zero Density\Reality Editor\2.10\Engine\Source\Programs\PixelStreaming


Reality Editorのインストール時に利用できるPixelStreaming.exeの実行パスを定義します。フォルダ構造がこのパスで定義されていない場合、"Start"関数を実行した時にサーバーが起動しません。

理想的には、Reality Engineがインストールされているかどうかに関わらず、Reality Editorのマシンにインストールすることをお勧めします。

画像218


シングルピクセルストリーム


Realityノードグラフに単一ピクセルストリームを設定する

・プロジェクトを起動し、Reality ControlアプリケーションのSetupタブを開き、rgraphの設定エリアを開きます。
[Pixel Stream]ノードを追加します。
[Pixel Stream]ノードの[Output]ピン(ストリームしたいノードから)>[Input]ピンを接続します。
[Pixel Stream]ノードを選択し、PropertiesセクションでHTTP IPとPortsを設定します。

画像219


PixelStream_0

HTTP IP:Reality Engine IP
HTTPPort:80 (HTTPのデフォルト)
利用可能な任意のHTTPポートを使用することができます。
UE IP:Reality Engine IP
UE Port:8124 (Default TCP)


[Pixel Stream]ノードでは、「Server Stopped」というステータスが表示されます。

画像220

これは、選択されたノードがWebブラウザにフレームをストリーミングしていないことを意味します。


・ストリーミングを開始するには、Functionsセクションに移動し、Start Executeボタンをクリックします。

画像221


・これで、[Pixel Stream]ノードに「Server Running」というステータスが表示されるはずです。

画像222

これは、選択されたノードがWebブラウザにフレームをストリーミングするようになったことを意味します。


ウェブブラウザで単一のピクセルストリームを表示


・Reality出力をストリーミングしたいデバイスでWebブラウザを開き、URLにReality EngineのIPを入力して「Enter」を押します。
・URLを入力します。192.168.20.100:80

この例では、Reality EngineのIPは192.168.20.100、ポートは80です。

・あなたは、ブラウザで黒い画面が表示されます、ビデオストリームをアクティブにするには、黒い領域内の任意の場所をクリックして単にマウスを左クリックします。

画像223


・Webブラウザで最終的なストリーミング動画が表示されます。

画像224


・ストリーミングを停止するには、[Pixel Stream]ノードを選択し、Functionsセクションに移動し、「Stop」 実行ボタンをクリックします。

画像225


[Pixel Stream]ノードでは、「Server Stopped」というステータスが表示されます。

画像226

実行開始ボタンをクリックすると、再びストリーミングを開始することができます。


​複数ピクセルストリーム


Realityノードグラフでの複数ピクセルストリームの設定

​・プロジェクトを起動し、Reality ControlアプリケーションのSetupタブを開いてrgraph設定領域を開きます。
​・[Pixel Stream]ノードを追加します。

​この例では、2つの[Pixel Stream]ノードを追加します。​Program outの場合は[Pixel Stream_0]、Multiviewer outの場合は[Pixel Stream_1]です。

[Mixer Default]ノードのProgram output端子と[Pixel Stream_0]ノードのInput端子を接続します。

ビデオをレンダリングできる任意のノードからのOutput端子は、[Pixel Stream]ノードのInput端子に接続することができます。

・ここで、[Mixer Default]ノードのMultiviewer outputピン>[Pixel Stream_1]ノードのInputピンを接続します。
[Pixel Stream_0]ノードを選択し、PropertiesセクションでHTTP IPとPortsを設定します。

画像227


PixelStream_0
HTTP IP:Reality Engine IP
HTTPPort:80 (または利用可能なポート)
UE IP:Reality Engine IP
UE Port:8124

ここで[Pixel Stream_1]ノードを選択し、PropertiesセクションでHTTP IPとPortsを設定します。

画像228


PixelStream_1
HTTP IP:Reality Engine IP
HTTPPort:81 (または利用可能なポート)
UE IP:Reality Engine IP
UE Port:8125

他のすべての[Pixel Stream]ノードについて、利用可能なHTTPポート番号とUEポート番号は一意でなければならず、例えば81、82...と8124、8125...はそれぞれ一意でなければならず、HTTPポートはこのセクションで以下に説明するWebブラウザのURLに入力しなければならない。


ノード上では、"Server Stopped"というステータスが表示されます。

画像229

画像230

これは、これらのノードがWebブラウザにフレームをストリーミングしていないことを意味します。


・ストリーミングを開始するには、[Pixel Stream]ノードを選択し、Functions セクションに移動し、Start実行ボタンをクリックします。これを[Pixel Stream]ノードごとに行います。

画像231


・これで、[Pixel Stream]ノードに「Server Running」というステータスが表示されるはずです。

画像232

画像233

これは、これらのノードがWebブラウザにフレームをストリーミングするようになったことを意味します。


下図のように、[Pixel Stream]ノードのOutput端子(ストリームするノードから)>Input端子を接続します。

画像234


ウェブブラウザで複数のピクセルストリームを表示


Reality Engineからの複数の出力を、Webブラウザを使って簡単に複数のデバイスにストリーミングすることができます。

ピクセルストリーミングはRealityからの出力を1つだけに限定するのではなく、rgraphで行った設定に基づいて複数の出力をストリーミングすることができます。その方法を見てみましょう。

・RealityのProgram outputをストリーム配信したいデバイスでウェブブラウザを開き、URLにReality EngineのIPを入力して[Enter]を押します。
・URLを入力します。192.168.20.100:80 (HTTPポート#80で設定されているため、[Pixel Stream_0]ノードからのプログラム出力がストリームされます)

この例では、Reality EngineのIPは192.168.20.100、ポートは80です。

・RealityのMultiviewer outputをストリーム配信したいデバイスで別のWebブラウザを開き、URLにReality EngineのIPを入力して[Enter]を押します。
・URLを入力します。192.168.20.100:81 (HTTPポート#81で設定されているため、Pixel Stream_1ノードからMultiviewer出力がストリーミングされます)

この例では、Reality EngineのIPは192.168.20.100、ポートは81です。

・あなたは、ブラウザで黒い画面が表示されます、ビデオストリームをアクティブにするには、黒い領域内の任意の場所をクリックして単にマウスを左クリックします。

画像235

・Webブラウザで最終的なストリーミング動画が表示されます。


[Pixel Stream_0]ノードからのリアリティプログラム出力。

画像236


[Pixel Stream_1]ノードからのReality Multiviewer出力。

画像237


​ストリーミングを停止するには、[Pixel Stream]ノードを選択し、Functionsセクションに移動してStop実行ボタンをクリックします。

画像238


[​Pixel Stream]ノードに"Server Stopped"というステータスが表示されます。

画像239

画像240

Start開始ボタンをクリックすると、再びストリーミングを開始することができます。


この記事が気に入ったらサポートをしてみませんか?