コリジョンの高さに差があると、ビヘイビアツリーのMoveToが効かないことがある
妹「2Dでナビメッシュが動かない理由調べてたんだけど、なんか追いかけれるキャラを自作のやつから、デフォルトの2DScrollなんとかに変えたら、普通に追っかけられるようになったんだよ。なんでだろ?」
「動くってことはやり方はあってるってことだから、キャラの違うところを1個1個調べてみましょうか」
妹「違うところっていってもなあ、ブループリントとか色々違うし」
「そういうのじゃなくパラメータの違いのような気がするんだけど。とりあえずコリジョンを同じにして……あ、動いた」
妹「えー……なんで大きさ……」
「うーん、あー、これひょっとして高さが違うせいかなあ。プレイヤーの位置をGetActorLocationで調べて、同じ位置に移動しようとするわけだけど、よく考えたらこの位置って、カプセル型コリジョンの中心なんだよね。追いかける方も同じ。だけで追いかける方が高さが低いから、同じ場所にいてもZ軸の値が変わる」
妹「高さが違っていると駄目なの?」
「高い位置を目的地にして動くってことは、ビヘイベアツリーのMoveToで追いかけるとき、空中に行かなきゃいけないってことだと思うんだよ。ビヘイベアツリーにジャンプの仕組みとかはないし、これ空中だから無理だなって話になって諦めてるんじゃないかな?」
妹「そういえば追いかけてる時でも、ジャンプ中で空中に居る時は追ってこなかったような。なんで諦めちゃうんだ……」
「という仮説を実証するために、コリジョンは元に戻して、MoveToの基準になってるプレイヤー座標を少し調整する。そのまま使うんじゃなく、Zをもう少し下に、歩いていける範囲になるようにする」
「この状態で実行すると、行き先が行動範囲にある座標だと認識して、追いかけてくれるようになる」