Virtual Camera プラグイン

バーチャル プロダクション向けの Virtual Camera プラグインの機能と使用方法について説明します。

Windows
MacOS
Linux

Virtual Camera プラグインを使用すると、ユーザーは Unreal Engine 4 (UE4) 内のバーチャル プロダクション環境内で iPad Pro を使って Cine Camera を利用できます。ARKit、または Vicon や Optitrack などの光学モーション キャプチャ システムを使うと、iPad の位置と向きを無線で PC に送信し、PC から iPad にビデオを送り返すことができます。

焦点距離絞り値フォーカス距離スタビライゼーション をタッチ操作で調整できます。また、Virtual Camera は、高解像度スクリーンショット の撮影、ウェイポイントの設定、カメラのモーションの記録など、バーチャル プロダクションに関連する各種の作業に利用できます。

次のビデオでは、Virtual Camera プラグインの機能の概要を紹介しています。このドキュメントの内容と概ね対応しています。

このドキュメントでは、ARKit に対応した iPad Pro を使うセットアップを重点的に紹介します。Live Link を使った Maya との接続についてのセクションもご覧ください。

依存関係

Virtual Camera プラグインは、別の UE4 プラグインである Remote Session と、それに関連する Unreal Remote 2 アプリ (App Store からダウンロード可能) に依存しています。

Remote Session プラグイン

Remote Session プラグインは、PC の Play In Editor (PIE) またはスタンドアローン ゲーム ウィンドウからモバイル デバイスへと IP 経由でビデオを送信し、モバイル デバイスからタッチ入力と ARKit のトラッキング データを受け取ります。このプラグインは、モバイル デバイスにデプロイせずにプレビューするために使用されます。また、Virtual Camera プラグインによっても使用されます。

Unreal Remote 2 アプリ

Unreal Remote 2 アプリは、モバイル デバイスと PC の間で IP 経由でデータを送受信するために、Remote Session プラグインと合わせて使用されます。このアプリを使用するためにユーザーが入力する必要があるのは PC の IP アドレスのみです。

また、デバイスの動きをトラッキングして、UE4 内で Apple ARKit プラグイン を有効にするために、ARKit prerequisites を満たす iOS デバイスが必要です。

必要なプラグインの有効化

まず、次のプラグインを有効にします。

  1. メイン エディタから、[Edit (編集)] - [Plugins (プラグイン)] の順に選択します。
    PluginsMenu-1.png

  2. [Virtual Production] タブから、[VirtualCamera] プラグインを有効にします。
    VirtualCameraPlugin.png

  3. エディタを再起動してプラグインを適用します。

エディタを再起動すると、 [VirtualCamera] プラグインが有効になります。このプラグインを有効にすると、ほかに 2 つのプラグイン、 Remote SessionApple ARKit が自動的に有効になります。これらは Virtual Camera のポテンシャルと機能を最大限に引き出すために必要です。

AppleARKit.png

RemoteSession.png

iOS デバイスのセットアップ

App Store から Unreal Remote 2 アプリを ARKit に対応した iOS デバイスにダウンロードして、アプリを起動します。下の画像のような画面が表示されます。

RemoteSessionApp.jpg

リモート サーバーの IP アドレスを入力して [Connect] ボタンを押し、接続を試行して確立する必要があります。IP アドレスは環境によって異なります。Windows マシンでは、 コマンドプロンプト を開いて IPCONFIG コマンドを実行すると IPv4 アドレスを取得できます。

接続が行われるのは UE4 によって再生セッションが開始されたときのみです。 Unreal Remote 2 アプリでは、キャンセル ボタンが押されるか、UE4 によって再生セッションが開始されるまで、「接続を試行中」の状態として表示されます。

UE4 プロジェクトのセットアップ

最初に UE4 プロジェクト内で VirtualCameraGameMode を割り当てる必要があります。

  1. プロジェクト内で [Settings (セッティング)] - [World Settings (ワールドセッティング)] の順に選択します。
    WorldSettings1.png

  2. [World Settings (ワールドセッティング)][Game Mode Override] で、[VirtualCameraGameMode] を割り当てます。
    WorldSettings2.png

これによって、Virtual Camera とバーチャル プロダクションでの利用に適した Game ModePawn が割り当てられます。

