ビヘイビアツリー ユーザーガイド

ビヘイビアツリーとそれに関連するアセットの作成、および編集方法について説明します。

Choose your operating system:

Windows

macOS

Linux

Behavior Tree アセットを作成する

このセクションでは、Unreal Engine 4 内に様々な Behavior Tree アセットを作成する方法について説明します。

ビヘイビアツリーを作成する

ビヘイビアツリー は基本的に AI のプロセッサであり、その結果に基づいて決定を行い、さまざまなブランチを実行することができます。 ビヘイビアツリー は、以下のようにして コンテンツ ブラウザ 内に作成されます。

[Add New] ボタンをクリックし、 [Create Advanced Asset] [Artificial Intelligence] [Behavior Tree] を選択します。

BTUG_01.png

新しい Behavior Tree アセットが コンテンツ ブラウザ に追加されるので、名前を付けます。

BTUG_02.png

右クリックのコンテキスト メニューを使用して、 [Add New]>[Artificial Intelligence]>[Behavior Tree] を選択することもできます。

ブラックボードを作成する

Blackboard アセットは、AI の「頭脳」と考えることができ、 ビヘイビアツリー がその決定に必要な キー の値を格納します。 Blackboard アセットは以下の方法で作成できます。

[Add New] ボタンをクリックし、 [Create Advanced Asset] の下の [Artificial Intelligence] [Blackboard] を選択します。

BTUG_03.png

新しい Blackboard アセットが コンテンツ ブラウザ に追加されます。このブラウザを使用して、任意の名前に変更できます。

BTUG_04-1.png

ビヘイビアツリー内にブラックボードを作成するもう 1 つの方法があります。

ツールバーから [Behavior Tree Editor] 内の [New Blackboard] ボタンをクリックします。

BTUG_05.png

これにより、 コンテンツ ブラウザ 内に新しい Blackboard アセットも作成されます。

Behavior Tree タスクを作成する

タスク とは、ある場所に移動したり、何かに向かって回転するなど、AI に実行させたい「アクション」のことです。

最適化が問題になる場合は、Blueprint Behavior Tree タスクをネイティブの Behavior Tree タスクに切り替えることをお勧めします。

既存の タスク に加えて、独自のロジックでカスタム タスク を作成することができます。

[Behavior Tree Editor] 内のツールバーから [New Task] ボタンをクリックします。

BTUG_Task.png

これにより、 タスク ロジックの作成が可能な新しい BTTask_BlueprintBase クラスの新しい ブループリント が開きます。

BTUG_Task_2.png

Task ブループリント は、 コンテンツ ブラウザ 内の Behavior Tree アセットと同じ場所に作成されます。

ビヘイビアツリー エディタ から新しい タスク を作成するときは常に、デフォルトの名前を使用する代わりに、 コンテンツ ブラウザ にアクセスしてアセットの名前を変更することをお勧めします。

新しい タスク を作成するときは、既存の Behavior Tree タスク 親クラス として使用し、ドロップダウンメニューから機能を継承することができます。

BTUG_Task_3.png

Behavior Tree デコレーターを作成する

デコレーター (条件式とも呼ばれます) は ビヘイビアツリー の内側のノードにアタッチし、ツリー内のブランチ (またはノード 1 つでも) を実行可能にするかどうかの決定に使用できます。 ビヘイビアツリー で使用できるデフォルトの デコレーター がいくつかありますが、カスタムのデコレーターも作成できます。

ビヘイビアツリー エディタ 内のツールバーから [New Decorator] ボタンをクリックします。

BTUG_Decorator.png

これにより、新しい デコレーター ロジックの作成が可能な新しい BTDecorator_BlueprintBase クラスが開きます。

BTUG_Decorator_2.png

Decorator ブループリント は、 コンテンツ ブラウザ 内の Behavior Tree アセットと同じ場所に作成されます。

ビヘイビアツリー エディタ から新しい デコレーター を作成するときは常に、デフォルトの名前を使用する代わりに、 コンテンツ ブラウザ にアクセスしてアセットの名前を変更することをお勧めします。

新しい デコレーター を作成するときは、既存の Behavior Tree デコレーター 親クラス として使用し、ドロップダウンメニューから機能を継承することができます。

BTUG_Decorator_3.png

