バーチャル カメラ コンポーネントのクイック スタート

バーチャル カメラ コンポーネントは、Unreal Engine でカスタムバーチャル カメラを構築するための基盤を提供する基本アーキテクチャです。

Windows
MacOS
Linux

概要

バーチャル カメラ コンポーネント (VCamComponent) は、Unreal Engine でカスタム バーチャル カメラを構築するための基本コンポーネントです。

VCamComponent を使って、ユーザーは モディファイア出力プロバイダー を追加することで、Unreal Engine 内部でシネカメラを動かすことができます。

目標

このクイック スタート ガイドは、バーチャル カメラ コンポーネントを使用してバーチャル カメラを作成するための基本的な手順を説明するために作成されました。

目的

このガイドを一通り修了すると、次の内容が理解できます。

  • シーンにカメラを配置し、VCamComponent を追加する方法。

  • カメラにモディファイアを追加してビヘイビアをカスタマイズする方法。

  • モディファイアを有効または無効にする基本キーの入力を追加する方法。

  • 様々な出力プロバイダを使用する方法。

1 - 必要な設定

始める前に、プロジェクト内で適切なプラグインを有効にする必要があります。

  1. [Settings (設定)] > [Plugins (プラグイン)] を選択し、[Plugins (プラグイン)] メニューを開きます。

    Plugins menu

  2. Virtual CameraLive LinkRemote Session プラグインをそれぞれ検索して有効にします。

    Virtual Camera

    Live Link

    Remote Session

  3. エディタを再起動します。

このセクションの結果

バーチャル カメラの作成を開始する準備が整いました。

2- バーチャル カメラの作成

  1. [Place Actors (アクタの配置)] パネルで、[Cinematic (シネマティック)] カテゴリを選択して、[Cine Camera Actor (Cine カメラ アクタ)] をクリックして、シーンにドラッグします。

    Drag the Cine Camera Actor

  2. Cine カメラ アクタを選択した状態で、[Details (詳細)] パネルに移動し、CameraComponent を選択 します。

    Select the CameraComponent

  3. [Add Component (コンポーネントを追加)] ボタンをクリック し、VCam コンポーネントを検索して追加します。

    Search for VCam

    VCam コンポーネントがカメラ コンポーネントの子になっていることを確認します。

  4. 選択したコンポーネントをクリックして追加します。

  5. シーン内の Cine カメラ アクタを移動し、好みに合わせて 現在のカメラ設定 を調整します。次の例では、カメラを動かしてシーン内のミーアキャットをフレームに合わせて、この被写体に常に焦点が合うようにカメラを調整しました。

    Adjust the camera

    カメラ設定の調整の詳細については、文書ページの「Using Cine Camera Actors (Cine カメラ アクタを使用する)」で学ぶことができます。

  6. カメラ アクタを選択したら、コンポーネントの階層から VCam コンポーネントを選択します。

    Select the VCam component

  7. [Virtual Camera] セクションに利用できるプロパティが表示されました。

    Virtual Camera properties

以下のプロパティがあります。

プロパティ

説明

Enabled

バーチャル カメラ コンポーネント全体の有効、無効を切り替えます。

Live Link Subject

これは Live Link プラグイン経由で使用される被写体です。カメラのシーン内での配置には被写体のトランスフォームが使用されます。

Lock Viewport to Camera

ビューポートは、バーチャル カメラの視点からレンダリングされます。

Disable Component when Spawned by Sequencer

バーチャル カメラ コンポーネントがシーケンスによってスポーンされると無効化します。

Target Viewport

コンポーネントによってビューをレンダリングするために使用されるビューポートです。

Output Providers

すべての出力先端末がリストされています。

Modifier Context

すべてのモディファイアで共有される任意のデータを含むオブジェクト。

Modifier Stack

コンポーネントに追加されたすべてのモディファイアがリストされています。

このセクションの結果

シーンに Cine Camera アクタを配置し、バーチャル カメラ コンポーネントを追加しました。モディファイアを追加してカメラをカスタマイズする準備ができました。

3 - モディファイアを追加する

モディファイアは、カスタム エフェクトやビヘイビアを追加したり、実際のカメラの動作をシミュレートしたりすることで、カメラを操作できます。ブループリントや C++ を使用してカスタム モディファイアを作成し、それらをスタックに追加して、さまざまな効果をレイヤー化できます。

スタック内のモディファイアは追加した順序で実行されるため、モディファイアの追加手順に気を付けてください。

