Unreal Engine の Camera Shake ブループリントを使用すると、カメラにカメラの揺れの効果を追加できます。このガイドでは、 CameraShakeBase ブループリントを作成する方法、使用可能な揺れの種類、およびそれらをシーケンサ、ブループリント、カメラの揺れソースで再生する方法の概要について説明します。
前提条件
-
シーケンサー および カメラ アニメーションを作成する の方法を理解していること。
-
ブループリント ビジュアル スクリプティング を理解していること。
-
カスタム シーケンスに基づく揺れを使用する場合は、 テンプレート シーケンス を理解していること。
-
ゲームプレイでカメラの揺れをテストするときは、 サードパーソン テンプレート を使用してプロジェクトを作成できること。
カメラの揺れの作成
揺れアセットを作成するには、 コンテンツ ブラウザ で [Add/Import (追加/インポート)] をクリックし、 [Blueprint Class (ブループリント クラス)] を選択します。その次のウィンドウで CameraShakeBase クラスを見つけて、 [Select (選択)] をクリックします。

アセットが作成されたら、名前を付けて、開くと、カメラの揺れの詳細が表示されます。

詳細パネル
カメラの揺れアセットには、次の基本のプロパティがあります。
名前 | 説明 |
---|---|
Single Instance | この項目をオンにすると、この揺れは 1 度に 1 つのインスタンスのみが再生されます。この揺れを続けて再生しようとすると、重ねて追加されるのではなく、その 1 つのインスタンスが最初から再開されます。 |
Root Shake Pattern | 使用する 揺れの種類 です。 |
基本の揺れパターンの種類
揺れパターンは、カメラの揺れの形状と動作を制御します。カメラの揺れを作成する際は、次のパターンから選択できます。
パーリン ノイズ
パーリンは、指定の振幅と周波数に基づくランダムなポイントをサンプリングすることで時系列のノイズを生成します。これらのポイントは Smootherstep イージング関数を使用してブレンドされます。一般的にパーリン ノイズは、荒れた道を車で進むときや近くで爆発があったときなど、強度の高いカメラの揺れに適しています。


Root Shake Pattern で Perlin Noise Camera Shake Pattern を選択すると、パーリン ノイズによる揺れのビヘイビアを制御するために使用できる追加の詳細項目が表示されます。カメラの位置、回転、視野角 (FOV) のプロパティで揺れの効果を作成することができます。

Location および Rotation プロパティ カテゴリの両方に各軸の表示があり、展開すると Amplitude プロパティおよび Frequency プロパティが表示されます。
-
Amplitude は揺れのパターンの大きさを制御します。この値を大きくすると、その軸の揺れが中心から遠ざかります。
-
Frequency は揺れの速度を制御します。この値を大きくすると、揺れの動きが速くなります。

さらに、 Amplitude Multiplier プロパティおよび Frequency Multiplier プロパティを使用すると、位置軸および回転軸の振幅と周波数を組み合わせた結果を乗算できます。これらのプロパティは、揺れを全体的に変更できるため、軸ごとに変更する必要がありません。

揺れのタイミングは、[Timing (タイミング)] カテゴリを展開すると表示されるプロパティで、制御することができます。
-
Duration は、揺れの長さを制御します。この値が 0 以下の場合は、揺れが無限に再生されます。
-
Blend In/Out Time は、揺れの開始と終了時の線形ブレンドの長さを制御します。値が 0 のときはブレンドを行いません。

正弦波
正弦波は滑らかで周期的な振動による連続波を使用して時系列のノイズを生成します。通常、波形ノイズは、船の揺れや夢の中を漂っているような効果など、弱い揺れに適しています。


Root Shake Pattern で Wave Oscillator Camera Shake Pattern を選択すると、波形の揺れの動作を制御するために使用できる追加の詳細項目が表示されます。パーリン ノイズと同様に、カメラの位置、回転、視野角 (FOV) プロパティで波形の揺れの効果を作成できます。

正弦波ノイズの Location 、 Rotation 、 FOV 、および Timing の各プロパティは、パーリン ノイズ と同様です。ただし、軸を展開すると、 Initial Offset Type という追加のプロパティがあります。このプロパティでは、カーブに沿って Zero または Random (ランダム) なポイントから波形が開始するように指定できます。

シーケンスの揺れ
シーケンスの揺れは、カメラ アニメーション シーケンス に含まれるカメラ アニメーションを使用して揺れを生成します。シーケンス ノイズは、カメラの揺れのスタイルと動作を完全に制御する場合に役立ちます。

Root Shake Pattern で Sequence Camera Shake Pattern を選択すると、カメラ アニメーション シーケンス アセットを選択し、その動作を制御するために使用できる追加の詳細項目が表示されます。揺れの持続時間は、カメラ アニメーション シーケンスの長さに基づきます。

名前 | 説明 |
---|---|
Sequence | カメラ アニメーション シーケンス アセット を指定します。 |
Play Rate | 揺れ効果の速度です。値が 1 の場合は通常の速度で、1 より小さい場合は揺れが遅くなり、1 より大きい場合は速くなります。 |
Scale | 揺れの強度に適用される乗数です。値が 1 の場合は通常の強度で、1 より小さい場合は揺れが弱くなり、1 より大きい場合は強くなります。 |
Blend In/Out Time | Blend In/Out Time は、揺れの開始と終了時の線形ブレンドの長さを制御します。値が 0 のときはブレンドを行いません。 |
Random Segment Duration | Random Segment がオンのときに使用されるランダム セグメントの持続時間です。 |
Random Segment | このプロパティをオンにすると、カメラ アニメーション シーケンス内のランダムなポイントで揺れを再生します。Random Segment Duration プロパティにも値を設定して、揺れの長さを新たに定義する必要があります。これは、非常に長いカメラの揺れのあるアニメーションがあり、その中の短い部分でランダムに揺れを再生したい場合に役立ちます。 |
通常の テンプレート シーケンス のワークフローとは異なり、カメラの揺れパターンとして使用するためにカメラ アニメーション シーケンスを作成するときは、そのセクションを [Additive (加算)] に設定する必要はありません。
複合
複合揺れにより、 パーリン 、 正弦波 、 シーケンス の揺れを単一のレイヤー システムに結合できます。複合揺れを使用すると、揺れの各種類の要素を含む変化に富んだ揺れを作成できます。

