Choose your operating system:
Windows
macOS
Linux
Behavior Tree アセットを作成する
このセクションでは、Unreal Engine 4 内に様々な Behavior Tree アセットを作成する方法について説明します。
ビヘイビアツリーを作成する
ビヘイビアツリー は基本的に AI のプロセッサであり、その結果に基づいて決定を行い、さまざまなブランチを実行することができます。 ビヘイビアツリー は、以下のようにして コンテンツ ブラウザ 内に作成されます。
[Add New] ボタンをクリックし、[Create Advanced Asset] で [Artificial Intelligence] と [Behavior Tree] を選択します。
新しい Behavior Tree アセットが コンテンツ ブラウザ に追加されるので、名前を付けます。
右クリックのコンテキスト メニューを使用して、[Add New]>[Artificial Intelligence]>[Behavior Tree] を選択することもできます。
ブラックボードを作成する
Blackboard アセットは、AI の「頭脳」と考えることができ、 ビヘイビアツリー がその決定に必要な キー の値を格納します。Blackboard アセットは以下の方法で作成できます。
[Add New] ボタンをクリックし、[Create Advanced Asset] の下の [Artificial Intelligence] と [Blackboard] を選択します。
新しい Blackboard アセットが コンテンツ ブラウザ に追加されます。このブラウザを使用して、任意の名前に変更できます。
ビヘイビアツリー内にブラックボードを作成するもう 1 つの方法があります。
ツールバーから [Behavior Tree Editor] 内の [New Blackboard] ボタンをクリックします。
これにより、 コンテンツ ブラウザ 内に新しい Blackboard アセットも作成されます。
Behavior Tree タスクを作成する
タスク とは、ある場所に移動したり、何かに向かって回転するなど、AI に実行させたい「アクション」のことです。
最適化が問題になる場合は、Blueprint Behavior Tree タスクをネイティブの Behavior Tree タスクに切り替えることをお勧めします。
既存の タスク に加えて、独自のロジックでカスタム タスク を作成することができます。
[Behavior Tree Editor] 内のツールバーから [New Task] ボタンをクリックします。
これにより、タスク ロジックの作成が可能な新しい BTTask_BlueprintBase クラスの新しい ブループリント が開きます。
Task ブループリント は、 コンテンツ ブラウザ 内の Behavior Tree アセットと同じ場所に作成されます。
ビヘイビアツリー エディタ から新しい タスク を作成するときは常に、デフォルトの名前を使用する代わりに、 コンテンツ ブラウザ にアクセスしてアセットの名前を変更することをお勧めします。
新しい タスク を作成するときは、既存の Behavior Tree タスク を 親クラス として使用し、ドロップダウンメニューから機能を継承することができます。
Behavior Tree デコレーターを作成する
デコレーター (条件式とも呼ばれます) は ビヘイビアツリー の内側のノードにアタッチし、ツリー内のブランチ (またはノード 1 つでも) を実行可能にするかどうかの決定に使用できます。 ビヘイビアツリー で使用できるデフォルトの デコレーター がいくつかありますが、カスタムのデコレーターも作成できます。
ビヘイビアツリー エディタ 内のツールバーから [New Decorator] ボタンをクリックします。
これにより、新しい デコレーター ロジックの作成が可能な新しい BTDecorator_BlueprintBase クラスが開きます。
Decorator ブループリント は、 コンテンツ ブラウザ 内の Behavior Tree アセットと同じ場所に作成されます。
ビヘイビアツリー エディタ から新しい デコレーター を作成するときは常に、デフォルトの名前を使用する代わりに、 コンテンツ ブラウザ にアクセスしてアセットの名前を変更することをお勧めします。
新しい デコレーター を作成するときは、既存の Behavior Tree デコレーター を 親クラス として使用し、ドロップダウンメニューから機能を継承することができます。
Behavior Tree サービスを作成する
サービス は Composite ノードにアタッチされ、ブランチが実行されている限り、定義された頻度で実行されます。これらは ブラックボード のチェックや更新によく使われ、他の Behavior Tree システムの従来の Parallel ノードに取って代わるものです。デフォルトで利用可能な サービス はいくつかありますが、 ビヘイビアツリー の実行方法の決定を支援する独自のカスタム サービス を作成することができます。
最適化が問題になる場合は、Blueprint Behavior Tree サービスをネイティブの Behavior Tree サービスに切り替えることをお勧めします。
ビヘイビアツリー エディタ 内のツールバーから [New Service] ボタンをクリックします。
これにより、新しい サービス ロジックの作成が可能な新しい BTService_BlueprintBase クラスが開きます。
Service ブループリント は、 コンテンツ ブラウザ 内の Behavior Tree アセットと同じ場所に作成されます。
ビヘイビアツリー エディタ から新しい サービス を作成するときは常に、デフォルトの名前を使用する代わりに、 コンテンツ ブラウザ にアクセスしてアセットの名前を変更することをお勧めします。
新しい サービス を作成するときは、既存の Behavior Tree サービス を 親クラス として使用し、ドロップダウンメニューから機能を継承することができます。
ブラックボードを編集する
通常、 ビヘイビアツリー が 意思決定プロセスにおいて ブラックボード を参照するために、 ビヘイビアツリー の前に ブラックボード を作成します (必要に応じていつでも キー を追加できます)。 [コンテンツ ブラウザ] でアセットをダブルクリックして ブラックボード エディタ を開くと、 Blackboard アセットを編集できます。
ブラックボード が割り当てられた ビヘイビアツリー を編集している場合は、ウィンドウの右上隅にあるタブをクリックして ブラックボード に切り替えることができます。
[Blackboard Details] パネルでは、 親 としてもう 1 つの ブラックボード を割り当てると、そこから キー を継承することができます。
ブラックボード ウィンドウにある [New Key] ボタンをクリックすると、 キー を追加できます。
キーとして保存できる変数型の詳細については、 「Blueprint Variables」 を参照してください。
キー が作成されたら、 [Blackboard Details] パネルで キー に関連するプロパティを定義できます。
プロパティ |
説明 |
---|---|
Entry Name |
キーのユーザー定義名です。 |
Entry Description |
この Blackboard Key の機能を説明するオプションの説明です。 |
Key Type |
キーの作成時に定義されていますが、 Object キーと Class キーには、特定の クラス を定義できるより多くの追加オプションが用意されています。これにより、Object (アクタのようなもの) から継承された任意のタイプのデータを格納できます。 |
Instance Synced |
これは、ブラックボードのすべてのインスタンスでキーの同期の決定に使用されます。 |
Rename または Delete を行うには、 キー を右クリックしてコンテキスト メニューを表示するか、 キー 上で F2 キーまたは Delete キーを押します。
Class キーと Object キーの場合、 [Key Type] の横にある小さな三角形をクリックすると、使用する Base Actor クラスを定義できます。
Enum キーの場合は、[Key Type] の横にある小さな三角形をクリックして設定できる追加のプロパティがあります。
プロパティ |
説明 |
---|---|
Enum Type |
割り当てられた列挙型を使用します。 |
Enum Name |
C++ コードで定義された列挙型の名前は、Enum Type で割り当てられたアセットよりも優先されます。 |
Is Enum Name Valid |
Enum Name のオーバーライドが有効でアクティブなときに設定します。 |
ビヘイビアツリーを編集する
ビヘイビアツリー を編集するには、 Behavior Tree アセットを開く必要があります。
[コンテンツ ブラウザ] で Behavior Tree アセットをダブルクリックして、[Behavior Tree Mode] に入ります。
または Behavior Tree モード に切り替えることでも可能です。
[Behavior Tree Editor] の右上隅にある [Behavior Tree] タブをクリックします。
[Behavior Tree Mode] に切り替えるには、現在開いている Behavior Tree アセットを持っており、[Blackboard Mode] から切り替えている必要があります。
ブラックボードを割り当てる
ビヘイビアツリー が ブラックボード にアクセスするためには、 Blackboard アセットを割り当てる必要があります。
グラフ内の Root ノードを選択 (またはすべてのノードの選択を解除) してから、[Details (詳細)] パネルで必要な Blackboard アセット を設定します。
ブラックボード を割り当てた後、 [Blackboard] パネルは関連付けられた Blackboard Key で更新されます。
ノードを操作する
ビヘイビアツリー のグラフに コンポジット、または タスク を追加するには、グラフを右クリックしてコンテキスト メニューを表示し、目的のノードを選択します。
ビヘイビアツリー の Root ノードに接続できるのは、 Composite ノードだけです。
ノードをドラッグして追加したいノードをコンテキスト メニューから選択することもできます。
グラフからノードを削除するには、1 つのノード (もしくは複数のノード) を選択して Delete キーを押します (または右クリックして Delete キーを押します)。
ノードを接続するには、左クリックして出力ピンから別のノードの入力ピンにドラッグします。
ビヘイビアツリー でノードを接続するには、出力を入力に接続する必要があります (入力から出力に接続することはできません)。
ノードを切断するには、ノードを右クリックして (または選択したノードを定義して) 希望の [Break Link(s)] メソッドを選択します。
入力ピンまたは出力ピンを Alt +左クリックして接続を解除することもできます。
ノードを編集するには、ノードを選択してから、[Details] パネルでそのプロパティを調整できます。
選択したノードとその設定をコピーして貼り付けることもできます。これを行うには、ノードを選択して (または選択ボックスを選択したノードの周囲にドラッグして) ctrl + c (コピー) および ctrl + v (ペースト) を押します。
ノード デコレーターとサービス
ノードのコンテキスト メニューから Behavior Tree グラフのノードに デコレーター、または サービス を追加できます。
これを行うには、 Composite ノードまたは Task ノードを右クリックして、ノードに追加する デコレーター または サービス を選択します。
ノードから デコレーター、または サービス を削除するには、 デコレーター、または サービス を選択してから Delete キーを押すか、右クリックのコンテキスト メニューを使用します。
ノードに接続されている デコレーター、または サービス を編集するには、まず デコレーター、または サービス を選択してから、 [Details] パネルで目的のプロパティを調整できます。
ノードに追加された Composite デコレーター は、編集用に開くことができます。
Composite デコレーターを開くには、Composite デコレーターをダブルクリックして、ブール値 (true またはfalse) を返すグラフを開きます。
クリックして拡大
ツールバーから作成された タスク、 デコレーター、または サービス は、編集用に ブループリント で開くことができます。
カスタムの タスク、 デコレーター、または サービス を作成してグラフに追加したら、それをダブルクリックして編集用に開きます。
また、 [コンテンツ ブラウザ] で任意のカスタム タスク、 デコレーター、または サービス を開くこともできます。
[コンテンツ ブラウザ] でカスタム タスク、 デコレーター、または サービス をダブルクリックして、編集用に ブループリント で開きます。
また、 デコレーター や サービス をコピーして他のノードに貼り付けることもできます。
デコレーターまたはサービスを選択して、ctrl + c (コピーする) と ctrl + v (ペーストする) を押して別のノードに移動します。