Halo: The Master Chief Collectionの実績をGoogleスプレッドシートで管理



実績が多いゲームHalo: The Master Chief Collectionの実績をGoogleスプレッドシートで管理する

昨年あたりからHalo: The Master Chief Collectionというゲームをパソコンでやっている。Xbox Oneで最初に発売されたゲームで、Haloシリーズのタイトルが6タイトル入っているのでかなりのボリューム。

PC でマスターチーフの壮大な旅を体験しよう。The Master Chief Collection には、過去 6 作の Halo タイトルすべてが、PC 版となって 1 つの壮大な体験として収められている。

実績を解除しながら進めているのだが、複数ゲームが入っているので実績数が多い。普通のゲームは数十個くらいだと思うがこのゲームは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円くらいで買えるゲームにしてはボリュームが相当多いので長く遊べて良い。

PC でマスターチーフの壮大な旅を体験しよう。The Master Chief Collection には、過去 6 作の Halo タイトルすべてが、PC 版となって 1 つの壮大な体験として収められている。


関連記事