x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

AIの仕組みについて

AIについて質問です。普段ランダムでそこら辺をうろついているAIキャラが、こちらの姿を目撃すると追いかけてくる。というのを作って、実現はできたのですが、デコレーターの「BlackBoard」にある「Is Set」と「Is Not Set」の意味が全くよくわかりません。「BlackBoard Key」に「Player(自分のこと)」を設定し、「Is Not Set」にしたらなぜうまくいったのか、逆に、「Is Not Set」を「Is Set」にしたらなぜランダムにうろついているだけで、こちらを追いかけてこないのか、どういう流れで何がどうなっているのか、alt textロジックが全くよくわかりません。お助けください

Product Version: UE 4.19
Tags:
more ▼

asked Apr 03 '18 at 12:12 PM in Japanese

avatar image

DANTE31425
95 4 11 13

(comments are locked)
10|2000 characters needed characters left

1 answer: sort voted first

Blackboardデコレータの動きは、以下のとおりです

Is Set は対象のBlackboard項目が設定されている場合True (≒型の初期値ではない)
Is Not Setは対象のBlackboard項目が設定されていない場合True (≒型の初期値である)

以下にドキュメントへのリンクを貼っておきます

Behavior Tree ノードのリファレンス:Decorators


画像のビヘイビアツリーの場合、追いかける対象を見つけていない場合(つまりBlackboardのPlayerがNone)の場合にランダム移動になるように設定されています

ここでもし Is Not SetIs Set に変えた場合、追いかける対象を見つけている場合にランダム移動する、に変わります

ただこの場合、対象を見つけていないときに実行されるMoveToタスクは追いかける対象がない(移動先がない)ので、動かなくなります

more ▼

answered Apr 03 '18 at 12:36 PM

avatar image

T_Sumisaki
3.4k 26 4 8

avatar image DANTE31425 Apr 03 '18 at 02:39 PM

対象のBlackBoard項目というのは、右側のMove ToのBlackBoard Keyに設定されている「Player」のことでしょうか?? そうであれば、デコレーターで設定したBlackBoard KeyとMoveTo側で設定したBlackBoard Keyが一致していれば、本来順番的に一番最初に流れるSequence側の処理を強制的に終了させて、右側の処理から流すといういわば、「True」=「流れの逆転」ということでしょうか?? そして、Is Not Setだった場合は、こちら側を見つけた時に、BlackBoardに格納した変数「Player」に「Actor(自分のの事)」の情報が入り、その情報がMoveToで設定されている「Player」と一致して右側の処理に流れるという感じでしょうか?? 正直、かなり苦し紛れな解釈かもしれません。何かおかしな解釈などあれば指摘してください。

avatar image T_Sumisaki Apr 03 '18 at 03:08 PM

デコレーターは「そこから下のツリーを実行していいかどうか」の判断に使用します

今回の説明で言う「対象のBlackboard項目」というのは、あくまでもBlackboardデコレータのBlackboard Keyに指定された項目であり、デコレーターはその項目が Is Set であるか Is Not Set であるかを判断します

デコレーターの結果がTrueである場合、デコレーターが設定されているノード以下に処理が流れ、Falseの場合は一切実行されなくなります

今回の場合でいうと、追いかける対象がない(Player->IsNotSetの結果がTrueである)場合のみ、ランダム移動のツリーへ処理が流れます(左側のツリーです)
そして追いかける対象がある(Player->IsNotSetの結果がFalse)場合は、ランダム移動のツリーは実行せず、右側のツリーへと処理が移ります

alt text

img-0216.jpg (532.9 kB)
avatar image DANTE31425 Apr 03 '18 at 04:38 PM

なるほど。つまり、「Player:Is Not Set」というのは「Player」変数に自分の情報が入っていない(自分が見つかってない)「None」の状態の時=Trueであり、だからその下のSequenceの処理が流れるということですか??そして、自分が見つかった!→TrueになってたのがFalseになり、下のSequenceの処理を止め、右のMove Toに流れるということでしょうか??

avatar image T_Sumisaki Apr 04 '18 at 02:10 AM

そのとおりです


今更ではありますが、ドキュメントへのリンクを貼っておきます

ビヘイビアツリー

avatar image DANTE31425 Apr 04 '18 at 03:19 AM

理解しました!ついでにドキュメントへのリンクも教えて頂きありがとうございます!助かりました!

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question