目的
2人がそれぞれ別のブラウザで JapanGuessr を開き、同じ出題地点・同じStreet Viewからスタートできるようにする。
使うもの
- Google Chrome
- Chrome DevTools
- JapanGuessr
https://japanguessr.com/game
仕組み
JapanGuessrでは、ゲーム開始時に次のAPIへアクセスしてランダムな地点情報を取得している。
/api/randomloc?category=japan&subCategory=default&map=japan
このAPIは、例えば次のようなJSONを返す。
{
"lat": 36.522126808140065,
"lng": 136.70142485648432,
"heading": 42,
"pitch": 0,
"zoom": 0,
"panoId": "euxZBbIp2bfHCQK_6s8-Mw"
}
それぞれの意味は以下。
-
lat:緯度 -
lng:経度 -
heading:最初に向いている方角 -
pitch:上下方向の視線 -
zoom:ズーム量 -
panoId:Google Street ViewのパノラマID
このレスポンスを2人とも同じ内容にすれば、同じStreet View地点からゲームを開始できる。
1人目:出題地点のJSONを取得する
- JapanGuessrを開く。
-
F12を押してChrome DevToolsを開く。 -
Networkタブを開く。 - フィルタ欄に
randomloc
と入力する。
5. ゲームを読み込む、またはページを再読み込みする。
6. 表示された
/api/randomloc?category=japan&subCategory=default&map=japan
をクリックする。
7. Response タブを開く。
8. 表示されたJSONをコピーする。
例:
{
"lat": 36.522126808140065,
"lng": 136.70142485648432,
"heading": 42,
"pitch": 0,
"zoom": 0,
"panoId": "euxZBbIp2bfHCQK_6s8-Mw"
}
このJSONを2人目に送る。
2人目:randomlocのレスポンスを同じ内容にする
- JapanGuessrを開く。
-
F12でDevToolsを開く。 -
Sourcesタブを開く。 - 左側の
Overridesを開く。 -
Select folder for overridesを押し、適当なローカルフォルダを選択する。 - Chromeからアクセス許可を求められたら許可する。
-
Networkタブへ移動する。 - フィルタ欄に
randomloc
と入力する。
9. /api/randomloc?... の通信を選択する。
10. そのレスポンスをLocal Overridesの対象にする。
11. 内容を1人目から送られてきたJSONに置き換えて保存する。
12. JapanGuessrを再読み込みする。
これで2人目も、1人目と同じ地点・同じStreet Viewから開始できる。
同じ画面にするために重要な項目
最低限 lat と lng が同じなら同じ場所になるが、完全に同じ開始状態にしたい場合はJSON全体をコピーする。
特に、
panoId
heading
pitch
zoom
まで同じにすると、同じパノラマ・同じ方向・同じズーム状態から開始できる。
注意点
Local OverridesはJapanGuessrのサーバーを書き換えているわけではない。
あくまで、
サーバーから届いたレスポンス
↓
Chromeがローカル保存した内容に差し替える
↓
JapanGuessrには差し替え後のJSONが渡る
というChrome側だけの変更。
そのため、他の利用者やJapanGuessr本体には影響しない。
また、Overridesが有効なままだと、そのブラウザでは同じ地点が繰り返し表示される可能性がある。
通常のランダム出題に戻したい場合は、DevToolsの Sources → Overrides から該当Overrideを削除または無効化する。
2人で遊ぶときの流れ
毎ラウンド、
1人目が通常通り地点を引く
↓
randomlocのResponseをコピー
↓
2人目に送る
↓
2人目がOverrideのJSONを更新
↓
ページを再読み込み
↓
2人とも同じ地点でプレイ
という流れにすればよい。