Aim Offset を作成する

Aim Offset を使用して、キャラクターはマウスまたはコントローラの方向で武器の照準を合わせるようにします。

Windows
MacOS
Linux

このガイドでは Aim Offset を作成します。これは、キャラクターが武器の照準を合わせるようにするブレンド可能な一連のポーズを格納するアセットです。アニメーション シーケンスを使って、Aim Offset 用に利用可能なポーズに分けます。プレイヤーのマウスの pitch/yaw の位置を取得し、それを使ってどのブレンドされたポーズを使用するかを決めて、以下の例のようにマウスの位置でキャラクターが移動し、照準を合わせるようにします (一部制約有り)。

以下の手順を終えると、上の図と同じようなキャラクターを作成することができます。

1 - 照準ポーズを作成する

このステップではデフォルトのプレイ可能なキャラクターを更新し、Aim Offset に必要な全ポーズを作成します。

このガイドでは Blueprint Third Person プロジェクトを使用し、Animation Starter Pack をプロジェクトに追加しました。

AnimationAssetPack.png

Epic Launcher の Marketplace から無料でアニメーション スターター パックをダウンロードできます。

手順

  1. コンテンツ ブラウザ の「 Content/ThirdPersonBP/Blueprints 」フォルダで ThirdPersonGameMode を開きます。

  2. Default Pawn Class (デフォルトのポーン クラス) で、ドロップダウン メニュー > 「Ue4ASP_Character」 > [Save (保存) を選択し、ブループリントを閉じます。

    Animations1.png

    デフォルトのプレイ可能なキャラクターが、Animation Starter Pack で提供されるものを使用するように変更しています。

  3. コンテンツ ブラウザ で、 Content の AnimStarterPack フォルダを開きます。[Add New] をクリックして、「AimPoses」 というフォルダを作成します。

    AimOffset1.png

  4. Aim_Space_Hip アセットを 「AimPoses」 フォルダにドラッグし、Copy を選択します。

    AimOffset2.png

    これは武器の照準を合わせるための一定範囲の動きを含むアニメーション シーケンスであり、これをポーズに分けます。

  5. 「AimPoses」 フォルダ内で、Aim_Space_Hip を選択した状態で Ctrl+W を押して複製し、Aim_Center と名前を付けます。

    AimOffset3.png

  6. Aim_Center アセットを開き、再生コントロールの中から [Pause (一時停止)] ボタンをクリックし、続いて [ToFront (前へ)] ボタンをクリックします。

    AimOffset4.png

  7. タイムラインのスクラブバーで 右クリック し、 [Remove from frame 1 to frame 87] オプションを選択します。

    AimOffset5.png

    この状態で、Aim Offset で使用可能なポーズを含むひとつのフレームが存在します。

  8. 「AimPoses」 フォルダ内で、Aim_Space_Hip を選択した状態で Ctrl+W を押して複製し、「Aim_Center_Down」 と名前を付けます。

  9. Aim_Center_Down を開いて、フレーム 0 になるようにし、[ToNext] ボタンをクリックし、フレーム 20 に進みます。

    AimOffset9.png

    これでキャラクターがビューポートで下方向に照準を合わせます。これは、下方に照準を合わせるために使用するポーズです。

  10. 1.タイムラインのスクラブバーで 右クリック し、[Remove frame 0 to frame 20] オプションを選択します。

    AimOffset10.png

    スクラブバーのどこを 右クリック するかに応じてフレームの範囲は 1、2 フレーム程度変わりますが、キャラクターが下方に照準を合わせるようにしてください。

  11. タイムラインのスクラブバーで再度 右クリック し、 [Remove from frame 1 to frame 68] オプションを選択します。

    AimOffset11.png

  12. 「AimPoses」 フォルダ内で、Aim_Space_Hip を選択した状態で Ctrl+W を押して複製し、「Aim_Center_Up」 と名前を付けます。

  13. Aim_Center_Down を開いて、フレーム 0 になるようにし、[ToNext] ボタンをクリックし、フレーム 10 に進みます。

  14. 1.タイムラインのスクラブバーで 右クリック し、[Remove frame 0 to frame 10] オプションを選択します。

    AimOffset14.png

  15. タイムラインのスクラブバーで再度 右クリック し、 [Remove from frame 1 to frame 78] オプションを選択します。

    AimOffset15.png

  16. Aim_Space_Hip アセットを毎回 複製 し、以下の表に基づき残りの各ポーズを作成します。

    Anim Name

    Start At Keyframe

    Remove Frames 1

    Remove Frames 2

    Aim_Left_Center

    30

    0 - 30

    1 - 57

    Aim_Left_Up

    40

    0 - 40

    1 - 48

    Aim_Left_Down

    50

    0 - 50

    1 - 37

    Aim_Right_Center

    60

    0 - 60

    1 - 27

    Aim_Right_Up

    70

    0 - 70

    1 - 17

    Aim_Right_Down

    80

    0 - 80

    1 - 8

    各アニメーションについてここで提示した Start At Keyframe フレームから開始し、スクラブバー上で 右クリック し、Remove Frames 1 を、再度スクラブバー上で 右クリック し、Remove Frames 2 を選びます。各アニメーションは、対応する名前の方向にキャラクターが照準を合わせた単一フレームになるはずです。各アニメーションを作成すると、 「AimPoses」 フォルダには各照準方向のポーズが入っているはずです。

    AimOffset17.png

  17. コンテンツ ブラウザShift キーを押しながら、それぞれの照準ポーズを選択します。

    AimOffset18.png

  18. 右クリック し、[Asset Actions][Bulk Edit via Property Matrix] オプションを選択します。

    AimOffset19.png

  19. [Property Matrix][Additive Settings] で、[Additive Anim Type][Mesh Space] に変更します。

    AimOffset20.png

    アニメーションが Aim Offset と互換性があるようにするには、必ず Mesh Space の Additive Anim Type を使用するように設定しなければなりません。

  20. [Base Pose Type][Selected animation frame] に変更します。次に [Base Pose Animation] でアセット選択アイコンをクリックし、[Idle_Rifle_Hip] を選択します。

    add_01.png

    [Base Pose Type] は、加算デルタの計算方法を決めます。

  21. 上記を行ったら コンテンツ ブラウザ に戻り、[Save All (全てを保存)] ボタンをクリックします。

    AimOffset22.png

各ポーズを作成したので、次のステップで Aim Offsetを作成します。

2 - Aim Offset を作成する

各照準ポーズを使って、各ポーズ間でブレンドする Aim Offset を作成します。

手順

  1. 「Content/AnimStarterPack/UE4_Mannequin/Mesh」 フォルダで UE4_Mannequin右クリック[Create Aim Offset (Aim Offset を作成)] を選択します。

    AimOffset23.png

    このスケルトンに基づき Aim Offset が作成されます。

  2. [Aim Offset] ウィンドウ (中央ウィンドウ) の [Parameters] で以下のパラメータを入力します。

    AimOffset26.png

    X Axis LabelYaw(左右回転) に、Y Axis LabelPitch(上下動) に設定します。次に両方の Axis Ranges を -90 から 90 に設定し、[Apply Parameter Changes (パラメータ変更を適用)] をクリックします。

    Aim Offsets は、 ブレンドスペース と同じように機能し、パラメータに基づきポーズ間でブレンドすることができます。

  3. アセット ブラウザAim を検索し、Aim_Center アニメーションを以下の画面のようにグラフの中央部にドラッグします。

    AimOffset27.png

  4. 以下のように Aim_Center_Up を位置 1 に、 Aim_Center_Down を位置 2 にドラッグします。

    AimOffset28.png

    オプションで、Enable Tooltip Display オプションのチェックを外してツールチップを非表示にすることができます。

  5. 以下のように Aim_Left_Center を位置 1 に、 Aim_Right_Center を位置 2 にドラッグします。

    AimOffset29.png

  6. Aim_Left_Up (1)、Aim_Right_Up (2)、Aim_Left_Down (3) および Aim_Right_Down (4) のポーズを追加して Aim Offset を終了します。

    AimOffset30.png

  7. [Asset Details] パネルで [Preview Base Pose] オプションの [Additive Settings]Idle_Rifle_Hip に設定します。

    Add01.png

    グリッド内でマウスを動かすとポーズのブレンドをプレビューすることができます。マウスの位置に応じてビューポートのメッシュがそのポーズを更新します。

これで Aim Offset がセットアップされました。次のステップでは、Animation ブループリント 内で使用するためにこれを接続し、ゲームプレイでブレンドできるようにします。

3 - Aim Offset を実装する

Aim Offset を Animation ブループリントに追加し、それを既存の Anim Graph に接続します。

手順

  1. 「Content/AnimStarterPack」 フォルダで UE4ASP_HeroTPP_AnimBlueprint を開いて、MyBlueprint パネルで AnimGraphダブルクリック します。

    step3_01.png

  2. アセット ブラウザ タブから Aim Offset アセットをドラッグします。

    step3_02.png

  3. 以下のように Aim Offset を接続します。次に Yaw ピンと Pitch ピンの上で 右クリック し、[Promote to Variable (変数に昇格)] にして、Aim YawAim Pitch という名前を付けます。

    step3_03.png

    この 2 つの変数はプレイヤーがマウスを使って照準を合わせるときに使用されて、Aim Offset のポーズを操作します。

  4. [MyBlueprint] パネルで EventGraph にジャンプします。

    step3_04.png

  5. EventGraph でスクリプトの Movement 部分内にある Sequence ノードを探します。

    step3_05.png

    Sequence ノード上の [Add pin] ボタンをクリックします。

    step3_05b.png

  6. [MyBlueprint] パネルで [Alt] キーを押したまま、Aim YawAim Pitch をドラッグして Sequence ノードに接続します。

    step3_06.png

  7. Cast To Ue4ASP_Character ノードからドラッグして Get Control Rotation ノードと Get Actor Rotation ノードを追加します。

    step3_07.png

  8. Get Control Rotation ノードからドラッグして、Delta(Rotator) ノードを追加します。

    step3_08.png

  9. Get Actor RotationDelta(Rotator) B Pin に接続します。次に、Return Value から RInterp To ノードを追加します (Current から Targetへの接続をスワップします)。

    step3_09.png

    Ctrl キーを押したまま、Current ピン上で左クリックし、その接続を Target ピンまでドラッグします。

  10. RInterp To ノードの Current ピンをドラッグして、Make Rotator を選択します。

    step3_10.png

  11. [MyBlueprint] パネルで [Ctrl] キーを押したまま、Aim Pitch 変数と Aim Yaw 変数をドラッグして Make Rotator ノードの PitchYaw に接続します。

    step3_11.png

  12. Movement スクリプトの開始時に、Event Blueprint Update Animation ノードを探して、Delta Time XTime と呼ばれる変数に昇格し、以下のように接続します。

    step3_12.png

  13. RInterp To ノードに戻り、新しい Time 変数を接続し、Interp Speed15 に設定します。

    step3_13.png

    キャラクターの回転とプレイヤーの入力の回転を使用して新規ローテーターを作ります。これは、キャラクターがある方向にどの程度曲がることができるかを制限します。

  14. RInterp To ノードから Break RotatorPitchYawClamp Angle を追加します。最小角度と最大角度はそれぞれ -9090に設定します。

    step3_14.png

  15. Pitch から Clamp AngleAim Pitch に接続し、Yaw から Aim Yaw に接続します。

    step3_15.png

    Aim Offset を操作する Aim Yaw の値と Aim Pitch の値は、キャラクターの回転、プレイヤーの現在のコントローラーの回転を考慮し、キャラクターが一方向に回転しすぎないようにクランプされます。角度をクランプしないとキャラクターが後ろを向いているのにその足は前を向き、逆方向をポイントしてしまいますが、これは避けたいでしょう。

セットアップがほぼ終わったので、次のステップではすべてをつなげて、キャラクターの照準機能をテストします。

4 - 仕上げ

Character ブループリントを更新し、コントローラーの回転を処理する方法を変更したり、テスト前に簡単な問題に対処します。

手順

  1. 「Content/AnimStarterPack」 フォルダで、Ue4ASP_Character ブループリントを開きます。

  2. [Components] ウィンドウで Ue4ASP_Character をクリックし、[Details (詳細)][Use Controller Rotation Yaw] のチェックを外します。

    step4_04.png

    その結果、キャラクターが自動的にコントローラの yaw の位置に向くのを防ぎます。

  3. [Components] ウィンドウで [CapsuleComponent] をクリックします。次に [Details (詳細)] パネルの [Hidden in Game (ゲーム内で非表示)] オプションにチェックを入れます。

    HideCapsule.png

    これでゲームプレイ中にデバッグのコリジョン表示が非表示になります。

  4. MyBlueprint[EventGraph] をクリックします。次に Crouching セクションを見つけて、InputAction Crouch ノードを C Key Event に置き換えます。

    step4_05.png

    これでウィンドウの左上隅にあるコンパイル ボタン上の黄色の警告記号が取り除かれます。プロジェクトはデフォルトでAction Mapping for Crouch (しゃがむためのアクション マッピング) をもっていないため、しゃがむために C ボタンを使用します (必要に応じてこれに対してどの Key Event でも使用可能)。

  5. コンパイル保存 してから、ブループリントを閉じます。

  6. レベルから ThirdPersonCharacter を取り除きます。

    DeleteCharacter.png

    これでレベル内に配置されているものではなく、Game Mode で割り当てたキャラクターを使用するようになります。

  7. Play ボタンをクリックしてエディタで再生します。

最終結果

エディタでプレイする場合、キャラクターは静止状態で照準を合わせ、マウスの動きに反応し、マウスの方向を指し示します。マウスがキャラクターの背後にある場合、およびキャラクターが走っている間、キャラクターが後ろを向かないようにいくつかの制約があり、マウスを動かすとキャラクターの胴体もポイントしている方向に向きます。

これをさらに進めて、キャラクターがある方向に照準を合わせ、その方向に射撃アニメーションを再生したり、キャラクターがある方向を向いて移動またはしゃがんでいる間に射撃アニメーションを再生することができます。詳細は、操作ガイド「既存アニメーションにレイヤー化されたアニメーションを使用する 」を参照してください。または、「スケルタルメッシュのソケット 」ではキャラクターの手に武器をアタッチする例を確認することもできます。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback