AlgorithmA*アルゴリズムで最短経路を探索してみます。長くなったのでまずは理論編のみ。下準備A*の考え方を説明するうえで、まずは下図のようなグリッドを考えます。Wall以外のセルを通ってStartからGoalまで到達するための最短経路を求めます。隣接セルを取得してweightを計算するまずStartセルに隣接するセルを取得します。取得セルごとにStartからの道のりとGoalまでの距離を求め、それらを加算してweightとします。weightが低いものを「採用」とし、次のセルを検索する際の起点とします。前のセルをpreviousとして保存しておきます。計算を1セル進めて末端セルを比較する次に、前回「採用」となったセルに隣接するセルを取得します。計算済みのセルは除きます。計算は前回と同様に行い、まだ隣接するセルを取得していないセル、つまり末端のセルのうち、weightが最も低いものを「採用」とします。末端セルの最低weightが同じ場合はどちらかを「採用」する同様に、「採用」セルから隣接するセルを取得して進めます。下図のように末端セルのweightが同じになった場合には適当にどちらかを「採用」とします。1)のセルを「採用」としてみます。計算を進める同様に計算を進めます。0)のweightが4で最低となりました。0)のセルを「採用」とします。Goalを発見したら探索完了とする「採用」セルの隣接セルを取得したところ、Goalが見つかりました。Goalが見つかったらその時点で探索完了とします。GoalからStartまでの道のりを逆に辿るGoalを発見したら後はpreviousのセルを辿っていきます。それらのセルが最短経路となります。以上で最短経路が求められました。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。