Choose your operating system:
Windows
macOS
Linux
概要
バーチャル カメラ コンポーネント (VCamComponent) は、 Unreal Engine でカスタム バーチャル カメラを構築するための基本コンポーネントです。
VCamComponent を使って、ユーザーは モディファイア と 出力プロバイダー を追加することで、Unreal Engine 内部でシネカメラを動かすことができます。
目標
このクイック スタート ガイドは、バーチャル カメラ コンポーネントを使用してバーチャル カメラを作成するための基本的な手順を説明するために作成されました。
目的
このガイドを一通り修了すると、次の内容が理解できます。
-
シーンにカメラを配置し、VCamComponent を追加する方法。
-
カメラにモディファイアを追加してビヘイビアをカスタマイズする方法。
-
モディファイアを有効または無効にする基本キーの入力を追加する方法。
-
様々な出力プロバイダを使用する方法。
1 - 必要な設定
始める前に、プロジェクト内で適切なプラグインを有効にする必要があります。
-
[Settings (設定)] > [Plugins (プラグイン)] を選択し、 [Plugins (プラグイン)] メニューを開きます。
-
Virtual Camera 、 Live Link 、 Remote Session プラグインをそれぞれ検索して有効にします。
-
エディタを再起動します。
このセクションの結果
バーチャル カメラの作成を開始する準備が整いました。
2- バーチャル カメラの作成
-
[Place Actors (アクタの配置)] パネルで、 [Cinematic (シネマティック)] カテゴリを選択して、 [Cine Camera Actor (Cine カメラ アクタ)] をクリックして、シーンにドラッグします。
-
Cine カメラ アクタを選択した状態で、 [Details (詳細)] パネルに移動し、 CameraComponent を選択 します。
-
[Add Component (コンポーネントを追加)] ボタンをクリック し、 VCam コンポーネントを検索して追加します。
VCam コンポーネントがカメラ コンポーネントの子になっていることを確認します。
-
選択したコンポーネントをクリックして追加します。
-
シーン内の Cine カメラ アクタを移動し、好みに合わせて 現在のカメラ設定 を調整します。次の例では、カメラを動かしてシーン内のミーアキャットをフレームに合わせて、この被写体に常に焦点が合うようにカメラを調整しました。
カメラ設定の調整の詳細については、文書ページの「 Using Cine Camera Actors (Cine カメラ アクタを使用する) 」で学ぶことができます。
-
カメラ アクタを選択したら、コンポーネントの階層から VCam コンポーネントを選択します。
-
[Virtual Camera] セクションに利用できるプロパティが表示されました。
以下のプロパティがあります。
プロパティ |
説明 |
---|---|
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++ を使用してカスタム モディファイアを作成し、それらをスタックに追加して、さまざまな効果をレイヤー化できます。
スタック内のモディファイアは追加した順序で実行されるため、モディファイアの追加手順に気を付けてください。
最初のモディファイアを作成する
-
コンテンツ ブラウザ内を右クリックし、 [Virtual Camera (バーチャル カメラ)] カテゴリの下にある [VCam Modifier (VCam モディファイア)] を選択します。
-
ブループリントに VCM_Sine と名付けて、ダブルクリックで開きます。
-
イベント グラフ 内に、 Event On Initialize と Event On Apply という 2 つの既定ノードが確認できます。モディファイア スタックにモディファイアが追加されると、 Event On Initialize が 1 回呼び出されます。このノードは、 ブループリントの Construction Script) ノードに似ています。 Event On Apply ノードは、ブループリントの Event Tick ノードと同様に、すべてのフレームで実行されます。
-
イベント グラフ 内で右クリックして Now を検索、選択して、このノードをグラフに追加します。
-
Return Value (戻り値) のピンからドラッグして、 Promote to variable を選択します。変数に「 StartTime 」と名付けます。
-
次のように、 Event On Initialize ノードに StartTime を接続 します。
-
Event On Apply ノードの、 Camera Component ピンからドラッグして、 Get World Location を選択して適切なノードを作成します。
-
Get World Location ノードの Return Value ピンを右クリックして、 Split Struct Pin を選択します。
-
Camera Component ピンからドラッグして、 Set World Location を検索して選択します。以下のようにこのノードを Event On Apply に接続します。
-
Set World Location ノードから New Location ピンを右クリックし、 Split Struct Pin を選択します。X と Y の値を次のように接続します。
-
StartTime 変数を イベント グラフ にドラッグして、 Get StartTime を選択します。前回同様、 グラフに Now ノードを追加します。
-
以下のように両ノードの値を減算して、結果のピンからドラッグして、 Get Total Seconds を検索、選択します。
-
Get Total Seconds ノードからドラッグして、 float * float を検索、選択します。
-
イベント グラフ を右クリックして、 Get Pi を検索、選択します。 Pi ノードを乗算ノードに接続します。
-
乗算 ノードの Add pin をクリックして、別の入力を追加します。
-
FrequencyScale という新しい浮動小数を作成し、 乗算 ノードに接続します。ブループリントをコンパイルし、 FrequencyScale のデフォルト値として「1」と入力します。
-
以下のように 乗算 結果からドラッグして Sin (Radians) を検索、選択します。
-
Sin ノードからドラッグして、 Map Range Clamped を検索、選択します。
-
次のように「 Wave Minimum 」および「 Wave Maximum 」と名付けた 2 つの浮動小数を作成、接続します。
-
ブループリントをコンパイルし、 Wave Minimum のデフォルト値を -10 にします。次に、 Wave Maximum のデフォルト値を 10 に設定します。
-
イベントグラフ を右クリックして、 Addiction ノードを検索、選択します。 Get Actor Location ノードの Z 値と Map Range Clamped ノードの結果を次のように接続します。
-
加算 ノードの結果を Set Actor Location ノードの Z 値に接続します。
-
以下のように、 [Variables (変数)] セクションに移動して、すべての浮動小数変数の 目 のアイコンをクリックして、変数をパブリックにします。
-
ブループリントをコンパイルして保存します。
スタックへモディファイアを追加する
カスタム モディファイアを モディファイア スタック に追加する準備が整いました。
-
カメラ アクタのコンポーネント階層内から VCam コンポーネントを選択します。
-
モディファイア スタックの プラス記号 (+) をクリックして、リストにエントリを追加します。
-
[Name] に「 Sine Movement 」を追加して、 [Enabled] のチェックを外します。
-
[Generated Modifier (生成されたモディファイア)] の ドロップダウン 矢印をクリックし、一覧から VCM_Sine を選択します。
-
[Enabled] にチェックを入れて、モディファイアの動作を確認します。カメラ アクタがシーン内を移動しているのが確認できるはずです。
-
モディファイアがアクティブならば、 Generated Modifier 行を展開すると公開されているパブリック変数が表示されます。これらの値を修正すると、その変更が即座に表示されるようになりました。
このセクションの結果
このセクションでは、ブループリントを使用してカスタム カメラ モディファイアを作成する方法について学習しました。 On Initialize と On Apply イベントおよび、それらを使用してカスタム ビヘイビアを作成する方法を学習しました。
また、カスタム モディファイアを モディファイア スタック に追加して、エディタ内でバーチャル カメラを操作する方法についても学習しました。
4 - 入力システムの使用
現在の入力イベントの実装はプレースホルダーであり、将来より高度なバージョンに置き換えられます。
バーチャル カメラ コンポーネントは、モディファイア内で直接エディタ入力イベントを使用して、ユーザーに追加のコントロールを提供できます。
ここでは、このシステムを使用して、モディファイアに機能を追加する方法について説明します。
目標
このセクションの目標は、モディファイアにキー入力を追加して、そのキーを押すとエフェクトをオンオフできるようにすることです。
入力イベントの作成
-
VCM_Sine ブループリントを開きます。
-
Event On Apply からドラッグして、 Branch ノードを作成します。True ピンを SetWorldLocation ノードに接続します。
-
新規ブール変数を作成し、 Active と命名します。次のように、この変数を Branch ノードに接続します。
-
コンパイルして保存します。
-
イベントグラフ を右クリックし、 Get VCamInputSubsystem 関数を検索、選択します。
-
VCam Input Subsystem ノードからドラッグし、 Bind Key Up Event を検索、選択します。
-
赤い Delegate ピンからドラッグして、 Add Custom Event を検索、選択します。新しいカスタム イベントに「 ToggleActivation 」と名付けます。
-
Active 変数を イベントグラフ までドラッグし、 Set Active を選択します。 ToggleActivation の実行ピンを Set Active ノードに接続します。
-
もう 1 つの Active 変数を イベントグラフ にドラッグして、 Get Active を選択します。 Get Active ノードからドラッグして、 Not を検索、選択します。次のように Not ノードを Active ピンに接続します。
-
Bind Key Up Event ノードで、 キーボード のアイコンをクリック して、[S] キーを押してイベントにバインドします。 ドロップダウン矢印 を押して、一覧から目的のキーを選択することもできます。
-
シーンに戻り VCM_Sine モディファイアがアクティブな状態で、「S」キーを押してエフェクトのオンオフを切り替えます。
-
このイベントは、ユーザーが [S] キーを押すたびに実行されるため、ユーザーが他の目的でこのキーを押した場合に競合が発生します。たとえば、ユーザーがコンテンツ ブラウザでアセットの名前を変更し、文字 S を使用すると、このイベントが実行されます。これを防ぐにはコードに追加の安全対策を追加します。
-
以下のように ToggleActivation イベントと Set Active ノードの間に Branch ノードを追加します。
-
Key Event ピンからドラッグして Get Input from Key Event 関数を検索、選択します。
-
ノードからドラッグして、 Is Shift Down 関数を検索、選択します。
-
最後は以下のようにノードを Branch に接続します。
-
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 デバイスのセットアップ
-
app store より Unreal Remote 2 app を ARKit 対応の iOS デバイスにダウンロードし、アプリを起動します。
-
コンピュータの IP アドレスを入力し、 [Connect (接続)] ボタンをタップすると接続を試行、確立します。
デバイスの接続
-
Unreal Remove 2 App の [Connect (接続)] をタップします。
-
バーチャル カメラ アクタの VCam コンポーネントを選択して、出力プロバイダのドロップダウン リストから [Unreal Remote Output Provider (Unreal リモート出力プロバイダ)] を選択します。
-
メイン エディタのビューポートがデバイスの画面にミラーリングされるようになりました。
メディア出力プロバイダ
Media Output Provider (メディア出力プロバイダ) は 、Black Magic やAJA のビデオ キャプチャ カードなどの Unreal Media Framework (メディア フレームワーク) でサポートされているデバイスにバーチャル カメラの出力を送信します。
選択すると、出力パラメータを指定するために使用する Output Config (出力コンフィグ) が選択できるようになります。
Unreal Media Framework の使用方法の詳細については、メディア フレームワークのドキュメント ページを参照してください。
コンポジット出力プロバイダ
Composure Output Provider (コンポジット出力プロバイダ) は、バーチャル カメラの出力を、 コンポジット プラグイン が直接使用できる レンダーターゲット に送信します。さらに、カメラのビューをレンダリングする Composure レイヤー ターゲット を指定することもできます。
Composure プラグインの使用方法の詳細については、「 Composure によるリアルタイム コンポジット 」を参照してください。
このセクションの結果
このセクションでは、バーチャル カメラ コンポーネントに様々な出力プロバイダを追加する方法を学習しました。これで、バーチャル カメラを使用して、エディタ ビューポートまたは外部デバイスにリモート セッション プロトコル経由で直接出力できるようになりました。
また、Unreal メディア フレームワークと Composure プラグインで処理される出力を送信する方法についても学習しました。
次のステップ
バーチャル カメラを自分で作成できるようになりました。次の「 バーチャル カメラ アクタのクイックスタート 」では、Unreal Engine に収録されているプレビルドのバーチャル カメラ アクタを見てみましょう。