Pathfinding と PathfindingBasic は、AI システムに含まれている a-star アルゴリズムです。これらにより、AI エージェントは生成されたパスをたどってターゲットに向かうことができます。
両クラスの主な違いは、Pathfinding は重力を考慮するため、プラットフォームからプラットフォームへジャンプする必要がある AI エージェントに最適であることです。他にも多くの高度な機能があります。AI エージェントは、はしご、壁、天井を登ったり、橋の上を歩いたりすることができます。
PathfindingBasic は重力を無視し、2D の世界で一般的に使用することを目的としています。
両方のシステムは、AITree と AIFSM の両方の Territory タブにあります。
パスファインディング領域が作成されると、緑色の長方形のギズモがシーンに表示されます。この長方形を、Collider2D と適切なレイヤー (通常はワールド) を含むゲーム オブジェクト上にドラッグしてサイズを変更します。これがパスが生成される領域になります。
Pathfinding | |
---|---|
Data Name | パスファインディング領域の名前。 |
Layer World | このレイヤーに対してレイキャストを使用して、パスファインディング地形を作成します。これが設定されていない場合は、何も機能しません。 |
Max Jump Height | AI エージェントがプラットフォームに Y 方向にジャンプできる最大の高さ。 |
Max Jump Distance | AI エージェントが x 方向にプラットフォームにジャンプできる最大距離。 |
Cell Size | グリッド内の各セルのサイズ。 |
Show Paths | 有効にすると、関連するパス ノードとグリッドが表示されます。 |
Add Ladders, Walls, Ceilings, Bridge | これが有効になっている場合は、グリッドに移動して、この機能を追加したいセルをクリックします。削除するには、セルをもう一度クリックするだけです。壁とはしごは垂直線で作成する必要があります。天井と橋は水平線で作成する必要があります。橋のせいで AI エージェントが下にたわまないように、橋には追加の円が必要です。完了したら、このトグルを無効にして、[Create Paths] ボタンを押して新しい変更を含めます。 |
Create Paths | これを押すと、必要なパス ノードが作成されます。これらの設定を変更するたびに、このボタンを再度押す必要があります。 |
作成ボタンを押すと、関連するパス ノードが表示されます。
緑のダイヤモンドは地面を表します。ここは AI が歩くことができる場所です。
青いダイヤモンドはジャンプ接続を表します。2 つのプラットフォームが青いダイヤモンドで接続されていない場合、AI はプラットフォーム間をジャンプできません。
赤い小さなダイヤモンドは常に垂直で、AI が落下できるパスを表します。これらのパスは AI がジャンプするには高すぎますが、AI が落下することは可能です。
黄色の円ははしごを表します (図には示されていません)。
オレンジ色の円は橋を表します。その他のフィーチャには、独自の色が含まれます。
Warning
タイルマップを Composite Collider 2D とともに使用する場合、これらのコライダーは内部からのレイキャストを検出できないため、パスの作成は機能しません。簡単に修正するには、ジオメトリ タイプをポリゴンに変更し、パスの作成ボタンを押してから、必要に応じて元のジオメトリ タイプに戻します。

下のアニメーションでは、AI エージェント (赤い四角) がパスをたどってプレイヤーに到達しているのがわかります。赤い円は、AI エージェントがたどっているパスを表しています。

パスファインディングクラスを作成したら、それを独立したのゲームオブジェクトとして、ノードやステートを追加しないでください。その唯一の役割はパスを生成することです。これは、同じパスファインディングクラスを参照する AI エージェントが複数ある場合に便利です。
生成されたパスをたどる AI エージェントを作成するには、別のゲーム オブジェクトを作成し、AI システムを追加します。
ターゲットを 2 つ作成します。
1 つのターゲットはパスの終点 (通常はプレイヤー) になります。
もう 1 つのターゲットは Target Pathfinding です。このターゲットは、パスファインディング クラスへの参照を保持し、たどる速度を指定し、パスの生成を要求します。
Target Pathfinding | |
---|---|
Data Name | パスファインダーの名前。 |
Map | パスファインディングクラスへの参照。 |
Speeds | AI エージェントがパスに沿って使用する関連速度。 |
Ignore Units | 無効にすると、AI エージェントは特定の状況で同じパスに沿って互いをブロックしようとします。これは、AI エージェントが重複するのを防ぐためです。重複を防ぐ他の方法としては、各 AI エージェントにわずかに異なる速度を与えることです。 |
Pause After Jump | AI エージェントがジャンプするたびに、指定された時間だけ一時停止してから、パスに沿って移動を続けます。これにより、エージェントの動きがより自然に感じられるようになります。 |
最後のステップは、Pathfinder ノードを作成することです。これは、AIFSM を使用する場合はステート内に作成され、AITree を使用する場合はツリーノードとして作成されます。
Pathfinder | |
---|---|
Pathfinding | ターゲットパスファインディングへの参照。 |
Target | AI エージェントが追跡しようとしているターゲットへの参照。 |
Reset Distance | ターゲットの位置がこの量だけ変化すると、システムは AI エージェントがたどる新しいパスを生成します。 |
Success On | 有効にすると、条件が成功した場合にこのノードは Success を返します。 |
Note
PathfindingBasic を設定する手順は同様ですが、その単純な性質のため設定は少なくなります。