14.ビヘイビアツリーのビルド

ステップ 14ビヘイビアツリーのビルド

Windows
MacOS
Linux

ビヘイビアツリーのビルドに必要な構成要素が全てそろいました。

DoneBehaviorTree.jpg

何が起こっているのかを詳しく見てみましょう。

  • AI Character ではないポーンが検出されなければ、AI はただじっとしている。

  • AgroCheck Service は常に適切なターゲットを探している。

  • ターゲットが見つかると、一番左のブランチがオープンになり、AI はターゲットにしたポーンに向かって走る。

  • ポーンの範囲に到達すると、ブランチの実行が妨げられるので、グラフの一番上に戻る。

  • ターゲットのポーンが隠れている場合、一番右のブランチが実行可能になるので、AI がターゲットのポーンが最後にいた位置へ移動する。

  • 移動したら、待って、ホームに戻る。

  • どんな時にも、適切なターゲットが見つかると、一番右のブランチの実行が中止され、一番左のブランチがオープンになります。

このツリーを手順に従い作成してみましょう。

ステップ

基本設定

このガイドのパート 8 で既に行ったと思いますが、この変更を保存していない場合のために、ビヘイビアツリーの基本的構造の作成手順を紹介します。

  1. ビヘイビアツリーが編集用に開いていない場合は、 コンテンツ ブラウザダブルクリック して開きます。

  2. Behavior Tree モードに切り替えます。

    btMode.png

  3. ビヘイビアツリーを初めて編集する場合は、Root ノードしか付いていません。

    root.png

  4. グラフ エディタで 右クリック するとノードを作成できます。

    1. Composites から Sequence ノードを追加します。

      sequence.jpg

    2. Composites から 2 つめ (2) の Selector ノードを追加します。

      selector.jpg

  5. Selector ノードの 1 つに Root ノードを接続します。

    connectNodes.jpg

  6. 新しく接続された Sequence ノードを Selector ノードとその他の Sequence ノードに接続します。そして以下のようにします。

    connectNodes2.jpg

    左側が 2 つ目の Selector ノード、右側が Sequence ノードです。

サービスを追加

  1. 1 番上の Selector ノードを 右クリック し、コンテキストメニューから Services -> **Agro Check** ノードを追加します。

    addAgro.png

  2. Selector ノードの [Agro Check] ボックスを選択し、 [Details (詳細)] パネルを使って [Target to Follow] プロパティを「TargetToFollow」に、 Target Location (ターゲットの位置)[TargetLocation] に設定し、 Interval (インターバル) を 「0.5」、 Random Deviation (ランダムな偏差) を 「0.0」に調整します。

    setAgroCheck1.jpg

タスクを追加

  1. グラフ内で 右クリック してコンテキスト メニューを表示させ、以下の 4 つの タスク を追加します。Rapid Move To ノードが 1 つ、 Wait ノードが 1 つ、 Move To ノードが 2 つ。

    addTaskNodes.png

  2. 下側の Selector ノードを Rapid Move To ノードに接続します。

  3. Sequence ノードを Move To ノード、そして Wait ノードへ接続します。

  4. ノードを以下のように調整します。

    connectedTasks.png

    左から右に以下のようになります。Rapid Move ToMove ToWaitMove To.

  5. 一番左にある Move To ノードを選び、 [Details (詳細)] パネルを使って、 Blackboard Key プロパティを [TargetLocation] に設定します。

  6. 一番右にある Move To ノードの Blackboard Key プロパティを [HomeLocation] に設定します。

    adjustMoveTo.jpg

  7. Wait ノードを選択し、 [Details (詳細)] パネルを使って Wait Time プロパティを 2.5 に設定します。

    adjustWait.jpg

  8. RapidMoveTo ノードを選択し、 [Details (詳細)] パネルを使って Target to Follow プロパティを [TargetToFollow] に設定します。

デコレーターを追加する

  1. 下側の Selector ノードを 右クリック して、 [Add Decorators..(デコレータを追加)] -> **[Blackboard]** を選択します。

  2. 下側の Selector ノードを 右クリック して、 [Add Decorators..(デコレータを追加)] -> **[Close Enough]** を選択します。

    addDecorator1.jpg

  3. Blackboard デコレーター上の Observer Aborts プロパティを [Both] に、 Key Query[Is Set] に、 Blackboard Key[TargetToFollow] に設定します。

  4. Close Enough デコレーターの Acceptable Distance プロパティを [100.0] に、 Target to Follow プロパティを [TargetToFollow] に設定します。

    setBB1.jpg

  5. Sequence ノードを 右クリック して、 [Add Decorators..(デコレータを追加)] -> **[Blackboard]** を選択します。

  6. Sequence ノードを 右クリック して、 [Add Decorators..(デコレータを追加)] -> **[Is At Location]** を選択します。

  7. Sequence ノードを 右クリック して、 [Add Decorators..(デコレータを追加)] -> **[Blackboard]** を選択します。

    上記のデコレーターをすべて追加すると、ノードブロック全体はこのようになります。

    addToSeqNode.png

  8. 最初の Blackboard デコレーターで、 Key Query[Is Not Set] に、 Blackboard Key[TargetToFollow] に設定します。

  9. 2 つ目の Blackboard デコレーターで、 Key Query[Is Set] に、 Blackboard Key[TargetLocation] に設定します。

  10. Is At Location デコレーターで、 Inverse Condition プロパティを有効にし、 Blackboard Key[HomeLocation] に設定します。

    上記プロパティを設定すると、ノードブロック全体はこのようになります。

    propsSet.png

これで終わりです!Play in Editor の使用中は ビヘイビアツリー エディタを開いたままにしておけば、ツリーがどのように動くのかを確認することができます。AI に十分近寄って、その視界に入ると、 AI が追跡を開始します。視界から消えると、 AI は最後に目撃した位置に行って、待機してから、開始した場所に戻ります。

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