回答:
WC3開発者がどのようなアプローチを使用していたかははっきりとは言えませんが、階層的注釈付きA *に非常によく似ています。WC3Editorで定義された単位半径は3Dモデルのスケーリングにそのまま使用されましたが、パスファインディングの実際の単位サイズは離散的で、おそらくunitSize =(int)(unitRadius / 10)のようなものです。それはベクトルベースではなかった、それは確かだ。
高解像度のノードグリッドを作成するパスノードがたくさんあるとしましょう。グールのような単純なユニットのサイズは2であるため、グリッド内のどこかに配置するには、互いに近くに4つのフリーパスノードが必要です。デスナイトヒーローはわずかに大きく、サイズは3で、合計9つのパスノードを取ります。ここで、2つのノード幅のスペースを残して2つのジグラットを一緒に配置し、反対側にグールとデスナイトを送ります。グールは2つのジグラットの間を通過できますが、死の騎士は動き回らなければなりません。どのように決定できますか?
ノードが特定のサイズのユニットに対応できるかどうかを確認するために、最大許容ユニットサイズを定義する各ノードに特別なクリアランス値を割り当てましょう。基本的に、これはノードに対していくつかの境界チェックが行われ、可能な最大の境界がノードのクリアランスとして記憶されていたことを意味します。したがって、あるノードにデスナイトを配置したい場合、ノードのクリアランスとデスナイトのサイズを比較するだけで簡単になります。もちろん、ノードをめぐって競合する複数のユニットがあると、状況はさらに複雑になりますが、それは別の話です。
詳細については、この記事をご覧ください。
http://harablog.wordpress.com/2009/01/29/clearance-based-pathfinding/