概要
バーチャル カメラ コンポーネント (VCamComponent) は、Unreal Engine でカスタム バーチャル カメラを構築するための基本コンポーネントです。
VCamComponent を使って、ユーザーは モディファイア と 出力プロバイダー を追加することで、Unreal Engine 内部でシネカメラを動かすことができます。
目標
このクイック スタート ガイドは、バーチャル カメラ コンポーネントを使用してバーチャル カメラを作成するための基本的な手順を説明するために作成されました。
目的
このガイドを一通り修了すると、次の内容が理解できます。
- シーンにカメラを配置し、VCamComponent を追加する方法。
- カメラにモディファイアを追加してビヘイビアをカスタマイズする方法。
- モディファイアを有効または無効にする基本キーの入力を追加する方法。
- 様々な出力プロバイダを使用する方法。
1 - 必要な設定
始める前に、プロジェクト内で適切なプラグインを有効にする必要があります。
-
[Settings (設定)] > [Plugins (プラグイン)] を選択し、[Plugins (プラグイン)] メニューを開きます。
-
Virtual Camera プラグインを検索して 有効 にします。
-
エディタを再起動します。
このセクションの結果
バーチャル カメラの作成を開始する準備が整いました。
2- バーチャル カメラの作成
Virtual Camera Component は Cine Camera コンポーネントをもつアクタと機能します。この操作ガイドでは便宜上 Cine Camera アクタを使用します。
-
[Place Actors (アクタの配置)] パネルで、[Cinematic (シネマティック)] カテゴリを選択して、[Cine Camera Actor (Cine カメラ アクタ)] をクリックして、シーンにドラッグします。
-
Cine カメラ アクタを選択した状態で、[Details (詳細)] パネルに移動し、CameraComponent を選択 します。
-
[+Add] ボタンをクリック し、VCam コンポーネントを検索して追加します。
VCam コンポーネントがカメラ コンポーネントの子になっていることを確認します。
-
VCam を選択してクリックしコンポーネントを追加します。
-
シーン内の Cine カメラ アクタを移動し、好みに合わせて 現在のカメラ設定 を調整します。次の例では、カメラを動かしてシーン内のミーアキャットをフレームに合わせて、この被写体に常に焦点が合うようにカメラを調整しました。
カメラ設定の調整の詳細については、文書ページの「Cine カメラ アクタ」で学ぶことができます。
-
カメラ アクタを選択したら、コンポーネントの階層から VCam コンポーネントを選択します。
-
[Virtual Camera] セクションに利用できるプロパティが表示されました。
以下のプロパティがあります。
プロパティ | 説明 |
---|---|
Enabled | バーチャル カメラ コンポーネント全体の有効、無効を切り替えます。 |
Role | 仮想カメラの役割。この値が設定され、エディタに設定された対応するタグがこの値と一致する場合、このカメラはマルチユーザー セッションに接続された場合の送信者であり、権限者となります。 |
Live Link Subject | これは Live Link プラグイン経由で使用される被写体です。コンポーネントは被写体のカメラ情報を使ってシーンでカメラを操作します。 |
Lock Viewport to Camera | ビューポートは、バーチャル カメラの視点からレンダリングされます。 |
Disable Component when Spawned by Sequencer | バーチャル カメラ コンポーネントがシーケンスによってスポーンされると無効化します。これにより、Spawnable として設定された VCam コンポーネントを含むシーケンスを再生するときに、2 つの VCam コンポーネントが同時にアクティブになる可能性があります。 |
Target Viewport | コンポーネントによってビューをレンダリングするために使用されるエディタ ビューポートです。 |
Output Providers | すべての出力先端末がリストされています。 |
Modifier Context | すべてのモディファイアで共有される任意のデータを含む任意のオブジェクト。 |
Modifier Stack | コンポーネントに追加されたすべてのモディファイアがリストされています。 |
このセクションの結果
シーンに Cine Camera アクタを配置し、バーチャル カメラ コンポーネントを追加しました。モディファイア を追加してカメラをカスタマイズする準備ができました。
3 - モディファイアを追加する
モディファイア は、カスタム エフェクトやビヘイビアを追加したり、実際のカメラの動作をシミュレートしたりすることで、カメラを操作できます。ブループリントや C++ を使用してカスタム モディファイアを作成し、それらをスタックに追加して、さまざまな効果をレイヤー化できます。
スタックのモディファイアは上から下に向かって実行され、効果はその順序で適用されます。
最初のモディファイアを作成する
-
コンテンツ ドロワー 内を右クリックし、[Virtual Camera (バーチャル カメラ)] カテゴリの下にある [VCam Modifier (VCam モディファイア)] を選択します。
-
ブループリントに「VCM_LookAt」と名付けて、ダブルクリックで開きます。
-
[My Blueprint] タブに行き、Variables の隣の プラス記号 (+) をクリックして新規変数を追加します。新しい変数に「TargetActor」と名前を付けます。
-
TargetActor を選択して、[Details] パネルに移動し、 [Variable Type (変数の型)] ドロップダウンをクリックします。Actor を検索して Object Reference を選択します。
-
[Instance Editable (インスタンスを編集可能)] チェックボックスを有効にして、ブループリントを コンパイル して、保存 します。
-
TargetActor を イベント グラフ にドラッグして、Get TargetActor を選択します。ノードからドラッグし、以下のように Is Valid を検索して選択します。
-
Event on Apply ノードを Is Valid ノードに接続します。
-
Event On Apply ノードの Camera Component ピンからドラッグして、Get World Location を検索して選択します。
-
TargetActor からドラッグし、Get Actor Location を検索して選択します。
-
GetWorldLocation ノードの Return Value からドラッグし、 Find Look At Rotation を検索して選択します。
-
Get World Location ノードの Return Value ピンを Find Look at Rotation ノードの Target ピンに接続します。
-
Event On Apply ノードの Camera Component ピンからドラッグして、Set World Rotation を検索して選択します。
-
Is Valid ノードの Is Valid ピンを Set World Rotation ノードに接続します。Find Look at Rotation ノードの Return Value ピンを Set World Rotation ノードの New Rotation ピンに接続します。
-
ブループリントをコンパイルして保存します。
スタックへモディファイアを追加する
カスタム モディファイアを モディファイア スタック に追加する準備が整いました。
-
[Place Actors (アクタを配置)] タブの Basic カテゴリで [Sphere] をクリックしてレベルにドラッグします。
-
カメラ アクタを選択してコンポーネント階層内から VCam コンポーネントを選択します。
-
モディファイア スタックの プラス記号 (+) をクリックして、リストにエントリを追加します。
-
「Look At」などモディファイアの名前を入力します。名前を追加すると、後でブループリントでこのモディファイアを参照することができるようになります。
-
[Generated Modifier (生成されたモディファイア)] の ドロップダウンの矢印 をクリックし、一覧から VCM_LookAt を選択します。
-
モディファイア の [Default] セクションを展開して、 [Target Actor] ドロップダウンをクリックします。レベルに追加した Sphere アクタを選択します。
-
レベルで Sphere アクタを選択して動かします。カメラが Sphere に向かって回転するのがわかります。
このセクションの結果
このセクションでは、ブループリントを使用してカスタム カメラ モディファイアを作成する方法について学習しました。
また、カスタム モディファイアを モディファイア スタック に追加して、エディタ内でバーチャル カメラを操作する方法についても学習しました。
4 - Virtual Camera 入力システムを使用する
現在の Virtual Camera 入力システムはプレースホルダーです、これは今後さらに高度なバージョンに置き換えられます。
Virtual Camera コンポーネント は、モディファイア内で Editor Input Events を使用して、ユーザーに追加のコントロールを提供できます。
ここでは、このシステムを使用して、モディファイアに機能を追加する方法について説明します。
目標
このセクションの目標は、モディファイアに キー入力 を追加して、そのキーを押すとエフェクトをオンオフできるようにすることです。
入力イベントの作成
-
コンテンツ ドロワー でダブルクリックして VCM_LookAt ブループリントを開きます。
-
イベントグラフ を右クリックし、Get VCamInputSubsystem 関数を検索、選択します。
-
VCam Input Subsystem ノードからドラッグし、Bind Key Up Event を検索、選択します。Event On Initialize ノードを Bind Key Up Event ノードにつなぎます。
-
赤い Delegate ピンからドラッグして、Add Custom Event を検索、選択します。新しいカスタム イベントに「ToggleActivation」と名付けます。
-
Bind Key Up Event ノードで キーボード アイコン をクリックして S キーを押してイベントへバインドします。ドロップダウン矢印 を押して、一覧から目的のキーを選択することもできます。
-
イベント グラフ 内で右クリックして Virtual Camera カテゴリの Set Enabled を選択します。ToggleActivation ノードを Set Enabled ノードに接続します。
-
イベント グラフ 内で右クリックして Virtual Camera カテゴリの Is Enabled を選択します。
-
Is Enabled ノードからドラッグし、 Not を検索して選択します。
-
Not ノードを Set Enabled ノードの New Enabled ピンに接続します。
-
シーンに戻りレベルで Sphere アクタを動かしながら、S を押してエフェクトのオンオフを切り替えます。
バーチャル カメラ入力システムは、ビューポートに焦点が合っていない場合でも、ユーザーがキーを押すたびに実行されます。ユーザーが他の目的でこのキーを押した場合に競合が発生します。たとえば、ユーザーが コンテンツ ドロワー でアセットの名前を変更し、文字 S を使用すると、このイベントが実行されます。
-
モディファイアが誤ってアクティブ化されるのを防ぐために、入力の一部として Shift キー を追加するなど、コードにセーフガードを追加できます。
-
VCM_LookAt に戻って、以下のように ToggleActivation イベントと Set Enabled ノードの間に Branch ノードを追加します。
-
Toggle Activation ノードの Key Event ピンからドラッグして Get Input from Key Event 関数を検索、選択します。
-
ノードからドラッグして、Is Shift Down 関数を検索、選択します。
-
最後に、Is Shift Down ノードを以下のようにノードを Branch ノードの Condition ピンに接続します。
-
Shift キーが押されている状態で S キーを押した場合にのみ、モディファイアが実行されるようになりました。
このセクションの結果
このセクションでは、S キーの押下時に実行される入力イベントを追加しました。このイベントは、モディファイアのエフェクトをオンオフします。さらに、ユーザーが他の目的で S キーを押した際に競合を防ぐための保護手段として Shift キーを追加しました。
5 - 出力プロバイダを追加する
Output Provider (出力プロバイダ) システムは、ビューポート、リモート セッション プロトコルを使用する端末、Composure プラグイン、およびサポートされている各種ビデオ キャプチャ カードなど様々なプロバイダにバーチャル カメラの出力をルーティングするために使用されます。
出力プロバイダ リストは、常に上から順に実行されます。
バーチャル カメラ コンポーネントに用意されている利用可能な出力プロバイダを見てみましょう。
ビューポート出力プロバイダ
このプロバイダは、エディタのメイン ビューポートにバーチャル カメラのビューを直接出力します。
-
VCam コンポーネントを選択し 出力プロバイダ の横にある プラス記号 (+) をクリックして、リストに新規プロバイダを追加します。
-
リストから [Viewport Output Provider (ビューポート出力プロバイダ)] オプションを選択します。
-
異なるプロバイダ間で共有されるプロパティを確認できるようになりました。
プロパティ 説明 Is Active プロバイダを有効または無効にします。 UMG Overlay 画像出力の上にオーバーレイされる UMG ウィジェット。 Use Override Resolution 出力画像にカスタム解像度を設定します。解像度固定の外部端末を使用する場合に特に便利です。 Override Resolution 出力画像に使用される固定された解像度です。 -
例えば [UMG Overlay] ドロップダウンをクリックし、TestUMG を検索、選択して、ビューポートにテスト ウィジェット を追加します。
-
最後に、チェックボックスをクリックして、出力プロバイダを Active (アクティブ) に設定します。
-
シーンのメイン ビューポートにオーバーレイが表示されるようになりました。これは、特定のニーズに合わせてカメラ出力をカスタマイズする方法の例です。
Unreal リモート出力プロバイダ
このプロバイダは、リモート セッション プロトコル経由で接続したリモート端末にメイン エディタ ビューポートを出力します。この方法で接続された互換性のあるデバイスはすべて、この目的に使用できます。
次に、リモート セッションを使用して外部デバイスを接続するためにプロジェクトを設定します。
-
[Settings (設定)] > [Project Settings (プロジェクト設定)] を開きます。
-
[UDP Message (UDP メッセージ)] セクションに移動して、末尾にポート番号を表す :0 を付加したお使いのコンピュータの IP アドレスを [Unicast Endpoint (ユニキャスト エンドポイント)] に設定します。
-
[Rendering (レンダリング)] セクションに移動して、[Default Settings (デフォルト設定)] で矢印クリックして詳細設定を開きます。[Frame Buffer Pixel Format (フレーム バッファ ピクセル形式)] を 8bit RGBA に設定します。
-
エディタを再起動します。
iOS Device Setup
App Store より VCAM App を ARKit 対応の iOS デバイスにダウンロードし、アプリを起動します。