最初のモディファイアを作成する

  1. コンテンツ ブラウザ内を右クリックし、[Virtual Camera (バーチャル カメラ)] カテゴリの下にある [VCam Modifier (VCam モディファイア)] を選択します。

    Create the virtual camera modifier

  2. ブループリントに VCM_Sine と名付けて、ダブルクリックで開きます。

    Name the Blueprint VCM_Sine

  3. イベント グラフ 内に、Event On InitializeEvent On Apply という 2 つの既定ノードが確認できます。モディファイア スタックにモディファイアが追加されると、Event On Initialize が 1 回呼び出されます。このノードは、ブループリントの Construction Script) ノードに似ています。Event On Apply ノードは、ブループリントの Event Tick ノードと同様に、すべてのフレームで実行されます。

    Default nodes

  4. イベント グラフ 内で右クリックして Now を検索、選択して、このノードをグラフに追加します。

    Now node

  5. Return Value (戻り値) のピンからドラッグして、Promote to variable を選択します。変数に「StartTime」と名付けます。

    Create the StartTime variable

  6. 次のように、Event On Initialize ノードに StartTime を接続 します。

    Connect StartTime to Event On Initialize

  7. Event On Apply ノードの、Camera Component ピンからドラッグして、Get World Location を選択して適切なノードを作成します。

    Select Get World Location

  8. Get World Location ノードの Return Value ピンを右クリックして、Split Struct Pin を選択します。

    Select Split Struct Pin

  9. Camera Component ピンからドラッグして、Set World Location を検索して選択します。以下のようにこのノードを Event On Apply に接続します。

    Select Set World Location

  10. Set World Location ノードから New Location ピンを右クリックし、Split Struct Pin を選択します。X と Y の値を次のように接続します。

    Select Split Struct Pin

  11. StartTime 変数を イベント グラフ にドラッグして、Get StartTime を選択します。前回同様、 グラフに Now ノードを追加します。

  12. 以下のように両ノードの値を減算して、結果のピンからドラッグして、Get Total Seconds を検索、選択します。

    Select Get Total Seconds

  13. Get Total Seconds ノードからドラッグして、float * float を検索、選択します。

    Select float * float

  14. イベント グラフ を右クリックして、Get Pi を検索、選択します。Pi ノードを乗算ノードに接続します。

    Select Get Pi

    Connect Pi to the multiplication node

  15. 乗算 ノードの Add pin をクリックして、別の入力を追加します。

  16. FrequencyScale という新しい浮動小数を作成し、乗算 ノードに接続します。ブループリントをコンパイルし、FrequencyScale のデフォルト値として「1」と入力します。

  17. 以下のように 乗算 結果からドラッグして Sin (Radians) を検索、選択します。

    Select Sin (Radians)

  18. Sin ノードからドラッグして、Map Range Clamped を検索、選択します。

  19. 次のように「Wave Minimum」および「Wave Maximum」と名付けた 2 つの浮動小数を作成、接続します。

    Map Range Clamped

  20. ブループリントをコンパイルし、Wave Minimum のデフォルト値を -10 にします。次に、Wave Maximum のデフォルト値を 10 に設定します。

  21. イベントグラフ を右クリックして、Addiction ノードを検索、選択します。Get Actor Location ノードの Z 値と Map Range Clamped ノードの結果を次のように接続します。

  22. 加算 ノードの結果を Set Actor Location ノードの Z 値に接続します。

    Add Z values

  23. 以下のように、[Variables (変数)] セクションに移動して、すべての浮動小数変数の のアイコンをクリックして、変数をパブリックにします。

    Set variables to public

  24. ブループリントをコンパイルして保存します。

スタックへモディファイアを追加する

カスタム モディファイアを モディファイア スタック に追加する準備が整いました。

  1. カメラ アクタのコンポーネント階層内から VCam コンポーネントを選択します。

  2. モディファイア スタックの プラス記号 (+) をクリックして、リストにエントリを追加します。

    Add modifier to the stack

  3. [Name] に「Sine Movement」を追加して、[Enabled] のチェックを外します。

    Add the name Sine Movement

  4. [Generated Modifier (生成されたモディファイア)]ドロップダウン 矢印をクリックし、一覧から VCM_Sine を選択します。

    Select VCM_Sine from the list

  5. [Enabled] にチェックを入れて、モディファイアの動作を確認します。カメラ アクタがシーン内を移動しているのが確認できるはずです。

    VCC_SineMovement.gif

  6. モディファイアがアクティブならば、Generated Modifier 行を展開すると公開されているパブリック変数が表示されます。これらの値を修正すると、その変更が即座に表示されるようになりました。

    Expand the Modifier public variables

