mk8dx memo

マリオカート8 デラックス (MK8DX) に関するメモなど

MK8DX コース別「陸地/水中/空中/反重力」の割合

マリオカート8 デラックスに登場するコースの「陸地/水中/空中/反重力」の割合を測定してみました.

測定は以下のような手順で行いました.

  1. 150ccTA(タイムアタック) WR(最速)映像を取得する
  2. 映像からフレーム単位で各要素を分類
  3. 各要素のフレーム数から割合を導出

「続きを読む」以降に詳細を示します.

150ccTA WR映像を取得

走行する路面の割合はルート選択によって変動するため,本検証では「最速ラインを通った場合の割合」を基準としました. この基準に則り,MK8DX WR Historyなどから得られる150ccタイムアタックのWR映像を60fpsにて取得しました.WR映像が公開されていない場合は,確認できる中で最も速いタイムの映像を使用しています.

映像からフレーム単位で各要素を分類

分類にあたっては映像から各要素のフレーム長を計測します. このとき,複数要素が重複する場合はゲーム内でのスピード決定優先度となる空>反>水 *1 *2 で一意に決定します.

また,大砲グライダー内の速度はいかなるスピード値にも影響しない *3 ため,計測対象からは除外します.

また,路面要素境目の基準は以下のように設定しました.

  • 陸→反: 反重力プレートに車体が乗り上げたフレーム
  • 反→陸: タイヤが横向きから縦向きに戻るモーションの開始フレーム
  • 陸→空: 両輪が完全に陸上から離れたフレーム
  • 空→陸: 着陸しタイヤから白煙が吹き出し始めたフレーム
  • 陸→水: 車体後方からプロペラが出てくるモーションの開始フレーム
  • 水→陸: 車体後方のプロペラが戻るモーションの開始フレーム

各要素のフレーム数から割合を導出

以上の基準で計測した「陸上/水中/空中/反重力」のフレーム数をもとに,「各要素のフレーム数」÷「合計フレーム数」から割合を導出します.
※前節で述べた通り,スピードに影響しない大砲グライダーは合計フレーム数から除外しています.

スプレッドシート配布

記事冒頭に貼り付けた表はソートが行なえないため,スプレッドシートそのものへのリンクも示しておきます. コピペ・DLなどは自由なため,分析・考察などに役立てていただければと思います. docs.google.com


おまけ

せっかく前節にて分析・考察の可能性を示唆したため,簡単な統計的分析を行ってみました. Jupyter NotebookにてPython 3.6を動かし,クラスタ分類と次元削減を試しています.

*1:空>反: スピード(反)・加速を統一してスピード(空)を変えて比較

*2:反>水: スピード(水)・加速を統一してスピード(反)を変えて比較

*3:加速を統一してスピード(陸)・スピード(空)を変えて比較