Language:
Page Info
Tags:
Engine Version:

Aim Offset

AimOffset.png

Aim Offset は、キャラクターが武器の照準を合わせやすいように、ブレンド可能な様々なポーズを格納しているアセットです。 アニメーションの間、Aim Offset の結果は走る、歩く、ジャンプするなどの他のモーションとブレンドされ、キャラクターが全ての方向をスムーズに見ているようにします。

Aim Offset の重要な概念は、それらが既存のアニメーションに加算してブレンドされるように作成されている、ということです。従って、Aim Offset を使用してキャラクターに武器の照準を合わせさせる場合、キャラクターの他のモーションが加算モーションの邪魔にならないようにしてください。別の言い方をすれば、Aim Offset で追加で制御できるように、走る、アイドル、ジャンプなどではかなり剛健なアームが必要になります。

いろいろな意味で、Aim Offset はブレンド スペースと似ています。従って、Aim Offset を使う前に、ブレンド スペースについて確実に理解するとよいでしょう。詳細は Blend Spaces をご覧ください。

Aim Offset をキャラクターに適用した例として、セクション 1.4 の アニメーション コンテンツのサンプル を参照することもできます。

Aim Offset を作成する

他のアセットと同様に、Aim Offset は [コンテンツ ブラウザ] で作成します。右クリック または New_Asset_Button.png ボタンを使ってコンテキストメニューから [Animation] > [Aim Offset] の順に選択します。 お気づきのように、Aim Offset 1D というオプションもあります。これは Aim Offset と同じですが、ブレンドを制御するために標準の Aim Offset が 2 つの変数からの入力をサポートするのに対し、 1 つの変数からの入力のみをサポートします。

Aim Offset を新規作成する場合、スケルトン アセットを指定します。Aim Offset で使用したいスケルタル メッシュで使うものと同じアセットを選択するようにしてください。

照準ポーズ

Aim Offset の目的は照準しやすいように様々なポーズを加算的に組み合わせることです。一般的に作成する必要があるポーズのタイプについて説明していきます。実際に必要になるポーズ数は、使用するキャラクターが必要なモーションによって大きく異なります。以下は極端な例です。

Aim_RBU.png

Aim_RU.png

Aim_CU.png

Aim_LU.png

Aim_LBU.png

右後方上

右上

中央上

左上

左後方上

Aim_RBC.png

Aim_RC.png

Aim_CC.png

Aim_CL.png

Aim_LBC.png

右後方中央

右中央

中央

左中央

左後方中央

Aim_RBD.png

Aim_RD.png

Aim_CD.png

Aim_LD.png

Aim_LBD.png

右後方下

右下

左下

左後方下

ただし、このような設定を使用する場合は、ヨー (左右) モーションのアニメーション方法に特に気をつける必要があります。例えば、上の例であげたモーションはキャラクターが静止して立っている場合には問題ありません。しかし、キャラクターを走りながら後ろ向きにひねらせようとすると、このような醜い格好になってしまいます。

Character-TwistedBody.png

このため、Aim Offset では多くの場合、キャラクターに左右ではなくむしろ上下に照準を合わせる設定にして、実際のキャラクターの回転で左右のモーションに対応させます。ただし、上図のポーズを使用することもできます。キャラクターが固定されている場合のみ左右のモーションが使用できるように、Animation ブループリントを使って Aim Offset の入力データを制限しさえすればいいのです。

メッシュ空間

必要なポーズをそれぞれアンリアル エンジンにインポートしたら、Aim Offset と互換性を持つようにそれらに特別なプロパティを設定する必要があります。[Additive Settings] カテゴリで以下の設定を確認してください。

  • Additive Aim Type - AAT_MeshSpace

Aim Offset はメッシュ空間では Additive Aim Type のみアニメーションを可能とします。

メッシュ空間は、Aim Offset アセットなど一部のインスタンスでのみ使用されるという点で、加算アニメーションのデルタを若干異なる方法で抽出します。メッシュ空間は回転のベースとしてメッシュの境界ボックスを使い、スケルタル メッシュのボーンのチェーン方向に関係なく、回転が同じ方向で動くようにします。横に傾きつつも拳銃の照準を上に向ける必要のあるキャラクターを考えてみましょう。上方照準のモーションがローカル空間の場合、照準は寄りかかっている方向である外側に回転します。

BaseIdle.png

AimUp.png

ベースとなるアイドル ポーズ

上方照準

LeaningIdle.png

LocalSpaceLean.png

MeshSpaceCorrected.png

傾いたポーズ

傾きながら上方照準 (ローカル空間)

傾きながら上方照準 (メッシュ空間)

これはメッシュ空間回転で解決できます。回転はスケルタル メッシュのボックスに基いているので、キャラクターの動作に関係なく回転の方向は一定を保ちます。従って、キャラクターが横に傾いたとしても、上方照準は上向きのまま回転します。

メッシュ空間はアニメーション シーケンスのプロパティとして設定されます。[Additive Settings] カテゴリに [Additive Anim Type] プロパティがあります。これをメッシュ空間に設定すると、説明したとおりのメッシュ座標空間が使用されます。このブレンディング操作はかなり負荷が高くなります。そのため、Aim Offset のケースのように、アニメーションを一定方向に移動させる必要があると分かっている特定のタイプのブレンド スペースのみで使用するのが一般的です。

パフォーマンス

animOffsetNode.png

Aim Offset ノードを Anim Graph に配置すると、4.11 で導入された LOD Threshold プロパティを使ってパフォーマンスを調整することができます。この設定は、Aim Offset ノードの [Details (詳細)] パネルにあります。

perf.png

プロパティ

説明

LOD Threshold

このノードで実行が認められている最高 LOD (Level of Detail) です。例えば、LOD Threshold を 2 に設定すると、LOD 2 になるまでは実行しますが、コンポーネントの LOD が 3 になると無効になります。

Tags