Halo: The Master Chief Collectionの実績をGoogleスプレッドシートで管理
2021年11月半ばころ、シリーズ最新作 Halo Infinite の発売にあわせてか halowaypoint.com がアップデートされ実績の表示が無くなっためこの方法は使えなくなってしまった。MCC実績管理の道は長い。

昨年あたりからHalo: The Master Chief Collectionというゲームをパソコンでやっている。Xbox Oneで最初に発売されたゲームで、Haloシリーズのタイトルが6タイトル入っているのでかなりのボリューム。
実績を解除しながら進めているのだが、複数ゲームが入っているので実績数が多い。普通のゲームは数十個くらいだと思うがこのゲームは700個もある。xbox.comのプロフィールやhalowaypoint.com(Halo公式サイト)のサービルレコードから解除した実績が見られるが数が多いのでとても見にくい。Googleスプレッドシートなどで管理しようにも分かりやすいリストがない。
いろいろ調べた結果、halowaypoint.comから抽出してリストを作ることにした。
目次
実績リストを取得する手順
1.Halo: The Master Chief Collectionのサービスレコード(Halo公式サイト)を開く
https://www.halowaypoint.com/ja-jp/games/halo-the-master-chief-collection/xbox-one/service-records/players へアクセスしてゲームで使用しているMicrosoftアカウントでログイン。
2.ブックマークレットを登録
以下のボタンからブックマークレットに登録。Google Chromeならブックマークバーにドラッグ。
3.ブックマークレットを実行
1のサービスレコードのページで、2で登録したブックマークを選択すると halo_mcc_achievement.csv がダウンロードされる。
ブックマークレットの中身
Halo: The Master Chief Collectionのサービスレコードページに表示されている全実績の解除リストを整形してcsvでダウンロードさせるスクリプト。
if($(".achievement-collection[data-game-id]").length) {
var data = "\ufeffID,解除,ゲームタイトル,スコア,実績名,説明\n";
var game = "";
var id = 0;
var unlock = 0;
var title = "";
var score = 0;
var description = "";
$(".achievement-collection[data-game-id]").each(function(){
game = $(this).attr("data-game-id");
$("[data-achievement-id]",this).each(function(){
id = $(this).attr("data-achievement-id");
unlock = $(".unlocked-date",this).length ? "TRUE":"FALSE";
title = $(".title",this).text();
score = $(".gamerscore",this).text().replace("G ","");
description = $(".description",this).text();
data += id+","+unlock+","+game+","+score+","+title+","+description+"\n";
});
});
var a = document.createElement("a");
var blob = new Blob([data], { type: "octet/stream" });
var url = URL.createObjectURL(blob);
document.body.appendChild(a);
a.href = url;
a.download = "halo_mcc_achievement.csv";
a.click();
}
出力されるcsvの中身は以下のような感じ。解除の列には解除状態に応じてTRUEかFALSEが入る。IDの列は内部的に振られていた番号を入れている。
ID,解除,ゲームタイトル,スコア,実績名,説明
626,TRUE,CrossGame,10,ハンマー ブラザー,難易度レジェンドで、任意のミッションを協力プレイでクリアした
244,TRUE,CrossGame,10,シールド ブラザー,難易度アドバンスで、任意のミッションを協力プレイでクリアした
146,TRUE,CrossGame,40,軍神,難易度アドバンスでキャンペーンをすべてクリアした
137,TRUE,CrossGame,10,鍛え上げられた技,マルチプレイヤーで 100 回勝利した
679,TRUE,CrossGame,30,骨の王,Halo: CE、Halo 2、Halo 3 のキャンペーンに出現するスカルをすべて取得した
647,TRUE,CrossGame,5,フォージ マスター,フォージで 5 種類のカスタム マップを作成して保存した
708,TRUE,CrossGame,10,優勝候補,マルチプレイヤーで 50 回勝利した
801,TRUE,CrossGame,20,1 つか 2 つ,エンジニアを 25 体倒した
733,TRUE,CrossGame,10,ドラゴンキラー,ハンターを 250 体倒す
725,TRUE,CrossGame,20,長丁場,ミッションまたはマルチプレイヤー ゲームを 500 回クリアした
127,TRUE,CrossGame,5,謎の実績,すべてが謎に包まれた実績
723,TRUE,CrossGame,10,往年のファン,ミッションまたはマルチプレイヤー ゲームを 450 回クリアした
642,TRUE,CrossGame,5,ゲーム マスター,5 種類のカスタム ゲームタイプを作成して保存した
721,TRUE,CrossGame,10,プロゲーマー,ミッションまたはマルチプレイヤー ゲームを 400 回クリアした
~~以下省略~~
Googleスプレッドシートで整形
csvをGoogleスプレッドシートにアップして少し整形して以下のようになった。
ゲームタイトルや解除での絞り込みが出来てとても便利。
以降は実績を解除したときに解除のチェックを入れる。もっとがんばれば全自動で出来そうな気もするが、チェックは手動で入れている。

4000円くらいで買えるゲームにしてはボリュームが相当多いので長く遊べて良い。