13. デコレーターの作成

13. デコレーターの作成

Windows
MacOS
Linux
On this page

ビヘイビアツリー システムの条件式としても知られる Decorator (デコレーター)Composite ノードまたは Task ノードのいずれかにアタッチされ、ツリーのブランチあるいはノード 1 つを実行可能かどうかの判断をするノードです。

AI のポーンがターゲットに十分近づくと、デコレーター はビヘイビアツリーの Rapid Move To ブランチの実行を中止します。これは Rapid Move To タスクで、あるいは Move To タスクを使って処理することができますが、この Decorator はすべてのアクタを受け取り、任意のブランチの実行をブロックすることができます。従って、様々な状況での再利用が可能になります。

ステップ

  1. コンテンツ ブラウザ で FollowerBT Behavior Tree を ダブルクリック して開きます。

  2. [New Decorator (新規デコレーター)] ボタンをクリックします。

    ビヘイビアツリーと同じフォルダ内に作成されます。

  3. コンテンツ ブラウザ 内で名前を「CloseEnough」に変更します。

  4. 編集のためにエディタで既に開いているはずですが、そうでない場合は コンテンツ ブラウザダブルクリック してください。

  5. [My Blueprint] タブの [Functions (関数)] セクションで、 PerformConditionCheck を "Override" します。

    override_button.png

  6. 新しくできた関数で、次のグラフを作成します。

    Copy Example

    画像をクリックして拡大、または こちら をクリックしてウィンドウ内で開きます。

    variables.png

    このブループリントの変数名、型、値です。

    変数名

    AI_CON_Ref

    Follower_AI_CON_C

    None

    AcceptableDistance

    Float

    0.0 - ただしこの変数には **True** に設定している「編集可能な」フラグがあるので、ビヘイビアツリー上でインスタンス毎に変更することができます。

    TargetToFollow

    BlackboardKeySelector

    None - ただしこの変数には **True** に設定している「編集可能な」フラグがあるので、ビヘイビアツリー上でインスタンス毎に変更することができます。

    これは関数グラフなので、上の画像のグラフから Code Snippet を使った場合、グラフの中央部分しか取得できず、開始と終了のノードは接続されません。画像の通りにこれらを接続すれば、正常に機能します。

  7. イベント Receive Condition Check は、ビヘイビアツリーがこの条件のノードにヒットした時にこのブループリントへ送られるイベントです。

  8. 再度、 AI Controller を格納して、後で簡単に参照できるようにしておきます。

  9. フォローしたいアクタを取得します (プレイヤー ポーン)。

  10. アクタと AI ポーン間の距離を取得します。

  11. 距離が設定可能な値より大きい場合は、条件は True を返します。そうでない場合は False を返し、それがあるビヘイビアツリー部の実行をブロックします。

これにより、ビヘイビアツリーが絶えず RapidMoveTo へ循環して再び戻ることがなくなります。基本的に、プレイヤーに追いついたら停止します。

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