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] ボタンをクリックし、フレーム 10 に進みます。

    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

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

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

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

フィードバックを送信