ARKit に対応した iPad をセットアップするために、 Unreal Remote 2 アプリが ARKit を利用できるようにするには、AR と XR のチャネルをプロジェクトで公開する必要があります。そのために、プロジェクトの DefaultEngine.ini ファイルに次の設定を追加します (プロジェクト ファイルを右クリックして [Properties (プロパティ)] から読み取り専用のフラグを解除してください)。

[RemoteSession]
+Channels=(Name=FRemoteSessionFrameBufferChannel,Mode=Write)
+Channels=(Name=FRemoteSessionInputChannel,Mode=Read)
+Channels=(Name=FRemoteSessionXRTrackingChannel,Mode=Read)

ARKit を使って移動をトラッキングするほかに、バーチャル ジョイスティックを使って移動することもできます。ただし、プロジェクトをデバイスにデプロイしていないので、バーチャル ジョイスティックをプロジェクトに公開する必要があります。そのために、[Edit (編集)] - [Project Settings (プロジェクト設定)] - [Input (インプット)] の順に選択してから、[Mobile] セクションの [Always Show Touch Interface] を有効にします。

画像をクリックしてフルサイズで表示

Virtual Camera の UI が引き伸ばされたり歪んだりしないように、 Game Viewport Settings をデバイスの解像度に合わせて変更するとよい場合があります。そのためには、メニューから [Edit (編集)] - [Editor Preferences (エディタの環境設定)] - [Play (再生)] の順に選択して、[Game Viewport Settings][Common Window Sizes (共通ウィンドウサイズ)] から解像度を選択します (隣にあるボタンで表示を横向きにするか縦向きにするか設定できます)。

画像をクリックしてフルサイズで表示

ネイティブのウィンドウ サイズでは再生が遅すぎるという場合に、ここでアスペクト比を維持しながらウィンドウの解像度を調整できます。たとえば、iPad Pro はアスペクト比が 4:3 なので、1280x960 を利用できます。

[Play (再生)] ボタンの隣のドロップダウン メニューから、 [New Editor Window (PIE)(新規エディタ ウィンドウ (PIE))] をクリックします。

NewEditorWindow.png

プロジェクトが起動して、Virtual Camera の UI がオーバーレイされて表示されます。

PlayInEditorUI.png

Play In Editor (PIE) のウィンドウは拡大しないでください。モニタの解像度によっては、望ましくない形で引き伸ばされてしまうことがあります。

Unreal Remote 2 アプリを実行している iOS デバイスが再生セッションに自動的に接続します。

LaunchedApp.jpg

Unreal Remote 2 アプリを使って、iOS デバイスでセッションを操作できます。

Virtual Camera の UI

このセクションでは、Virtual Camera の UI と設定について説明します。

VirtualCameraUIMain.png

1 - 可視性

左上隅にある のアイコンをタップすると、Virtual Camera の UI の表示と非表示を切り換えられます。どの要素を非表示にするか、 設定 のメニューで指定できます。

2 - スレートと FPS

画面上中央の UI は、記録の スレート名FPS の情報を表示しています。この UI は シーケンス レコーダー を使ってカスタマイズできます。デフォルトでは基本的なカメラとシーンの FPS を表示し、基本的な命名規則を採用します。命名規則は記録のテイクに使用されるほか、再生中にも使用されます。

3 - フォーカスのモード

UI の右上にはボタンが 3 つあります。この M、T、A のボタンを使用して、Virtual Camera の フォーカスのモード を設定します。

  • マニュアル (M) - デフォルトの設定です。スクリーンをタップしてフォーカスするたびに、フォーカス距離を定数値にします。

  • トラッキング (T) - この設定では、選択した 3D のポイントにフォーカスを合わせるようにフォーカス距離を更新し続けます。

  • オート (A) - この設定ではレチクルを表示します。タップしてスクリーン上を移動できます。レチクルの下にあるものにフォーカスを合わせるようにフォーカス距離を更新し続けます。

4 - 設定

画面右上隅の 歯車 のアイコンをタップすると設定メニューが開きます。

4.1 General Settings

GeneralSettings-1.png

