【Unity】Behavior Designerをサクッと使う!Behavior Treeを簡単ビジュアルスクリプティング

UnityでBehavior TreeをビジュアルスクリプティングできるAssetであるBehavior Designerをサクッと使ってみます。

Unity2018.3.9

Behavior Designerとは?

Behavior DesignerはUnityでBehavior Treeを使うためのアセットです。

assetstore.unity.com

本記事ではこのアセットの使い方を紹介します。

また、Behavior TreeのTaskについての基本的な考え方は下記の記事にまとめています。
本記事の内容はこのあたりを理解していることを前提としているので、必要に応じて参照してください。

light11.hatenadiary.com

インストール~ウィンドウを開く

インストール方法は他のAssetと同様です。
AssetStoreからダウンロードしてください。

assetstore.unity.com

インストールが完了するとTools > Behavior Designer > Editorからウィンドウが開けます。

f:id:halya_11:20190331000159p:plain

こんな感じのウィンドウが開かれればOKです。

f:id:halya_11:20190331000454p:plain

Behavior Treeを作成してログ出力する

それでは簡単なBehavior Treeを作ってみます。

まずBehavior Designerのウィンドウを開いた状態で適当なGameObjectを選択します。
次に右クリック > Add Behavior Treeを選択します。

f:id:halya_11:20190331000946p:plain

これでBehavior TreeのコンポーネントがGameObjectにアタッチされました。
次にログ出力するTaskを追加します。
右クリック > Add Task > Actions > Logを選択します。

f:id:halya_11:20190331001154p:plain

生成されたTaskを選択し、Behavior DesignerのInspectorからテキストを適当に入力します。

f:id:halya_11:20190331001659p:plain

これでログ出力を行うシンプルなBehavior Treeができました。
再生確認するために、BehaviorタブのStart When Enabledにチェックが入っていることを確認します。

f:id:halya_11:20190331001900p:plain

この状態で再生すると、ログ出力が行われることが確認できます。

f:id:halya_11:20190331002010p:plain

もう少し複雑なTreeを作る

次にもう少し複雑なBehavior Treeを作ってみます。

先ほどのLog TaskはDeleteボタンで削除しておきます。
Add Task > Composites > Sequenceを追加し、Entryに接続します。

f:id:halya_11:20190331003638p:plain

Sequenceは子タスクを順番に実行していきます。
子タスクのうちいずれかが失敗した場合にはその時点で失敗を返します。

次にこの子タスクとしてLog Taskを追加して適当に文字列を入れておきます。
また、Conditionals > Unity > Math > Bool Comparisonも追加します。
Bool Comparisonはbool値を比較してtrueならTaskを成功とするTaskです。
とりあえず二つのbool値に同じ値を入れて成功するようにしておきます。

f:id:halya_11:20190331004455p:plain

次にDecorators > Repeaterを追加し、Countを3に設定します。
Repeaterは子タスクを指定回数だけ実行します。
そしてこの子タスクとしてLogを追加し、文字列を適当に入力します。

f:id:halya_11:20190331004709p:plain

これを実行すると、すべて成功し次のような結果となります。

f:id:halya_11:20190331005425p:plain

Bool Comparisonが失敗するようにして実行すると次のように「Log 1」だけが出力されます。

f:id:halya_11:20190331005513p:plain

関連

light11.hatenadiary.com