Categories
Tags
Alamofire Android AppStoreConnect AWS Bun C++ cAdvisor CFW Cloudflare Cloudflare Access Cloudflare KV Cloudflare Tunnel Cloudflare Workers D1 Deno DevContainer Discord Docker ECR ECS Edizon Emulator EmuMMC Fastlane Firestore Frida Ghidra Git GitHub GitHub Actions GitLab GPG Grafana HACGUI Heroku Homebrew Hono IDA Pro iOS IPSwitch Jailbreak Javascript JSON JWT LanPlay Linode macOS Mirakurun MongoDB NestJS NextJS Nintendo Nintendo Switch NodeJS PHP PostgreSQL Prisma Programming Prometheus Python React Realm RealmSwift Ruby Salmon Run Salmonia3+ Shogi Sideload Snap Splatoon Splatoon2 Splatoon3 SSH Stable Diffusion Starlight Swift Swift Package SwiftUI Switch TensorRT Turf War Typescript TypeScript Ubuntu Ubuntu Server VNC VPN VSCode Vue WARP Wireguard XCode Xcode yarn zsh 家電 横歩取り
544 words
3 minutes
グラフノードを変換しよう
グラフノードとは
要するにただのグラフである。以下のようなものを想像してもらえばよく、それぞれのノードはスタート地点からの距離に応じたコストを持っている。
::: tip コストについて
今回はスタート地点からの距離をコストとしたが、より正確には「ノードを繋ぐエッジに重みがある」とする方が正しい。
そうでないと、例えばこのデータだけではコスト 8 のノードからコスト 8 のノードへ移動するときにいくらコストがかかるかをパッと計算することができない。ただし、ガチホコバトルにおいては「ゴールまでの距離」がカウントとして扱われるのでこのような表記とした。
:::
スプラトゥーンのグラフノード
スプラトゥーンにおけるグラフノードはサーモンランなどでも使われている。サーモンランの場合はシャケが通行可能なルートをグラフノードで制御していたりする。
このグラフノードは BYAML という XML を暗号化したフォーマットで与えられており、普通のエディタでは中身を見ることができない。
ただ、そこはスーパーハカーが復号用のプログラムを開発してくれている。この中にあるThe4Dimension.exe
を使ってBYAML、BYML、BPRM
などのデータを復号することができる。
::: tip BYAML などについて
ちなみに BYAML などの最初についている B は Binary を意味している。バイナリ化することでファイルサイズを圧縮しているのだ。
復号のために必要な知識はWikiにのっているので自作ライブラリをつくってみるのも良いかもしれない。ちなみにぼくは挫折しました。
:::
変換のための手順
必要なものは以下の通り。
- SARC-Tool
- 圧縮ファイルを解凍するためのツール
- 解凍して BYAML データを手に入れます
- TheFourthDimension
- BYAML を XML に変換するツール
- VSCode
- XML を編集/閲覧するテキストエディタ
- 好きなのを使えばいいけど、これをオススメ
- 実際、エディタはなくても困らないけど解説のために載せておく