[General Settings] (一般設定) タブでは、カメラの入力のトラッキング ソース ( [ARKit][Custom] (カスタム)、 [LiveLink])、再生時に秒を表示するかフレームを表示するか、機能を全体でのグローバル ブームからローカル ブームへの切り換え (非推奨) の設定が可能です。

4.2 Film Format / Aspect Ratio

FilmFormatAspectRatio.png

[Film Format / Aspect Ratio] (フィルムのフォーマット/アスペクト比) タブでは、事前定義された [Film Format] (フィルムのフォーマット) と [Matte] (アスペクト比、 Virtual Camera Pawn の CineCamera コンポーネントの配列でカスタマイズ可能)、 [Matte Opacity] (透明度) を設定できます。

4.3 Focus

Focus.png

[Focus] (フォーカス) タブでは、 [Focus Method] (フォーカスの方法。メインの UI の M/T/A ボタンと同じ)、[Focus Distance] (フォーカス距離) の表示単位、タッチ入力でフォーカスを操作する際の [Focus Plane] (フォーカス プレーン) の表示または非表示、そのプレーンの [Color] (色) を設定できます。

4.4 スタビライゼーション

Stabilization.png

[Stabilization] (スタビライゼーション) タブでは、トラッキングの入力での動きを抑制し、カメラの動きを滑らかにできます。位置と向きについてスタビライゼーションの値を設定できるほか、チャネル単位での調整も可能です。

トラッキングの入力の動きを抑制すると、若干のラグが生じます。

4.5 Axis Locking

AxisLocking.png

[Axis Locking] (軸の固定) タブでは、入力ソースが特定の軸に影響しないようにすることができます。軸をロックしたときのカメラの向きに基づきます。たとえば、 [Truck] (トラック) と [Boom] (ブーム) をロックすると、カメラは横方向にのみ移動します。直線的なドリー トラックを簡単に作成するために適した方法です。

デフォルトでは、 [Dutch] (ダッチ) をロックするとカメラのロールがゼロになり、水平レベルが維持されます。軸のロックを解除すると、カメラはその軸について入力ソースの位置と向きを引き継ぐようになります。想定どおりにカメラが移動および回転するようになります。

4.6 Motion Scale

MotionScale.png

[Motion Scale] (モーションのスケール) タブは入力ソースの動きのスケールを変えるために使用します。シーンを動き回る際の移動を増幅 (または減衰) させることができます。3 つの移動軸それぞれを調整できます。

[Truck] (トラック) と [Dolly] (ドリー) を連動させて、x-y 平面での移動を一致させることもできます。スクロール ホイールの隣にある二重矢印をタップすると、スケールの値が 10 増減します。ウィンドウの下にあるボタンを使うと、スケールを 1 にリセットできます。

4.7 View Freeze

ViewFreeze.png

[Freeze the View] (ビューのフリーズ) ボタンを押すと、入力ソースが無効になり、タブレットのビューが動かなくなります。ユーザーはその間に現実世界の側でタブレットを移動させることができます。 [Unfreeze the View] を押すと、入力ソースが再度有効になりますが、ビューのオフセットはそのままになります。

この機能は、ユーザーが現実世界との関係でシーンの位置を決め直したいときや、あるいは単に調査や撮影の際にタブレットを持ちやすくするために便利です。 [View Freeze] の画面下では、動かなくする軸を設定することもできます。

4.8 Visibility

Visibility.png

[Visibility] (可視性) タブでは、メインの UI で可視性のボタン (目のアイコン) がタップされたとき、UI のどの要素を表示し続けるかを選択できます。

4.9 Presets

Presets.png

[Presets] (プリセット) タブでは、特定の設定を保存して、別のセッション中に再度読み込むことができます。デフォルトでは、PIE またはゲームのウィンドウを閉じるときに、その時点でのカメラの設定を保存します。

5 - Focal Length

[Focal Length] (焦点距離) は UI の左上に表示されます。この領域をタップすると、ホイールが展開されます。レンズ キットはカスタマイズ可能です。

FocalLength_02.png

ホイールをスクロールすると、レンズを切り換えていくことができます。また、焦点距離をタップすれば、ただちにそのレンズに変更できます。VirtualCameraPawn の CineCamera コンポーネントにある Focal Length Options の配列を変更すると、レンズ キットをカスタマイズできます。

