MK8DX コース別「陸地/水中/空中/反重力」の割合
マリオカート8 デラックスに登場するコースの「陸地/水中/空中/反重力」の割合を測定してみました.
測定は以下のような手順で行いました.
- 150ccTA(タイムアタック) WR(最速)映像を取得する
- 映像からフレーム単位で各要素を分類
- 各要素のフレーム数から割合を導出
「続きを読む」以降に詳細を示します.
150ccTA WR映像を取得
走行する路面の割合はルート選択によって変動するため,本検証では「最速ラインを通った場合の割合」を基準としました. この基準に則り,MK8DX WR Historyなどから得られる150ccタイムアタックのWR映像を60fpsにて取得しました.WR映像が公開されていない場合は,確認できる中で最も速いタイムの映像を使用しています.
映像からフレーム単位で各要素を分類
分類にあたっては映像から各要素のフレーム長を計測します. このとき,複数要素が重複する場合はゲーム内でのスピード決定優先度となる空>反>水 *1 *2 で一意に決定します.
また,大砲グライダー内の速度はいかなるスピード値にも影響しない *3 ため,計測対象からは除外します.
また,路面要素境目の基準は以下のように設定しました.
- 陸→反: 反重力プレートに車体が乗り上げたフレーム
- 反→陸: タイヤが横向きから縦向きに戻るモーションの開始フレーム
- 陸→空: 両輪が完全に陸上から離れたフレーム
- 空→陸: 着陸しタイヤから白煙が吹き出し始めたフレーム
- 陸→水: 車体後方からプロペラが出てくるモーションの開始フレーム
- 水→陸: 車体後方のプロペラが戻るモーションの開始フレーム
各要素のフレーム数から割合を導出
以上の基準で計測した「陸上/水中/空中/反重力」のフレーム数をもとに,「各要素のフレーム数」÷「合計フレーム数」から割合を導出します.
※前節で述べた通り,スピードに影響しない大砲グライダーは合計フレーム数から除外しています.
スプレッドシート配布
記事冒頭に貼り付けた表はソートが行なえないため,スプレッドシートそのものへのリンクも示しておきます. コピペ・DLなどは自由なため,分析・考察などに役立てていただければと思います. docs.google.com
おまけ
せっかく前節にて分析・考察の可能性を示唆したため,簡単な統計的分析を行ってみました. Jupyter NotebookにてPython 3.6を動かし,クラスタ分類と次元削減を試しています.
*1:空>反: スピード(反)・加速を統一してスピード(空)を変えて比較
@tos 空>反 #MK8D #NintendoSwitch pic.twitter.com/UvfrCjWnew
*2:反>水: スピード(水)・加速を統一してスピード(反)を変えて比較
@tos 反>水 #MK8D #NintendoSwitch pic.twitter.com/p8KkhbIYip
*3:加速を統一してスピード(陸)・スピード(空)を変えて比較
@tos 大砲中速度はスピード値問わず不変 pic.twitter.com/FBnsJwaeDE