このセクションの結果

このセクションでは、ブループリントを使用してカスタム カメラ モディファイアを作成する方法について学習しました。On InitializeOn Apply イベントおよび、それらを使用してカスタム ビヘイビアを作成する方法を学習しました。

また、カスタム モディファイアを モディファイア スタック に追加して、エディタ内でバーチャル カメラを操作する方法についても学習しました。

4 - 入力システムの使用

現在の入力イベントの実装はプレースホルダーであり、将来より高度なバージョンに置き換えられます。

バーチャル カメラ コンポーネントは、モディファイア内で直接エディタ入力イベントを使用して、ユーザーに追加のコントロールを提供できます。

ここでは、このシステムを使用して、モディファイアに機能を追加する方法について説明します。

目標

このセクションの目標は、モディファイアにキー入力を追加して、そのキーを押すとエフェクトをオンオフできるようにすることです。

入力イベントの作成

  1. VCM_Sine ブループリントを開きます。

  2. Event On Apply からドラッグして、Branch ノードを作成します。True ピンを SetWorldLocation ノードに接続します。

  3. 新規ブール変数を作成し、Active と命名します。次のように、この変数を Branch ノードに接続します。

    Add the Active branch

  4. コンパイルして保存します。

  5. イベントグラフ を右クリックし、Get VCamInputSubsystem 関数を検索、選択します。

    Get VCam Subsystem

  6. VCam Input Subsystem ノードからドラッグし、Bind Key Up Event を検索、選択します。

    Bind KeyUp Event

  7. 赤い Delegate ピンからドラッグして、Add Custom Event を検索、選択します。新しいカスタム イベントに「ToggleActivation」と名付けます。

    Add Custom Event

    Toggle Activation

  8. Active 変数を イベントグラフ までドラッグし、Set Active を選択します。ToggleActivation の実行ピンを Set Active ノードに接続します。

  9. もう 1 つの Active 変数を イベントグラフ にドラッグして、Get Active を選択します。Get Active ノードからドラッグして、Not を検索、選択します。次のように Not ノードを Active ピンに接続します。

    Toggle the Active variable

  10. Bind Key Up Event ノードで、キーボード のアイコンをクリック して、[S] キーを押してイベントにバインドします。ドロップダウン矢印 を押して、一覧から目的のキーを選択することもできます。

    Bind S key

    S key bound

  11. シーンに戻り VCM_Sine モディファイアがアクティブな状態で、「S」キーを押してエフェクトのオンオフを切り替えます。

  12. このイベントは、ユーザーが [S] キーを押すたびに実行されるため、ユーザーが他の目的でこのキーを押した場合に競合が発生します。たとえば、ユーザーがコンテンツ ブラウザでアセットの名前を変更し、文字 S を使用すると、このイベントが実行されます。これを防ぐにはコードに追加の安全対策を追加します。

  13. 以下のように ToggleActivation イベントと Set Active ノードの間に Branch ノードを追加します。

    Add a Branch node

  14. Key Event ピンからドラッグして Get Input from Key Event 関数を検索、選択します。

    Get input event

  15. ノードからドラッグして、Is Shift Down 関数を検索、選択します。

    Add the Is Shift Down node

  16. 最後は以下のようにノードを Branch に接続します。

    Connect the node to the Branch

  17. Shift キーが押されている状態で S キーを押した場合にのみ、イベントが実行されるようになりました。

このセクションの結果

このセクションでは、S キーの押下時に実行される入力イベントを追加しました。このイベントは、モディファイアのエフェクトをオンオフします。さらに、ユーザーが他の目的で S キーを押した際に競合を防ぐための保護手段として Shift キーを追加しました。

5 - 出力プロバイダを追加する

Output Provider (出力プロバイダ) システムは、ビューポート、リモート セッション プロトコルを使用する端末、Composure プラグイン、およびサポートされている各種ビデオ キャプチャ カードなど様々なプロバイダにバーチャル カメラの出力をルーティングするために使用されます。

出力プロバイダ リストは、常に上から順に実行されます。

バーチャル カメラ コンポーネントに用意されている利用可能な出力プロバイダを見てみましょう。

ビューポート出力プロバイダ