Behavior Tree サービスを作成する

サービス Composite ノードにアタッチされ、ブランチが実行されている限り、定義された頻度で実行されます。これらは ブラックボード のチェックや更新によく使われ、他の Behavior Tree システムの従来の Parallel ノードに取って代わるものです。デフォルトで利用可能な サービス はいくつかありますが、 ビヘイビアツリー の実行方法の決定を支援する独自のカスタム サービス を作成することができます。

最適化が問題になる場合は、Blueprint Behavior Tree サービスをネイティブの Behavior Tree サービスに切り替えることをお勧めします。

ビヘイビアツリー エディタ 内のツールバーから [New Service] ボタンをクリックします。

BTUG_Service.png

これにより、新しい サービス ロジックの作成が可能な新しい BTService_BlueprintBase クラスが開きます。

BTUG_Service_2.png

Service ブループリント は、 コンテンツ ブラウザ 内の Behavior Tree アセットと同じ場所に作成されます。

ビヘイビアツリー エディタ から新しい サービス を作成するときは常に、デフォルトの名前を使用する代わりに、 コンテンツ ブラウザ にアクセスしてアセットの名前を変更することをお勧めします。

新しい サービス を作成するときは、既存の Behavior Tree サービス 親クラス として使用し、ドロップダウンメニューから機能を継承することができます。

BTUG_Service_3.png

ブラックボードを編集する

通常、 ビヘイビアツリー が 意思決定プロセスにおいて ブラックボード を参照するために、 ビヘイビアツリー の前に ブラックボード を作成します (必要に応じていつでも キー を追加できます)。 [コンテンツ ブラウザ] でアセットをダブルクリックして ブラックボード エディタ を開くと、 Blackboard アセットを編集できます。

BTUG_BB_01.png

ブラックボード が割り当てられた ビヘイビアツリー を編集している場合は、ウィンドウの右上隅にあるタブをクリックして ブラックボード に切り替えることができます。

BTUG_BB_02.png

[Blackboard Details] パネルでは、 としてもう 1 つの ブラックボード を割り当てると、そこから キー を継承することができます。

BTUG_BB_Parent-1.png

ブラックボード ウィンドウにある [New Key] ボタンをクリックすると、 キー を追加できます。

BTUG_BB_03.png

キー として保存できる変数型の詳細については、 「Blueprint Variables」 を参照してください。

キー が作成されたら、 [Blackboard Details] パネルで キー に関連するプロパティを定義できます。

BTUG_BB_04.png

プロパティ

説明

Entry Name

キーのユーザー定義名です。

Entry Description

この Blackboard Key の機能を説明するオプションの説明です。

Key Type

キーの作成時に定義されていますが、 Object キーと Class キーには、特定の クラス を定義できるより多くの追加オプションが用意されています。これにより、Object (アクタのようなもの) から継承された任意のタイプのデータを格納できます。

Instance Synced

これは、ブラックボードのすべてのインスタンスでキーの同期の決定に使用されます。

Rename または Delete を行うには、 キー を右クリックしてコンテキスト メニューを表示するか、 キー 上で F2 キーまたは Delete キーを押します。

BTUG_BB_05.png

Class キーと Object キーの場合、 [Key Type] の横にある小さな三角形をクリックすると、使用する Base Actor クラスを定義できます。

BTUserGuide_BaseClass.png

Enum キーの場合は、 [Key Type] の横にある小さな三角形をクリックして設定できる追加のプロパティがあります。

BTUserGuide_AdvancedEnum.png

プロパティ

説明

Enum Type

割り当てられた列挙型を使用します。

Enum Name

C++ コードで定義された列挙型の名前は、 Enum Type で割り当てられたアセットよりも優先されます。

Is Enum Name Valid

Enum Name のオーバーライドが有効でアクティブなときに設定します。

ビヘイビアツリーを編集する

ビヘイビアツリー を編集するには、 Behavior Tree アセットを開く必要があります。

[コンテンツ ブラウザ] Behavior Tree アセットをダブルクリックして、 [Behavior Tree Mode] に入ります。

BTUG_BT_01-1.png

または Behavior Tree モード に切り替えることでも可能です。

[Behavior Tree Editor] の右上隅にある [Behavior Tree] タブをクリックします。