デバイスの接続
-
バーチャル カメラ アクタの VCam コンポーネントを選択して、出力プロバイダのドロップダウン リストから [Unreal Remote Output Provider (Unreal リモート出力プロバイダ)] を選択します。
-
デバイス上で Unreal Remote 2 アプリを開きます。コンピュータの IP アドレスを入力し、[Connect (接続)] ボタンをタップすると接続を試行、確立します。
-
メイン エディタのビューポートがデバイスの画面にミラーリングされるようになりました。
メディア出力プロバイダ
Media Output Provider (メディア出力プロバイダ) は 、Black Magic やAJA のビデオ キャプチャ カードなどの Unreal Media Framework (メディア フレームワーク) でサポートされているデバイスにバーチャル カメラの出力を送信します。
選択すると、出力パラメータを指定するために使用する Output Config (出力コンフィグ) が選択できるようになります。

Unreal Media Framework の使用方法の詳細については、メディア フレームワークのドキュメント ページを参照してください。
コンポジット出力プロバイダ
Composure Output Provider (コンポジット出力プロバイダ) は、バーチャル カメラの出力を、コンポジット プラグイン が直接使用できる レンダーターゲット に送信します。さらに、カメラのビューをレンダリングする Composure レイヤー ターゲット を指定することもできます。

Composure プラグインの使用方法の詳細については、「Composure によるリアルタイム コンポジット」を参照してください。
このセクションの結果
このセクションでは、バーチャル カメラ コンポーネントに様々な出力プロバイダを追加する方法を学習しました。これで、バーチャル カメラを使用して、エディタ ビューポートまたは外部デバイスにリモート セッション プロトコル経由で直接出力できるようになりました。
また、Unreal メディア フレームワークと Composure プラグインで処理される出力を送信する方法についても学習しました。
次のステップ
バーチャル カメラを自分で作成できるようになりました。次の「バーチャル カメラ アクタのクイックスタート」では、Unreal Engine に収録されているプレビルドのバーチャル カメラ アクタを見てみましょう。