Skip to main content

グラフノードを変換しよう

tkglingLess than 1 minuteProgrammingSwift

グラフノードとは

要するにただのグラフである。以下のようなものを想像してもらえばよく、それぞれのノードはスタート地点からの距離に応じたコストを持っている。

コストについて

今回はスタート地点からの距離をコストとしたが、より正確には「ノードを繋ぐエッジに重みがある」とする方が正しい。

そうでないと、例えばこのデータだけではコスト 8 のノードからコスト 8 のノードへ移動するときにいくらコストがかかるかをパッと計算することができない。ただし、ガチホコバトルにおいては「ゴールまでの距離」がカウントとして扱われるのでこのような表記とした。

スプラトゥーンのグラフノード

スプラトゥーンにおけるグラフノードはサーモンランなどでも使われている。サーモンランの場合はシャケが通行可能なルートをグラフノードで制御していたりする。

このグラフノードは BYAML という XML を暗号化したフォーマットで与えられており、普通のエディタでは中身を見ることができない。

ただ、そこはスーパーハカーが復号用のプログラムopen in new windowを開発してくれている。この中にあるThe4Dimension.exeを使ってBYAML、BYML、BPRMなどのデータを復号することができる。

BYAML などについて

ちなみに BYAML などの最初についている B は Binary を意味している。バイナリ化することでファイルサイズを圧縮しているのだ。

復号のために必要な知識はWikiopen in new windowにのっているので自作ライブラリをつくってみるのも良いかもしれない。ちなみにぼくは挫折しました。

変換のための手順

必要なものは以下の通り。

Last update:
Contributors: tkgstrator