ゲームパッドで遊ぶタクティカルカードゲーム:Ancient Duelのコントローラー対応のしくみ
コントローラー対応といえば、たいていは移動や照準を扱うゲームのものです。Ancient Duelにはそのどちらもありません。これはカードゲームです。盤面を眺め、しばらく考え、そして区切りのはっきりした選択を一つ行う。それだけです。
だからこそ、ゲームパッドがこのゲームにぴったりだとわかったのです。決闘のあらゆる行動は、同じ短いリストに行き着きます。どのカードか。どの位置か。どの対象か。決定。戻る。これはまさにコントローラーが本来話す言葉であり、画面上の任意のピクセルを指すことを最大の得意とする機器には、むしろ不向きな言葉です。
コントローラーはマウスのふりをすべきではない
手っ取り早いのは、スティックで画面上のカーソルを動かせるようにすることです。作るのは簡単ですが、使うのは不快です。何もないテーブルの上でポインターを引きずり回し、デジタルな選択をするためにアナログな作業をする羽目になります。
そこでAncient Duelは、代わりに選択そのものを動かします。スティックや十字キーは、実際に意味を持つものの間を一歩ずつ移動します。手札のカード、フィールドのユニット、対象、ボタン、タブ。そして決定ボタンは、いま選択されているものを実行します。狙いをつける必要はまったくありません。「次のカード」「それ」「はい」と伝えるだけです。
入力レイヤー全体は、私が早い段階で決め、一度も破らなかった一つのルールに従っています。それは、ゲームの操作を決して作り直さないということです。入力レイヤーはフォーカスを移動させ、もともとそこにあったボタンに本来の仕事をさせるだけです。4月に行ったアクセシビリティ改善以来、このゲームはキーボードだけで操作できるようになっていたので、コントローラー対応のためにゲームロジックに手を入れる必要はまったくありませんでした。逆もまた然りです。キーボードで届かないものは、パッドでも届きません。何かを操作可能にするとは、新しい入力コードを書くことではなく、それをフォーカスの止まる場所にすることなのです。
盤面はもともとグリッドだった
ここでは、3Dの世界にはない形でカードゲームであることが役に立ちます。Ancient Duelの戦場は、固定された有限の構造です。片側に4つのユニットの位置、中央に指揮官の枠、戦略の列、手札、2つの墓地、そして地形ゾーン。移動すべき連続した空間はどこにもありません。
ですから、画面の配置がそのまま操作の仕組みになるのです。左右で列に沿って移動し、上下で手札とフィールドの間を行き来し、ショルダーボタンでは途中のものを一つずつたどらずにゾーンごと一気に移動します。右スティックはスクロール、スタートボタンはコントローラー設定を開きます。
フォーカスこそがカーソル
マウスを使っていれば、プレイヤーは自分が何を指しているのか常にわかっています。指しているのは自分の手だからです。ポインターを取り除くと、インターフェースは3つの問いに常に答えなければなりません。いま何が選択されているのか、決定を押すとそれに何が起こるのか、そして戻るで何が取り消されるのか。
当たり前に聞こえるでしょうが、細かな作業の大半はここに費やされました。開いたときに選択が閉じるボタンに置かれているダイアログは、技術的には操作可能でも、実際には役に立ちません。ゲームがたったいま捨てるカードを尋ねたのに、ハイライトが✕の上にあるのです。現在、ダイアログは最初の本当の選択肢にフォーカスを置いて開きます。また対象を選ぶモードでは、すべての候補をハイライトするだけでなく、最初に選べる対象に選択を置くようにしました。ポインターがあれば前者で問題ありませんでしたが、ポインターがなければ探し回ることになっていたのです。
良いコントローラー対応とは、すべてのボタンに手が届く状態のことではありません。手が届くかどうかを考えなくなる状態のことです。
ボタン番号を決して信用しない
ここは、私がひどく甘く見ていた部分です。
PC用のコントローラーは、標準レイアウトを使っていると申告しておきながら、ファームウェアの気の向くままにボタンを番号付けすることがあります。私がテストに使っているパッドはまさにそうで、さらに悪いことに、A/B/X/Yではなく、上から時計回りに1 / 2 / 3 / 4と印字されています。つまり、一回押すごとにその裏には3つの別々の事実が隠れていて、本当に知ることができるのは最初の一つだけです。生の入力、本体上でのそのボタンの物理的な位置、そしてその横に印字されたラベル。決定を「ボタン0」に割り当てるゲームは、3つのうち2つを当て推量しているのです。
そのためAncient Duelにはキャリブレーションウィザードがあり、ボタン番号から何かを推測することは一切ありません。物理的な位置はあなたの手から学び、印字されたラベルは機器に何と書かれているかをあなたに教えてもらって学びます。ラベルは入力するのではなく一覧から選びます。コントローラーには文字のキーがないからです。そしてラベルは飾りではありません。下のボタンに「B」、右のボタンに「A」と書かれているとゲームに伝えたなら、ブラウザーが何と言おうと、あなたが手にしているのは任天堂式の配置のハードウェアであり、決定と戻るはそれに応じて入れ替わります。
飛ばした操作には何も割り当てられません。推測した番号に頼ることはありません。降伏を確定してしまうショルダーボタンこそ、キャリブレーションが防ぐために存在する失敗だからです。
マウスを求めることのできないキャリブレーション
ここには一つのパラドックスが潜んでいます。コントローラーの割り当てがおかしいプレイヤーこそキャリブレーション画面を必要としているのに、まさにそのプレイヤーは、そこにたどり着くための通常のメニューを操作できないのです。
そこで、設計全体が従うルールは、マウスもキーボードも使わずにコントローラーのキャリブレーション、ラベル付け、保存、再表示、修復ができなければならない、というものです。デスクトップではマウスやキーボードも便利に使えますが、それを必須にするものは何一つあってはなりません。
実際には、ウィザードは「いずれかのボタンを押して開始」という画面で始まり、接続されたどのパッドのどの生ボタンでも受け付けます。そしてその一押しで、どのコントローラーがセッションを担当するかも決まります。次に決定とキャンセルを設定し、これは飛ばせません。3つ目の質問以降は、直前に右のフェイスボタンとして登録したボタンで一つ前の段階に戻れるので、それを何度か押せばウィザードを抜けられます。これがポインターを必要としない唯一の出口です。各入力の段階は自動で先へ進みます。下のフェイスボタンを押すように言われたばかりのプレイヤーには、そのうえ「次へ」を押す手段がないからです。
スティックについて尋ねない理由
質問は8つ、そのすべてがボタンについてです。方向に関することは一切尋ねません。
理由の一つは、方向入力が信頼できる部分だからです。標準マッピングのコントローラーでは、左スティックは最初の2つの軸として届くので、メーカーが好き勝手に番号を振ったボタンよりも、方向入力のほうがはるかに予測しやすいのです。しかし最大の理由は、実際に失敗するのを目にして初めて理解したことにあります。ボタンは押されているか、いないかのどちらかです。軸には意味のある「離された状態」がありません。使い込んだスティックはふらつき、十字キーのハットは3.29で止まり、トリガーは−1にとどまります。そのどれもが誰も尋ねていない質問に答えてしまったり、画面上の何によっても説明できない理由で段階の完了を妨げたりしかねません。尋ねないことで、説明のつかない挙動がまるごと一種類なくなりました。
方向を押し続けるとリピート入力になり、その速度は設定できます。スティックがドリフトする場合はデッドゾーンも設定できます。
文字のないタイピング
そしてテキスト入力欄にたどり着くと、コントローラーには差し出せるものが何もありません。ログイン、デッキの名前付け、カードプールの検索。そのどれもが、ゲームパッドにはない文字を必要とします。
そこで、テキスト入力欄で決定を押すと、画面上にフルサイズのQWERTYキーボードが開きます。これは通常のレイヤーに並んだ通常のボタンなので、同じ操作で中を移動でき、戻るでほかのものと同じように閉じられます。本物のキーボードを持っているプレイヤーの目には決して触れません。
重要になるとは思っていなかった細部が一つあります。このレイアウトは、ANSIキーボードと同じ4分の1キー分のずれを持つ、本物の物理的なずらし配置を使っています。操作の仕組みは描画された形状を読み取って「上」がどこに当たるかを決めるので、このずらしがあるからこそWがAとSの間の隙間の上に来るのです。きりのいい数値ではかえってうまくいきません。ちょうど半キー分ずらすと、どのキーも下の2つのキーから等距離になり、どちらに行くかはマークアップの並び順という偶然に委ねられてしまいます。
コントローラーがゲームのほかの部分で見つけたもの
この作業で最も役に立ったのは、それが何をあらわにしたかです。マウスがあれば、プレイヤーは欲しいものを直接指すことで、インターフェースの問題を覆い隠せます。コントローラーにはそれができないので、インターフェースはそうした関係をはっきり示さなければなりません。そして、それができていない場所がいくつも見つかりました。
保存したデッキがフォーカスの止まる場所になっておらず、マウスなしではデッキを開くことすらできませんでした。墓地と地形も同様でした。デッキ構築では、カードを追加するたびに両方の列が作り直され、押したばかりのボタンが消えて、いた場所がわからなくなっていました。今ではカードと操作を記憶し、もう一度それらを見つけ出します。ブラウザー標準の確認・警告ダイアログはアプリのフォーカスの仕組みの完全に外側にあるため、安全な答えにフォーカスを置いて開くページ内のダイアログに置き換えました。
どれもコントローラーのバグではありません。ポインターが黙って埋め合わせていたインターフェースのバグであり、それらを直したことで、ゲームパッドに一度も触れない人にとってもゲームが良くなりました。
Steam、ソファ、そしてSteam Deck
同じコードがブラウザー、Steam向けのWindows版、そしてmacOS版で動いており、3つとも同じコントローラーシステムと同じ設定ロジックを使っています。ただし、設定そのものはアカウントではなく端末に保存されます。
それによって得られるものはシンプルです。PCは机の上だけのものではなくなります。同じビルドがノートPCでも、テレビにつないだマシンでも、ソファからパッドを握っても動きます。カードゲームはほとんどのジャンルよりもこうした遊び方に向いています。Ancient Duelの自然な姿勢は、身を乗り出してクリックすることではなく、ゆったり座って考えることだからです。
Steam Deckのような携帯機については、正直に言えば、土台はできていてもテストはまだ済んでいません。Steam Inputは標準的なXInput互換のマッピングでコントローラーの入力を提供できるので、すでにある仕組みは原理的には有用な基盤になります。また、マウスの存在を決して前提としないゲームであることは、その種の機器にとって重要な前提条件です。とはいえ、私は実機でAncient Duelを検証していないので、そこで動作するとは言いません。また、タイトルセーフ領域の余白を加えるTVモードもあります。テレビの設定によっては今でもオーバースキャンがかかり、画面の端が切れてしまうことがあり、それだけで降伏ボタンが画面外に追いやられてしまうからです。
同じ考え方は、将来のどのプラットフォームにも当てはまります。家庭用ゲーム機版には、入力まわりの作業よりはるかに多くのものが必要です。SDK、認証審査、プラットフォームのサービス、パッケージング、ストアの承認。それでも、早いうちに取り除ける障壁が一つあり、それはすべての画面に関わるものです。ゲームはマウスの存在を前提にすべきではない、ということです。それで何かが家庭用ゲーム機向けに準備できるわけではありません。ただ、後から開け直すには高くつく扉を、開けたままにしておけるのです。
マウスはどこにも行っていない
これらは何かを置き換えるものではありません。マウスとキーボードはこれまでとまったく同じように動作し、デスクトップでは今でもそちらのほうが速く操作できます。目的は、プレイヤーに代わって入力機器を選ぶことでは決してありませんでした。
コントローラーで遊ぶ決闘も、別の決闘ではありません。同じカードが選ばれ、同じ対象が選ばれ、同じ決断が下され、その結果を引き受けることになります。変わるのは選択がゲームに届く方法だけです。そしてAncient Duelがあなたの手の中にあるものについて前提を置かなければ置かないほど、同じ決闘をより多くの場所で遊べるようになるのです。
Daniel Rusu
Ancient Duel クリエイター & 開発者