6 - Focus Distance and Aperture

フォーカス距離絞り値 は、UI の右上に表示されます。この 2 つはフォーカスの設定に使用されます。領域をタップすると 2 つのホイールが展開されます。1 つがフォーカス距離、もう 1 つが絞り値を操作するためのものです。

FocusAperture.png

フォーカス距離 (左のホイール) を変更する方法は複数あります。まず、ホイールをスクロールして変更できます。二重矢印をタップすると、3m (約 10 フィート) 単位で増減させることができます。あるいは、ビューポート内でどこかをタップして、3D 空間のその点にフォーカスできます。ホイールを 2 回タップすると開いたり閉じたりできます。

タッチによるフォーカスの指定が有効なのは、 [Focus] メニューが開いている (ホイールが表示されている) ときのみです。 [Focus] メニューが閉じている場合、タッチ操作はフォーカスに影響しません。

絞り値 (右のホイール) をスクロールすると、カスタマイズ可能な一覧に従って 絞り値 が変化します (デフォルトでは 1 段ごとの値になります)。また、値を直接タップすると、 絞り値 がその値になります。

絞り値 は被写界深度 (DoF) に影響します。絞り値が低くなると、被写界深度は浅くなります。ホイールを 2 回タップすると開いたり閉じたりできます。 VirtualCameraPawn の CineCamera コンポーネントにある Aperture Options の配列を変更すると、絞り値のキットをカスタマイズできます。

7 - 記録と記録のサブメニュー

記録 ボタンをタップすると、新しい記録が開始されます。もう一度タップすると記録が停止します。 記録 ボタンの隣にある矢印をタップすると 記録のサブメニュー が開きます。

RecordSubMenu.png

現在、このサブメニューには高解像度のスクリーンショットの撮影ボタン (カメラ 1 台のアイコン) と、以前のスクリーンショットを読み込むボタン (複数のカメラのアイコン) があります。スクリーンショットを読み込むと、カメラがその撮影場所に移動して (変化するのは位置のみで、向きは変わりません)、場所に合わせて 焦点距離絞り値 が調整されます。

Screenshot.png

サブメニューの スクリーンショット ボタンを長押しすると、 記録 ボタンと スクリーンショット ボタンが入れ替わります。この機能は、場所を調査していて、カメラの動きを記録する必要がないときに便利です。それからサブメニューの スクリーンショット ボタンを長押しすると、元の 記録 ボタンに戻ります。

8 - アナログ スティック

アナログ スティック はフレームの下にドックされています。ドックされているグリップのいずれかをタップすると表示され、利用できるようになります。

thumbsticks.png

左のアナログ スティックは、その時点でのカメラの向きに基づいて、カメラを前後左右に動かします。右のアナログ スティックは、グローバル空間でカメラをブーム (上下に水平移動) させます。

9 - パフォーマンス

以前に記録したカメラの動き、またはアニメーションを伴うレベル シーケンスを読み込むには、 [Performances] ボタンをタップして、パフォーマンスの記録のウィンドウを開きます。

Performances_01.png

シーケンスが記録されていれば、それらもここに表示されます。シーケンスをクリックすると再生が始まり、 再生のコントロール が表示されます。

レベル シーケンスに Camera Cut トラックが含まれる場合、シーケンサーがカメラ ビューの操作を行い、Virtual Camera によるトラッキングが行われないようにします。この場合、記録もできません。

Performances_02.png

パフォーマンスが読み込まれると、タイムラインと再生コントロールが表示されます。タイムラインを使ってシーケンスをスクラブできます。再生コントロールを使うと、再生、逆再生、最初のフレームまたは最後のフレームへのジャンプが可能です。また、メイン ビューをタッチしてスワイプすると、アニメーションのタイムラインを細かくスクラブできます。

10 - ウェイポイントとウェイポイントのサブメニュー

右下隅の青いボタンをタップすると、 ウェイポイント が作成されます。これは空間内の場所を保存したものです。マップ内でテレポートするために便利です。 ウェイポイント ボタンの隣にある矢印をタップすると ウェイポイントのサブメニュー が開きます。

