Nintendo SwitchのUI戦略

というわけでNintendo Switchを発売日に(会社をサボって)入手した。
全体的に素晴しいデキで、ゲームコンソールのあるべき姿を提示したのではないかと思う。細かい変な仕様も散見されるが、実装面ではマルチユーザ型コンテンツプレイヤの模範と言って良いのではないか。

  • 曖昧な"やめる": プレイ中であることが明示できないなら"キャンセル"など対にならない語にすべき

まとめ

  • ゲームは必要数のコントローラと形態(スティック2本必要等)をシステムに宣言するデザインになっていると考えられる
  • ゲームは接続形態の変更に動的に対応する必要がある
  • コントローラの組み合せによって操作不能になるシーンは許容されている(ユーザは何らかの方法でHOMEに戻って対処する必要がある)

ライブラリ/抽象化層の提供側としては、これらの宣言を行えるAPIを提供した方がスムースに統合できるように見える。

据え置き機のような外装、携帯機のようなソフトウェア

近年の任天堂コンソールの傾向を反映して、ハードウェアの加飾は必要最低限となっている。外形はどちらかというと据置き機の形状と言える。
しかしソフトウェアは全体的に携帯機を意識した仕様と構成になっている。コンパニオンデバイスの存在を前提として不必要な機能をギリギリまで削っていたり、UIアセットが720p前提である等。
おそらく、ハードウェアよりも寿命の長いソフトウェアプラットフォームを想定していて、その際に携帯機で無理のないサイズを事前に想定することが必要だったのではないかと思う。つまり、ソフトウェアライブラリの充実したタイミングで、

  • 液晶画面およびバッテリを省略した廉価据え置き機
  • JoyConの無線機能を省略した廉価携帯機

を同一のプラットフォームで実現することが既にロードマップに有るのではないか。
DS/3DSに見られたような、子どものユーザに向けたメッセージングは一切排除された。ゼルダの伝説のように12歳以上対象のゲームに振り仮名を振る一方、システムのUIにはこれといった配慮は無い。どの程度のユーザテストを積んだのかは定かではないが、基本的にゲーム以外の機能を徹底的に削ぎ落し、アイコンさえ選んでいけば辿りつけるという読みが有ると見られる。
アプリケーションを絞り込むことは、ローカライズにおけるコストの削減と地域別の"仕向け"を減らすことにも効果がある。WiiUではロンチ時にカラオケまで搭載していた:

それに、Wii U本体やマイクを開発するハードウェアチームや、
内蔵メニューをつくるチームなどの社内の人たちとも
いっしょになって、本体の一部をつくれたところに、
プリインストールアプリケーションならではの
「苦労や楽しさ」があったなと思います。

この手のゲーム周辺の空気を作るためのアプリケーションはコストを掛けて実現する価値があると個人的には思うが、とにかくSwitchではそちらを選んでいない。

ユーザバインディングからの脱却

XboxOneやPS4ではそのマルチユーザサポートの根幹として"コントローラとユーザを常に紐付ける"という実装になっている。WiiUはマルチユーザをあまり積極的にサポートしていないが、操作しているユーザを最初に選択させるデザインは同様となっている。

  • XboxOneのコントローラ割り当てUI。XboxOneではデバイス毎の静的アサインが基本で、Kinectを使用すると顔認識とコントローラ赤外線による動的アサインも使用できる


Switchではこのアイデアを捨て、ユーザはゲームの開始時に常に選択させるデザインとしている(デフォルトを1名選んで省略させることもできる)。

つまりコンソールへのログインの概念を捨て、ユーザアサインを強く意識しないデザインとしている。セーブデータはユーザ単位で生成されるが、2人以上のセーブデータを同時に扱うシステム的なUIは装備されていないように見える。また、任天堂のゲーム機には伝統的にゲストログインの概念は存在しない。PS4やXboxOneではゲストログインが可能となっている。
PS4やXboxOneではトロフィー/実績システムが有るため、ゲームを操作しているユーザは非常に重要な意味があったが、Switchではそもそもコントローラ自体が受け渡されるプレイスタイルを推奨しているため、簡単のためにユーザログインの概念を省略したと見られる。
1-2-Switchでは、ゲームの起動ユーザという概念すら無く、セーブデータはSwitch本体で1つとなっている。

  • 1-2-Switchを起動中は他のゲームと異なりユーザアイコンが表示されない (また、この状況でだけ片Joy-Conの縦持ちでシステムUIを操作できる)

  • セーブデータも個人セーブデータが存在しない (例えば、そるだむはハイスコア等が個人別集計であるためセーブデータも個人別となっている。)