Root Shake Pattern で Composite Camera Shake Pattern を選択すると、子パターンを追加し各種の揺れのレイヤーを結合するために使用できる追加の詳細項目が表示されます。

Child Patterns の横にある [+] ボタンをクリックすると、新しい揺れのパターンが追加されます。揺れパターンは必要に応じていくつでも追加できます。各要素には、該当するパターンに関連する詳細が含まれています。

揺れを再生する
カメラの揺れを作成したら、複数の方法で再生できます。
シーケンサから再生する
シーケンサのカメラに揺れを追加するには、 Cine Camera Actor トラックの [+ Track (+ トラック)] ボタンをクリックし、[Camera Shake (カメラの揺れ)] メニューから揺れアセットを選択します。

CameraComponent トラックに揺れを追加しても同じ結果が得られます。

追加したら、シーケンスを再生して揺れが実行されているのを確認できます。

[Camera Shake (カメラの揺れ)] セクションにはブループリントの詳細で決定した Duration (持続時間) および Blend in Time (ブレンド開始時間)と Blend Out Time (ブレンド終了時間) が表示されています。これらのプロパティを変更すると、セクションの表示が更新されます。

揺れのセクションを右クリックし、[Properties (プロパティ)] メニューに進むと、シーケンサに揺れのプロパティが表示されます。

名前 | 説明 |
---|---|
Shake Class | 使用する揺れのブループリント クラスを指定します。他のアセットが使用可能な場合、現在の揺れを別のアセットに変更できます。 |
Play Scale | 全体の揺れの強度に対する乗数です。値が 1 の場合は通常の強度で、1 より小さい場合は揺れが弱くなり、1 より大きい場合は強くなります。 |
Play Space | 揺れが再生される座標空間を指定します。
|
User Defined Play Space | Play Space が User Defined に設定されている場合、回転座標をここに入力します。回転座標は [World Rotation (ワールドの回転)] 座標に相対的です。ただし、オフセットが指定されています。 |
ブループリントから再生する
ブループリントからも Start Camera Shake ノードを使用して揺れを再生できます。ノードには、Shake 、 Scale および Play Space を指定するパラメータが含まれます。

Start Camera Shake 関数には、ターゲットとして プレイヤー コントローラー または カメラ揺れのソース コンポーネント が必要です。
カメラの揺れのソース
Camera Shake Source (カメラ揺れのソース) は、位置へのカメラの近接性に基づいてカメラの揺れを開始します。また、カメラ揺れのソースには揺れの影響の大きさと半径のコントロールが含まれています。カメラ揺れのソースは アクタ としてレベルに追加したり、 コンポーネント としてブループリントに追加したりすることができます。
Camera Shake Source アクタ をレベルに追加するには、このアクタを [Place Actors] パネルからレベルにドラッグします。

アクタまたはコンポーネントを選択すると次の詳細が表示されます。

名前 | 説明 |
---|---|
Attenuation | カメラがソースに近づいたとき、またはソースから遠ざかったときのフォールオフ曲線のタイプです。これは、 Quadratic (イース イン/アウトのブレンドを提供) または Linear (線形ブレンドを提供) のいずれかです。 |
Inner Attenuation Radius | 揺れが完全な強度で再生される、ソースからの半径です。 |
Outer Attenuation Radius | 揺れが表示されなくなるソースからの半径です。揺れは、カメラが外部半径と内部半径の間を移動するときにその位置に応じて強度をブレンドします。 |
Camera Shake | 使用する揺れのブループリントのクラスです。 |
Auto Start | このプロパティをオンにすると、ゲームをプレイするときに自動的に揺れが始まります。 |
揺れのループの例
次のように実行することで手早くソースの揺れの効果を作成できます。
- Camera Shake ブループリント で、Timing プロパティをすべて「0」に設定します。これにより揺れをブレンドなしに無限にループさせることができます。また、揺れが見えるように各軸に適切な振幅と周波数を確実に設定します。
- ブループリントをカメラ揺れのソースの Camera Shake プロパティに割り当て、 Auto Start をオンにします。

これで、ゲームをプレイしてソース ポイントに近づくと、カメラ揺れのソースが影響する範囲にカメラが入ることで揺れがブレンドされたり、ブレンドされなかったりする様子を確認できます。

カメラの揺れプレビューア
[Camera Shake Previewer (カメラの揺れプレビューア)] を使用すると、ゲームを開始したりシミュレーションしたりする必要なく、カメラの揺れソース をエディタでプレビューできます。
プレビューアを開くには、Unreal Editor のメインメニューから [Window (ウィンドウ)] > [Camera Shake Previewer (カメラの揺れプレビューア)] の順に選択します。

カメラの揺れをエディタで再生するには、[Allow Camera Shakes (カメラの揺れを許可)] をビューポート オプション メニューでオンにする必要があります。

次に、プレビューする揺れソースのエントリを選択し、 [Play/Stop Selected (選択項目を再生/停止)] をクリックして揺れのプレビューを行います。[Play/Stop All (すべてを再生/停止)] をクリックすると、複数のソースを一度にプレビューできます。再生されると、エディタのカメラをソースに近づけて揺れの効果を確認できます。
