3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UE5】AI触って身についた自分の知見

Last updated at Posted at 2024-12-21

概要

AIの設計や学習をしてて、身について知見をまとめます。
一つだけだと数行で終わってしまうので、いくつか書いてみます。

毎回実行してほしいタスクを作る

※もっといいやり方があったら知りたいです!

事前 SelectorとSequencerについて

処理分岐に関して、SelectorとSequencerというのがあります。
分かりやすい情報⇒https://historia.co.jp/archives/29055/

今回は、敵が攻撃する対象に優先度をつけ、発見した対象に対して近づいて攻撃するような仕組みを行うため、Selectorを用いてます。
以下のような形で分岐させてます、そのうえでこの記事を書いていきます。
image.png
※ルートがNoneなのは画像用です。

1.BTTask_BlueprintBaseを継承して新しいタスクを作成

雑に「NewBlueprint」という名前のタスクにしておきます。
image.png

2.Receive Execute AIをオーバーライドして作成

image.png
image.png

3.Finish Executeを呼び出してノードをつなげる

今回用いているのはSelectorのため、Successはチェックを入れないままにしておきます。
image.png

4.タスクをビヘイビアツリーでつなげる

Selector先で一番最初にタスクが実行されるようにすれば、必ず処理されるようになります。
image.png

アクターのBPに通知する

タスクからインターフェースを利用してアクターに通知させて処理を実行させてます。

事前 インターフェースについて

分かりやすい情報⇒https://zenn.dev/posita33/books/ue5_starter_cpp_and_bp_001/viewer/chap_03_bp-interface

1.インターフェースを作成

「BPI_Test」という名前にしておきます。
image.png

2.関数を作成

ブループリントを開くと関数名を決めさせられるので、「DoPlay」としておきます。
image.png

3.アクターとタスクにインターフェースを追加

アクターBPとタスクBPのクラス設定を編集からインターフェースの追加をします。
image.png
image.png

4.アクターに「DoPlay」のイベントを呼ぶ

インターフェースを追加したことにより、イベントの追加が行えるようになりました。
image.png
試しに処理をこうやって置いておきます。
image.png

5.タスクで「DoPlay」を実行

メッセージのほうで「DoPlay」を呼んで実行させるようにします。
タスクはさっきやってたものです。
image.png
image.png

6.アクターのほうで呼んでることを確認

Helloが出たのを確認できたので、意図通りに処理されていそうです。
image.png

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?