WaypointSubMenu.png
展開する ウェイポイント のサブメニューには、 ホーム ボタンがあります。このボタンは、すべてのオフセットを削除して、ホームとして指定された ウェイポイント にカメラをテレポートさせます。ホームとして指定された ウェイポイント がない場合、カメラは Player Start にテレポートして戻る (ARKit の場合) か、カメラをリセットしてモーション キャプチャ ボリュームと 1 対 1 で対応させます (LiveLink トラッキングの場合)。

ウェイポイント サブメニュー の 2 つ目のボタンは ウェイポイント の読み込みボタンです。ここで ホームのウェイポイント を指定することもできます。

Live Link のセットアップ

Live Link をセットアップすると、ユーザーは実行中の Maya のインスタンスから Virtual Camera を制御できます。Maya で Live Link をテストするには、プロジェクトで ( Virtual Camera プラグインRemote Session プラグイン に加えて) 次のプラグインを有効にする必要があります。

[Edit (編集)] - [Plugins (プラグイン)] の順に選択してから、次のプラグインを有効にします。

  • [Animation] から、[Live Link] プラグインを有効にしてエディタを再起動します。

    LiveLinkPugin.png

また、Live Link による Unreal Engine 4 の Maya への接続 のドキュメント ページにある手順に従って Live Link をセットアップし、Maya と Unreal Editor の間で接続を確立する必要があります。

実行する必要があるのは、同ドキュメント内の Live Link プラグインの有効化と Maya Live Link の有効化の手順のみです。それ以降の手順は、バーチャル プロダクションと Virtual Camera の利用には必要ではありません。

Live Link をセットアップして、Maya が UE4 に接続したら、次の手順を実行します。

  1. テスト用に、Virtual Camera Anim FBX アセットを Maya にインポートします。

  2. (1) [Outliner] を表示して、(2) [Root] を選択して、[Maya Live Link UI] ウィンドウで [Add Subject] ボタンをクリックします。
    MayaRoot.png

  3. UE4 内で [Window (ウィンドウ)] - [Live Link] の順に選択して、Live Link の接続ウィンドウを開きます。
    LiveLinkWindow.png

  4. [Add (追加)] - [Message Bus Source] の順にクリックして、PC の名前と関連付けられている Source を選択して [Ok] をクリックします。
    LiveLinkMayaSource.png

また、VirtualCameraPlayerController ブループリント内で [Input Source] を Live Link に設定し、[Live Link Target Name] は Maya からの Subject ストリーミングを参照するように指定する必要があります。

そのために、次の手順を実行します。

  1. プロジェクトの [Content Browser (コンテンツブラウザ)][View Options (表示オプション)] で、 [Show Engine Content (エンジンのコンテンツを表示)][Show Plugin Content (プラグイン コンテンツを表示)] を有効にします。
    ViewOptions-1.png

  2. VirtualCameraContent フォルダで、VirtualCameraPlayerController ブループリントを開きます。
    VirtualCameraContent-1.png

  3. [Class Defaults][Camera Settings] で、[Input Source][Live Link] に、[Live Link Target Name]「Maya」 (Maya での Subject 名) に設定します。
    SetInputSourceToMaya.png

Play セッションを開始すると、Live Link からストリーミングされるデータを Virtual Camera が受け取ります。また、Root ボーンの動きはすべて Virtual Camera に適用されます。

Virtual Camera サンプル プロジェクト

Epic Games Launcher の [Learn (ラーニング)] タブの [Engine Feature Samples] セクションに、 [Virtual Camera (バーチャル カメラ)] プロジェクトがあります。このプロジェクトには、サンプルのシーンが 1 つあり、Virtual Camera プラグインと合わせて使用するようにセットアップされています。

VirtualCameraProject.png

必要なプラグインはデフォルトで有効になり、Virtual Camera Game Mode が割り当てられて、使う準備ができています。ARKit 対応の iPad または光学モーション キャプチャ システムを使うと、シーンを撮影しながら、仮想環境を移動するときの動きをトラッキングできます。

Virtual Camera プラグインを使って iPad でショットを記録する簡単な例を次に示します。

ショットの記録を停止すると、 「Processing Recording」 というメッセージが表示されます。

Virtual Camera プロジェクトは Unreal Editor での使用のみを意図したものです。Unreal Engine でパッケージしてランタイム時に使用することはできません。

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信