このプロバイダは、エディタのメイン ビューポートにバーチャル カメラのビューを直接出力します。

  1. VCam コンポーネントを選択し 出力プロバイダ の横にある プラス記号 (+) をクリックして、リストに新規プロバイダを追加します。

    Add a Provider to the list

  2. リストから [Viewport Output Provider (ビューポート出力プロバイダ)] オプションを選択します。

    Viewport Output Provider

  3. 異なるプロバイダ間で共有されるプロパティを確認できるようになりました。

    プロパティ

    説明

    Is Active

    プロバイダを有効または無効にします。

    UMG Overlay

    画像出力の上にオーバーレイされる UMG ウィジェット。

    Use Override Resolution

    出力画像にカスタム解像度を設定します。解像度固定の外部端末を使用する場合に特に便利です。

    Override Resolution

    出力画像に使用される固定された解像度です。

  4. 例えば [UMG Overlay] ドロップダウンをクリックし、TestUMG を検索、選択して、ビューポートにテスト ウィジェットを追加します。

    Add Test UMG

  5. 最後に、チェックボックスをクリックして、出力プロバイダを Active (アクティブ) に設定します。

    Set Output Provider to Active

  6. シーンのメイン ビューポートにオーバーレイが表示されるようになりました。これは、特定のニーズに合わせてカメラ出力をカスタマイズする方法の例です。

    UMG overlay

Unreal リモート出力プロバイダ

このプロバイダは、リモート セッション プロトコル経由で接続したリモート端末にメイン エディタ ビューポートを出力します。この方法で接続されている互換性のあるデバイスであれば、この用途で使用できます。

次に、リモート セッションを使用して外部デバイスを接続するためにプロジェクトを設定します。

  1. [Settings (設定)] > [Project Settings (プロジェクト設定)] を開きます。

    Open your Project Settings

  2. [UDP Message (UDP メッセージ)] セクションに移動して、末尾にポート番号を表す :0 を付加したお使いのコンピュータの IP アドレスを [Unicast Endpoint (ユニキャスト エンドポイント)] に設定します。

    Unicast Endpoint

  3. [Rendering (レンダリング)] セクションに移動して、[Default Settings (デフォルト設定)][Frame Buffer Pixel Format (フレーム バッファ ピクセル形式)]8bit RGBA に設定します。

    Frame Buffer Format

  4. エディタを再起動します。

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

  1. app store より Unreal Remote 2 app を ARKit 対応の iOS デバイスにダウンロードし、アプリを起動します。

    iOS Device

  2. コンピュータの IP アドレスを入力し、[Connect (接続)] ボタンをタップすると接続を試行、確立します。

デバイスの接続

  1. Unreal Remove 2 App の [Connect (接続)] をタップします。

  2. バーチャル カメラ アクタの VCam コンポーネントを選択して、出力プロバイダのドロップダウン リストから [Unreal Remote Output Provider (Unreal リモート出力プロバイダ)] を選択します。

    Select Remote Output Provider

  3. メイン エディタのビューポートがデバイスの画面にミラーリングされるようになりました。

    Screen mirrored on your device

メディア出力プロバイダ

Media Output Provider (メディア出力プロバイダ) は 、Black Magic やAJA のビデオ キャプチャ カードなどの Unreal Media Framework (メディア フレームワーク) でサポートされているデバイスにバーチャル カメラの出力を送信します。

選択すると、出力パラメータを指定するために使用する Output Config (出力コンフィグ) が選択できるようになります。

Output Config

Unreal Media Framework の使用方法の詳細については、メディア フレームワークのドキュメント ページを参照してください。

コンポジット出力プロバイダ

Composure Output Provider (コンポジット出力プロバイダ) は、バーチャル カメラの出力を、コンポジット プラグイン が直接使用できる レンダーターゲット に送信します。さらに、カメラのビューをレンダリングする Composure レイヤー ターゲット を指定することもできます。

Composure Plugin

Composure プラグインの使用方法の詳細については、「Composure によるリアルタイム コンポジット」を参照してください。

このセクションの結果

このセクションでは、バーチャル カメラ コンポーネントに様々な出力プロバイダを追加する方法を学習しました。これで、バーチャル カメラを使用して、エディタ ビューポートまたは外部デバイスにリモート セッション プロトコル経由で直接出力できるようになりました。

また、Unreal メディア フレームワークと Composure プラグインで処理される出力を送信する方法についても学習しました。

次のステップ

バーチャル カメラを自分で作成できるようになりました。次の「バーチャル カメラ アクタのクイックスタート」では、Unreal Engine に収録されているプレビルドのバーチャル カメラ アクタを見てみましょう。

Select Skin
Light
Dark
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる

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

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

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

フィードバックを送信