テクニカルディレクターがマリオカートで遊んでみた話
2020年10月16日に「マリオカート ライブ ホームサーキット」という製品が任天堂より発売になりました。
これは、皆さんもよく知る「マリオカート」を実際のラジコンをつかって部屋の中をコースにして再現するというゲームです。
AR技術がふんだんに組み込まれており、カートに内蔵されたカメラからの主観映像をみながら操作することができる、バーチャルとフィジカルの融合したゲームとなっています。
(どんなゲームかはこちらの任天堂公式の動画を見ていただけるとわかりやすいです)
BASSDRUMの中にも予約購入した人が複数人おりまして、せっかくなのでいわゆる「開封の儀」をメンバーで共有しながらやってみようということになりました。
(コロナ禍のため、集まれないメンバーはZoom越しにオンライン配信で試聴してもらいました。)
約2時間程度の間に、開封〜実際に遊ぶ〜分解、までを矢継ぎ早に行なってみましたが、ゲーム自体のユーザ体験としても技術的な部分に関しても、非常に完成度が高く学ぶところが多い製品だなと感じました。
この記事ではそんな「開封の儀」の様子を一部かいつまんで、テクニカルディレクター目線でのコメントも添えながらご紹介させていただければと思っております。
(Zoom収録からの抜粋のため、写真の解像度は低めですがご了承ください)
開封〜接続してカートを操作するまで
説明書レス
箱を開けるとすぐに「はじめにソフトをダウンロードしよう」と大きく書かれた用紙が入っていました。昨今のゲームやプロダクトではいわゆる「説明書レス」のものも多いですが、それにしても割り切っているなと感じました。
ソフトウェアとセットになることでチュートリアルまで含めた総合体験として設計できる、ゲームならではの割り切りだなと感じました。
梱包設計について
段ボールの梱包設計に思いを馳せます。
昨今、環境対策の観点から梱包材に発泡スチロールを用いることがだいぶ少なくなり、代わりに段ボールを用いることが増えました。この段ボールによる梱包は耐衝撃性能とラインでの組み立ての簡便さの両立が必要で梱包設計エンジニアの腕の見せ所です。そんな背景を想像しながら開梱していきます。
カートの素材感
カート本体はかなりちゃんとした作りになっていました。
カート部分は光沢素材、マリオ部分はマットでフィギュアのような素材感、と部位によってきちんと作り分けがされているところに好感がもてました。
QRの読み取りでのペアリング
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
ゲームを始めるとすぐ画面にQRコードが表示され、これをカート側にあるカメラから撮影することで Switch本体とカートとのペアリングを行う手順になっていました。
一般的なIoT機器だと、いわゆる本体側(スマホ等)からデバイス側へ接続をし、ネットワーク等の設定を行う形も一般的ですが、デバイス側にカメラが搭載されていることでQRを撮影するだけで面倒な設定が自動で行えるという形式に優れたユーザビリティを感じました。
動かし始めるまでのスムーズさ
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
接続が終わりデバイスアップデートが終わると、すぐに動かし始めることができました。前述のペアリング部分も含めて、背景にテクノロジーを感じさせない体験設計がなされているところに任天堂らしさを感じました。
レイテンシの少なさ
ステアリング等の操作、映像共にレイテンシ(遅れ)が少ないです。さすがに肉眼で見ると多少の遅れ感はありますが、Switch の画面を通してコントロールをする分にはほぼ違和感なく操作できる程度に低レイテンシでした。
ただし、映像に関しては帯域を消費するためか、電波状況が悪いところに車体が入ってしまうと映像が止まったり遅れたりする様はみて取れました。
衝突時のエフェクト演出
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
車体が何かにぶつかった際に、Switch画面の方にエフェクトアニメーションが出ました。これは、車体に搭載されている加速度センサの値から衝突を判定しているのだろうと推測しています。
コース制作〜レースまで
ゲートの組み立て
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
ゲートは段ボール製になっていて、組み立てると立体的になり自立するよう工夫されています。ここら辺は Nintendo LABO の開発で得た知見の共有がありそうだなと感じました。
コース作成・床面AR表示
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
ゲート設置後、カートを操作してコースづくりをします。
カートが走行した軌跡に沿って、ARによる”ペンキ”の絵が本当に床面に付着しているかのごとく表現されていました。
はじめは Deep Learning 等によりカメラ映像から画像処理的に床面を検出しているのかとも思いましたが、後述するようにカートを持ち上げると床面のAR表示も一緒に持ち上がった様子が見て取れたことから、そこまで本格的な検出は行なっていないと思われます。
車体内蔵カメラは高さや画角がすでに定まっているため、それらを固定値として変形量を算出し、床面に投影されているように表示しているのではと推測しました。
オクルージョン表現はない
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
オクルージョン表現(遮蔽物の裏側に回り込むようなARの配置)はしてはいませんでした。このことからも Deep Learning 等による高度なクラスタリングはしていなさそうな雰囲気を感じます。
ゲート上のAR表示
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
コースを作成するとすぐコンピュータとのレースを始めることができました。
ゲート上にはAR表現が出現します。それらはゲート上部にある絵をマーカーとして検出して位置判定をしているようです。
検出のフレームレートはそこまで高くはなさそうで、手でゲートを動かすとぬるぬると間を補完して追従していく様がみて取れました。ただし、カートには直進速度や回転速度に物理的な限界があることから、通常使用の範囲内ではほとんど違和感はありません。
またかなり鋭角な位置からマーカーを見ても、きちんと角度付きでARが乗ることから、検出精度や角度の推定は精度が高い印象でした。
カートを持ち上げてみた際の挙動
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
カートを持ち上げると、AR表示が消えるようになっていました。
ただし、持ち上がりを真面目にセンサ等で検出しているわけではないようです。カートを傾けないように注意してまっすぐ上に持ち上げるとARが表示されたままになることから、加速度センサの出力値から算出した車体の傾き具合を擬似的な持ち上げの基準として用いているのではとみています。
これは前述のように床面ARを固定値からの計算で行なっている、ということをバレにくくするための演出なのではと推測しました。
また持ち上げた際、ゲートのARはゲート位置に追従して動くが、床面ARの表示は床面に追従せず一緒に持ち上がることから、ゲート等はマーカー基準、床面ARは固定値から、と物によって基準を分けていることが伺えました。
自己位置推定
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
カートの自己位置の推定は精度が高いと感じました。
ゲートがカメラに映る範囲にある場合は映像から検出したゲート位置を元に補正をかけることができますが、ゲートが映っていない箇所においてもほぼズレがなく推定できていそうな印象でした。
IMU(加速度センサー・ジャイロセンサー)の値を元に推定していると思われますが、IMUでの推定は衝撃や値のドリフトといった推定位置を狂わせる要素も多いためどのように抑え込んでいるかは興味深いです。
後述の分解時にも触れますが、後輪の動力部にエンコーダがないことやそもそもステアリングを用いた駆動系になっていることからも、いわゆるオドメトリによる自己位置推定は行っていないように感じます。
自動操舵
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
マリオカートシリーズでは「キラー」というミサイル型のアイテムを使用すると一定時間自動操縦でコースを進んでくれます。今回もキラーがアイテムとして登場しており、使用するとカートが自動操縦されます。
これは非常に衝撃的で、AR上で表示させたコースに沿って物理的なカートが自動的に操縦されるというのは驚くべき体験でした。
これはコースがARで表現されている、という部分もある程度ミソになっているのではと感じています。
ARではなく実物のコースに追従する場合、
実物コース位置→システムによる推定位置→カートの制御
というように検出や制御が2段になるため誤差や遅延も乗りやすく難易度も高いですが、ARコースに追従する場合、ARの表示位置は「システムによる推定位置」と同義のため
システムによる推定位置(AR表示位置)→カートの位置
と制御が1段で済むため技術的な実現難易度が多少軽減するのだと思われます。
技術的な難易度を許容範囲まで下げつつ、表現としてはリッチに驚きをもって魅せる、という技術と演出の見事なハイブリット性を感じました。
多人数プレイ
ゲーム画面の出典:「マリオカート ライブ ホームサーキット」©2020 Nintendo / Velan Studios
多人数でプレイする際の連携も非常にスムーズでした。
特別にペアリング等の操作を行わなくてもすでに他のプレイヤーが表示されており、作成したコースも共有されていました。これは同一LAN内にあるSwitchを自動で検出しているなどの裏処理を行って実現しているのでは、と推測しています。
分解~部品構成確認まで
おおまかな接続の様子
おおまかに
・カメラへつながるフレキシブルケーブル
・後輪に繋がる赤黒2線のケーブル(後輪駆動用と思われる)
・ステアリングに繋がる赤白黒3線のケーブル(ステアリング角の検出用と思われる)
・ステアリングに繋がる白黒2線のケーブル(ステアリングモータの駆動用と思われる)
あたりが見て取れます。後輪には駆動用のケーブルしか伸びていないことから、ロータリーエンコーダ等を用いた移動距離の推定などは行っていないであろうと思われます。
チップ等の配置
主要なチップはそれぞれ以下あたりかなと思われます。
・RTD1195PB:Coretex-A7やH.264/HEVCデコーダが乗ったチップ。カメラ映像を受け取りSwitchに送信するのに使用しているとおもわれる(リンク)
・STM32F048C6U6:Coretex-M0搭載のチップ。こちらが車体のコントロールを行っていると思われる(リンク)
・RTL8188EUS?:通信用のチップ。ネットの情報なども参照した結果、通信にはWifiを使っている模様。
・???:IMU用のチップ。こちらもネット情報も合わせて考えると、6軸(加速度3軸、ジャイロ3軸)センサの模様。
このチップ構成から推測するに、エッジ側(カート側)での画像解析や位置推定などは行っておらず、ほぼSwitch側で行っていそうな雰囲気を感じます。
このゲームでは Switch 画面でカメラ映像やARを含めたすべてを見せる構成となっているため、演出上の表示遅れなどを少なくする意味でも、カート基板のコストを下げる意味でも、この方法は合理的なのかなと感じています。
総評
全体的にユーザ体験を中心にした作り込みがされていると感じました。
カートおよびSwitch本体それぞれでできることや制限事項を熟知しながらそれらを加味したうえでユーザの体験として妨げにならない範囲でそれらを活用し、体験として昇華している様が見て取れました。
通常のものづくりではハードウェアはハードウェア、ソフトウェアはソフトウェアなど縦割りのチーム構成で開発していることも多く、それぞれでバラバラなユーザ体験を提供しているようなプロダクトも少なくありません。
この「マリオカート ライブ ホームサーキット」からはハード・ソフト一体となった開発体制や、それぞれを複合的に加味した体験づくりが感じられました。
非常に楽しいゲームになっているので、ご興味ある方はぜひ購入して体験してみてください。