Skip to main content
スプラトゥーン3におけるシナリオプロトコル解説

基本的な背景

スプラトゥーン 2 ではGameRandomSeedという値をゲストに送ることで、ゲーム内容を同期しているということは何度も解説しているのですが、今回もまた大雑把に解説しようと思います。

以下、サーモンランのバイトを開始したときの主なプロトコルの内容です。

  1. ホストがGetGameRandomSeedを実行し、GameRandomSeedの値を取得する
  2. ホストがバイト開始時にGameRandomSeedを含むパラメータをPacketSeqEventCoopSetting()を呼び出してゲストに送信する
  3. ゲストがGameRandomSeedからゲーム内容を計算する
  4. ゲームを開始する

tkglingAbout 3 minNintendoHackSplatoon2Splatoon3IPSwitch
[リーク] サーモンランNWでのマッチメイキングを考える

スプラトゥーン 2 との違い

現在前夜祭のデータの解析からわかっているのは、たつじん称号が新たに「たつじん」「たつじん+1」「たつじん+2」「たつじん+3」の四つに細分化され、更にその上の称号として「でんせつ」が実装されるということです。

具体的にどのくらいのレートがでんせつなのかはよくわかっていなかったのですが、イカッチャでサーモンランのマッチング画面を出現させることで内部データを見ることができるようになります。

キケン度と称号


tkglingLess than 1 minuteNintendoSplatoon2Salmon Run
第二回タイヤ斬りつける大会結果発表

結果発表

順位 登録名(敬称略) 所要回数 景品
1 位 ノンアル x ぱくちー 56 名誉
2 位 .らって 57 名誉
3 位 あかやす*ようつべ 58 アマギフ 1500 円
コンプ 総勢 45 名!! - タイヤを切りつける権利
最下位 ここっなん 127 アマギフ 2540 円
ランダム賞 がひゅー/し〜 (二名) 75 銀のエンゼル

tkglingAbout 2 minNintendoSalmon RunSplatoon2
湧き方向アルゴリズム完全に理解した

湧き方向アルゴリズム

湧き方向を求めるアルゴリズムは解析済みで以下のようなコードになることがわかっていました。

u8 WaveMgr::getEnemyAppearId(u64 random, u8 id)
{
    u8 mArray[3] = {
        1, 2, 3
    };

    u8 x9, w9, x10, x11, x12, v17;
    u8 *x7, *w7;
    u64 x8, w8;
    u8 v5 = id;
    u8 x6 = 3;
    u8 w6 = 3;
    w7 = mArray;
    if (!(v5 & 0x80000000))
    {
        if (!w6)
            return v5;
        w8 = w6 - 1;
        do
        {
            v17 = w8;
            w9 = *w7;
            if (*w7 < v5)
                break;
            w6 -= w9 == v5;
            if (w9 == v5)
                break;
            w8 = v17 - 1;
            ++w7;
        }
        while (v17);
    }

    if (w6 < 1)
        return v5;

    x7 = mArray;
    x8 = random * w6 >> 0x20;
    while (1)
    {
        x9 = *x7;
        x10 = x8 == 0 ? 0 : x8 - 1;
        x11 = x8 == 0 ? *x7 : id;
        x12 = x9 == v5 ? 5 : x8 == 0;
        if (x9 != v5)
        {
            x8 = LODWORD(x10);
            id = x11;
        }
        if ((x12 & 7) != 5 && x12 & 7)
            break;
        --x6;
        ++x7;
        if (!x6)
            return v5;
    }
    return id;
}

tkglingAbout 3 minSplatoon2Salmon Run
Salmon Statsの記錄だけをまとめたサイトをつくった

Salmon Stats Records

最近、Power Egg Record が新設されるなどサーモンラン界隈の記錄に関する基準やらまとめ方などがいろいろ代わってきている流れに便乗して Salmon Stats の記錄だけをまとめたものを作ろうと思う。

UI 部分をつくるのは非常にめんどくさいので API キーを使ってアクセスすると JSON を取得できるような仕組みにしようと思う。

API キーについて

AWS で運営しようとしているので、アホみたいにアクセスされるとそれなりに料金がかかってきてしまうため。


tkglingAbout 3 minNintendoSplatoon2Salmon Run
ウデマエメーターが割れる仕組み

ウデマエの仕組み

このウデマエメーターの仕組みについては海外のハッカーの OatmealDome 氏が解析していたのでその結果を日本語で報告したいと思います。

当記事では大まかにしか紹介しないので、もしも詳細に興味がある方は氏の記事を読まれると良いと思います。

ウデマエゲージ


tkglingAbout 2 minNintendoSplatoon2
Salmon Run Recordsの赤イクラの項目がよくわからない件

Power Egg Record

赤イクラ記錄専門のウェブサイトが稼働したようで、記錄を集計中であるようなのだがそのカテゴライズがよくわからなかったので、一人のサーモンランプレイヤーとして、またエンジニアとして所感についてメモをする記事です。

これ書き終わったらお寿司食べに行きたいから早く書きたい。

カテゴリについて


tkglingAbout 5 minNintendoSplatoon2Salmon Run
スプラ体験版を製品版に変更しよう

スプラ'20 体験版

4 月 30 日~ 5 月 6 日までの一週間、スプラトゥーンの体験版が任天堂 eShop から無料でダウンロードできます。

基本的には七日制限がある以外は製品版と同じように遊べるのですが、体験版にはいくつかの制限があります。

  • ヒーローモードで遊べない
  • イカッチャで遊べない
  • 5 月 6 日以降オンラインに繋げない

tkglingAbout 1 minHackSplatoon2
霧イベントのキンシャケドロップ数を厳選する魔法はあるか

霧イベントのキンシャケドロップ数

先日、このようなツイートを見かけました。

霧のおじぃちゃんは最初にダメージ与えてから 3.5 秒以内に倒すと 10 個でますよぉ 最初のダメージからキルまでの時間で個数決まります

最初に思ったのは「いや、まさかそんなことないやろ」という感想。というのも、霧イベントのキンシャケのドロップ数が変わったのは ver3.2.0 からなのだが、そのときのスプラトゥーンのバイナリを逆アセンブルして、ドロップ数を決定しているのがsub_4A7BD0であり、それが


tkglingAbout 2 minNintendoSplatoon2Salmon Run
ナワバリバトルの勝ち方がわからない皆様へ

ナワバリバトル

180 秒間の時間制限でステージを塗り尽くし、最終的に塗りポイントが多いチームが勝ちという非常にシンプルなルール。

もしもチームの実力が完全に実力が拮抗しているならば勝率は 50%に収束していくはずだが、知っての通り勝てる人は勝てるし負ける人は負ける。明確に実力の違いがあるのである。

となれば、勝てるようにするには「実力を上げる」というのが一番の近道である。

では、ナワバリバトルにおける実力とは何なのか。勝てるようになるには「上手く」なるしかないのかを考えてみよう。

ナワバリバトルの基本情報


tkglingAbout 2 minNintendoTurf WarSplatoon2
2
3
4