BTUG_BT_02-1.png

[Behavior Tree Mode] に切り替えるには、現在開いている Behavior Tree アセットを持っており、 [Blackboard Mode] から切り替えている必要があります。

ブラックボードを割り当てる

ビヘイビアツリー ブラックボード にアクセスするためには、 Blackboard アセットを割り当てる必要があります。

グラフ内の Root ノードを選択 (またはすべてのノードの選択を解除) してから、 [Details (詳細)] パネルで必要な Blackboard アセット を設定します。

BTUG_BT_03-1.png

ブラックボード を割り当てた後、 [Blackboard] パネルは関連付けられた Blackboard Key で更新されます。

BTUG_BT_03b-1.png

ノードを操作する

ビヘイビアツリー のグラフに コンポジット 、または タスク を追加するには、グラフを右クリックしてコンテキスト メニューを表示し、目的のノードを選択します。

BTUG_BT_Nodes.png

ビヘイビアツリー Root ノードに接続できるのは、 Composite ノードだけです。

ノードをドラッグして追加したいノードをコンテキスト メニューから選択することもできます。

BTUG_BT_DragAdd.png

グラフからノードを削除するには、1 つのノード (もしくは複数のノード) を選択して Delete キーを押します (または右クリックして Delete キーを押します)。

BTUG_BT_Delete.png

ノードを接続するには、左クリックして出力ピンから別のノードの入力ピンにドラッグします。

BTUG_BT_ConnectNodes.png

ビヘイビアツリー でノードを接続するには、出力を入力に接続する必要があります (入力から出力に接続することはできません)。

ノードを切断するには、ノードを右クリックして (または選択したノードを定義して) 希望の [Break Link(s)] メソッドを選択します。

BTUG_BT_BreakLinks.png [Break Link(s)] を使用すると、リンクされている 1 つまたは複数のノードを切断できます。 [Break link to ...] をクリックすると、指定したノードへの接続が切断されます。

入力ピンまたは出力ピンを Alt +左クリックして接続を解除することもできます。

ノードを編集するには、ノードを選択してから、 [Details] パネルでそのプロパティを調整できます。

BTUG_BT_NodeDetails.png

選択したノードとその設定をコピーして貼り付けることもできます。これを行うには、ノードを選択して (または選択ボックスを選択したノードの周囲にドラッグして) ctrl + c (コピー) および ctrl + v (ペースト) を押します。

BTUserGuide_CopyPasteNodes.png

ノード デコレーターとサービス

ノードのコンテキスト メニューから Behavior Tree グラフのノードに デコレーター 、または サービス を追加できます。

これを行うには、 Composite ノードまたは Task ノードを右クリックして、ノードに追加する デコレーター または サービス を選択します。

BTUG_RightClickContext.png

ノードから デコレーター 、または サービス を削除するには、 デコレーター 、または サービス を選択してから Delete キーを押すか、右クリックのコンテキスト メニューを使用します。

BTUG_DeleteContext.png

ノードに接続されている デコレーター 、または サービス を編集するには、まず デコレーター 、または サービス を選択してから、 [Details] パネルで目的のプロパティを調整できます。

BTUG_DecoratorDetails.png

ノードに追加された Composite デコレーター は、編集用に開くことができます。

Composite デコレーターを開くには、 Composite デコレーターをダブルクリックして、ブール値 (true またはfalse) を返すグラフを開きます。

クリックして拡大

ツールバーから作成された タスク デコレーター 、または サービス は、編集用に ブループリント で開くことができます。

カスタムの タスク デコレーター 、または サービス を作成してグラフに追加したら、それをダブルクリックして編集用に開きます。

BTUG_UserGenerated.png

また、 [コンテンツ ブラウザ] で任意のカスタム タスク デコレーター 、または サービス を開くこともできます。

[コンテンツ ブラウザ] でカスタム タスク デコレーター 、または サービス をダブルクリックして、編集用に ブループリント で開きます。

BTUG_ContentBrowser.png

また、 デコレーター サービス をコピーして他のノードに貼り付けることもできます。

デコレーターまたはサービスを選択して、ctrl + c (コピーする) と ctrl + v (ペーストする) を押して別のノードに移動します。

BTUserGuide_DecoratorsServices.png

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる