OOUIデザインのトレーニング:ゲームのブロック機能

今回の題材はオンラインでプレイ可能なゲーム機のブロック機能です。

現状

このゲーム機ではオンラインに対応したゲームを遊ぶことができます。例えばチーム対戦のアクションゲームなどです。こういったゲームの参加者達は試合ごとにランダムにマッチングされます。その中で参加はしているものの全く動かない参加者がいるとゲームが成立しなくなる場合があります。

ゲーム機自体にブロック機能があり、使うことでマッチング対象からそういった参加者を除外することができるようになっています。

ブロックする手順

次のような手順でブロックを行います。

まず自分のアカウントを選択します。

ゲーム機の初期画面

「フレンド追加」を選択します。

自分のアカウント

プレイヤーの探し方が表示されるので「一緒に遊んだプレイヤーから探す」を選択します。

フレンドの追加

表示される「一緒に遊んだプレイヤー」から対象者を選択します。

「ブロックする」というアクションを選択します。

任意のプレイヤー

ブロックするとそのプレイヤーのステータスは「ブロック中」に変わり、フレンド申請するボタンは無くなります。

ブロック中のプレイヤー

ここにあるフレンド機能というのは、フレンドになりたい相手にフレンド申請を送り、相手に承認されると両者は互いに「フレンド」となり、オンラインゲームを一緒に楽しむことができる機能です。

ブロックを解除する手順

ブロックを解除する手順も参考までに記しておきます。

自分のアカウントの画面から「設定」を選択します。

アカウント

「ブロックリストを管理」を選択します。

設定

ブロック中のプレイヤーの一覧から任意のプレイヤーを選択します。

「ブロックを解除する」を選択します。

さて、このブロック関連の流れを改めて俯瞰してみると、ブロックしようとしているのに「フレンド追加」から操作するというちょっと不合理な構造になってしまっていることが見えてきます。

これをOOUIのデザインの考え方を用いて改善してみてください。

観察

まずはユーザーの関心の対象、つまりオブジェクトを考えてみましょう。

ブロックする対象が何なのかを考えると「プレイヤーをブロックする」というタスクとして捉えることができます。つまり「プレイヤー」というオブジェクトの存在がすぐに見えてきます。

考察

なぜこういった現状になっているのでしょうか?少し推測してみましょう。

このフレンド追加機能は「フレンド追加」 から「 一緒に遊んだプレイヤーから探す」とアクションが連なっていて、タスク指向的にデザインされているようにも思えます。

ところがブロック機能の追加にあたっては、フレンド追加の流れの中に登場するプレイヤーに「ブロックする」アクションを追加しています。同じ対象に対するアクションはまとめて構造化しているという意味ではオブジェクト指向的です。

タスク指向的に発想し、途中で立ち現れたオブジェクトに引き寄せられるかのようにオブジェクト指向的になっているようにも見えます。作り手自身も流れはなんであれ、オブジェクトとして画面に見えてしまうと、タスクや機能と言うよりもその対象の存在を強く意識するようになるのかもしれません。

オブジェクトの整理

「プレイヤー」というオブジェクトがありますので以下のようにモデリングをしてみましょう。

プレイヤー同士が関連していますので相互に参照することもありそうです。フレンドというのは「フレンドのプレイヤー」として扱ってみましょう。同じように「一緒に遊んだプレイヤー」も各プレイヤーに紐づけてみましょう。

「申請」「設定」は今回の対象ではありませんがプレイヤーに紐づけておきましょう。

元々の画面にあった要素を整理してみると自分のアカウント=プレイヤーのシングルはこのような感じになりそうです。

プレイヤーのシングルにはプロフィールや「フレンド」に加え「一緒に遊んだプレイヤー」や「ブロック中のプレイヤー」が表示されています。

(ブロック中のプレイヤーはその性質上、あえて存在を強く意識しないようにオプションとして設定の中に隠蔽するという方向もあります。ただしその場合、ブロック解除がしにくくなりますのでその点を含めた検討が必要になるでしょう。)

「一緒に遊んだプレイヤー」は一部が表示されていて、「すべて表示」を選択すると一緒に遊んだプレイヤーのコレクションが表示されます。

自分のアカウント

その中から任意のプレイヤーを選択します。

プレイヤーのシングルが表示されます。「ブロックする」というアクションを選択すればブロックができるようなシンプルな構造になっています。

元々のデザインではブロックしたい場合でも「フレンド追加」という入り口を選択しなければいけないという不合理がありました。

OOUIの考えを用い改善した例では「フレンド申請」というタスクではなく「一緒に遊んだプレイヤー」というオブジェクトが入り口になっています。

名詞 > 動詞の操作順序になっていますので、任意のプレイヤーに対して「ブロックする」だけでなく「フレンド申請する」というアクションをここで選ぶことができる自然な構造になりました。

ブロック後は「ブロック中」というステータスが表示され「ブロックを解除する」というアクションができるようにしてみましょう。間違ってブロックした相手をすぐ元に戻すことも容易になりました。

一旦ブロックしたユーザーをしばらくしてからブロック解除する場合を考えてみましょう。

その場合は自分のアカウントの画面から「ブロック中のプレイヤー」を選択します。

自分のアカウント

表示される一覧から任意のプレイヤーを選択します。

「ブロックを解除する」を選択します。

いかがだったでしょうか。それほど複雑なことは行っていません。

機能単位で発想し、そのまま入り口にしてしまうと今回のようにタスク指向になってしまいがちです。これはゲームのブロック機能特有の話ではありませんので、今回のようにオブジェクトを中心に整理しなおす発想を頭に入れておくと色々な場面で応用できるかと思います。

The Art of User-Interface Design