Switchでは従来のカートリッジ型ゲームプラットフォームと異なり、カートリッジ側にセーブデータを作成することがない。
ゲームの起動中にはセーブデータの管理が行えず、また、ゲームの起動ユーザの変更やDLCの適用にもゲームの再起動が必要になっている。このため、ユーザを指定して起動したタイミングで必要なセーブデータがマウントされ使用できる状態になっているものと考えられる。
少し不思議なのは、HOMEメニューの設定等が起動中のアプリを識別できていない点("プレイ中のソフトならつづきからはじめます"のように表示され、実際にゲームがレジュームするかどうかはUIからは判らない)。設定機能は特権を持つことが多く、何らかのセキュリティ問題が有っても被害をアイソレートできるように権限分離を行っている可能性がある。

コントローラの接続と認識

(任天堂のハードウェアネーミングコンベンションは少々独特で、サンディスティックの昔からSwitchに至るまで同様と言える。ボタン名については仕様紹介ページ: https://www.nintendo.co.jp/hardware/switch/specs/index.html#3 を参照。)
Switchの企画上もっとも重要な特徴はJoy-Conだろう。分離型のコントローラであり、横持ちおよび2つを組み合せた状態の2形態で使用できる。このような様々な形態で使えるコントローラは(GCは別として)64以来の伝統であり、任天堂のコンソールの重要なアイデンティティとなっていると言える。
ただ、これらの複雑なコントロールスキームをシステムのUI全体に適用するのは事実上初めての試みであり、Wii(そもそもシステムダイアログが無くシステムUIはリモコン前提)やWiiU(ゲームパッド前提)では避けられてきた。
コントローラ接続は無線コントローラを採用したWii以降専用のダイアログが準備されており、システムの用意したUIでコントローラの割り当てを行う。UI自体はコントローラの本体色が反映される等手の込んだ仕組みになっているが、ゲーム主導で起動されるため、ユーザのコントローラにHOMEボタンが無いと詰みとなる可能性がある。(= Joy-Con (L)のみ使用している場合)
Switchではシンクロボタンの短押しでコントローラを切断できるため、適当なコントローラを切断して替わりにJoy-Con (R)を接続し、HOMEボタンを押してHOMEメニューに戻ることができる。 ...Switchには取り扱い説明書が無いため、この操作はユーザが開拓する必要がある(サポートページには記述がある)。
コントローラの接続ダイアログは必要なコントローラ数と形態を指定できるようで、ゲームやシチュエーションによってダイアログを終了できる条件が異なる。

  • そるだむ 開花宣言(2Pモードのため、コントローラ1つの状況では抜けられない - グレーアウトしている)


Joy-Con (R)の場合、ゲームが認識しているコントローラの持ち方をプレイヤーランプで判別することができる。つまり、プレイヤー1のコントローラではプレイヤーランプが1つだけ点灯するが、この場合点灯するのは上端または左端となる。Joy-Con (L)では上端と左端が一致しているため判別できない。
コントローラ形状が一致しないためか、縦持ちのコントローラを1つだけ持つモードは基本的に存在しないように見える。この制約を入れることで、コントローラのスタイルをL+R同時押しで指定させることができる。例外は1・2 Switchで、このタイトルだけが現状縦持ち片方操作となっている。タイトル起動中に片方を切断するとダイアログが出るが、完全にソフト側でハンドルしている。

(このダイアログでもコントローラ本体色が反映されている。また、TMの有無はソフトや場所によってマチマチで、任天堂自身のWeb等でも特に統一されていないようだ。)
コントローラには有線接続の概念がある。つまり、レール下端奥部に電気端子が有り、直接Switch本体と接続することでペアリング(登録)や充電を行う。レール部の部品を左右で共用しているためか、Joy-Con (R)を本体左側に付けたり、その逆も可能となっている。この場合はシステムには認識されない。Proコントローラ等を含めた現状全ての有線接続形態ではコントローラは縦持ちとなるため、横持ちのゲームを有線接続で遊ぶ方法は無い。横持ち専用のゲームが有るとも思えないが。。有線接続はペアリングだけでなく、機内モードで無線を切っている場合でも使用されていると考えられる。
今のところ再現条件は不明だが、ゲームをフォアグラウンドにしている場合に、追加で接続したコントローラが2P以降として認識されず即切断されるケースがある。これが仕様なのかバグなのかは不明で、これがJoy-Con (L)しか接続されていない状況で発生すると、コントローラにHOMEボタンが無く詰みになってしまう。これもシンクロボタン短押しやスリープへの移行で一旦全コントローラを切断することでコントローラを再接続できる。(いわゆる"コントローラの接続性の問題"もこの手のバグを含んでいるのではないかと個人的には想像している。)
この手の問題に対処するためには、接続コントローラに必ずJoy-Con (R)を含めておくような制約の導入が考えられるが、単純さを取ってJoy-Con (L)のみでの操作にも対応しているようだ。

コントローラ接続UIとボタンcallout

Joy-Conのボタン名は接続形態によって変化する。大抵のソフトで接続形態の動的な変化に正常に対応しており、ボタンcallout(画面上でのボタン表記方法)も動的に追従する。
... ポイントはゲームの与り知らないところでコントローラの接続形態が変化する点で、ゲーム中にHOMEボタンでHOMEメニューへ → HOMEメニューで接続形態を変更 → ちゃんとボタン表記が変化し操作方法も追従している というかなり複雑な実装を要求しているように見える。おそらくSDK上ではいくつかのコントロールスキームを規定し、ライブラリ内で変換してしまっていると考えられる。(伝統的にこの手の対応はかなり熱心に要求される事情がある: 無線コントローラでは電池切れが発生する可能性があるし、有線でもプラグ抜けなどの事態は想定される)
ぷよぷよテトリスに至ってはコントローラ接続を切断して縦持ちに変更するとちゃんとアニメーションまでする。このため、ソフトウェア的には接続形態を完全に隠蔽しているわけではない。ただし、通常のシチュエーションではゲームのバックグランド実行によってアニメーションを確認できない(ゲームに戻るまでの間にアニメーションが完了してしまう)ため、一旦スリープ状態にしてゲームをサスペンドしてからでないと見ることができない
http://youtube.com/watch?v=jOLkM3QPsRM
サスペンドを使わない場合は、シンクロボタンを使用した強制切断でも見ることができる。
http://youtube.com/watch?v=OBoVqnSJkUk
↑の動画では、HOME画面で横持ちに変更→ゲーム画面でシンクロボタンを使用して切断(携帯モードに遷移)→Joy-Con (R)をキー入力で接続(携帯モードのままコントローラ接続画面へ) のようになっている。
Joy-Conでは十字キー(D-pad)を廃止しJoy-Con (L)のボタンには▲や▼のような矢印が描かれている。ただし、ピクトグラムで上下左右表記が行われることは無く、かならず4ボタン間での位置関係で示している。これはJoy-Con (R)でのABXY表記とのバッティングが起こるためと考えられる。"ぷよぷよテトリス"では、文字しか使用できないチュートリアルで上下左右の表記を使っている。

(つまり従来機構的に制約していた左右同時押しのようなキーコンビネーションが可能になるため、バーチャルコンソールでどのような対応が行われるのかが気になるところと言える。左右同時押しを正しく処理しないゲームはそれなりにある。)

ちなみに、ぷよぷよテトリスマルチプラットフォームタイトルだが、ゲーム本編では特にコレといった変更は行われていない。マルチプレイの対応と、いわゆる"まんざいデモ"中の振動対応くらいか。("上方向"の表記はハードドロップを上以外に設定していてもココでは使われる。元々そういう仕様だったはず。)