OOUIデザインのトレーニング:ゲームのブロック機能
今回の題材はオンラインでプレイ可能なゲーム機のブロック機能です。
現状
このゲーム機ではオンラインに対応したゲームを遊ぶことができます。例えばチーム対戦のアクションゲームなどです。こういったゲームの参加者達は試合ごとにランダムにマッチングされます。その中で参加はしているものの全く動かない参加者がいるとゲームが成立しなくなる場合があります。
ゲーム機自体にブロック機能があり、使うことでマッチング対象からそういった参加者を除外することができるようになっています。
ブロックする手順
次のような手順でブロックを行います。
まず自分のアカウントを選択します。

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

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

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

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

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

ここにあるフレンド機能というのは、フレンドになりたい相手にフレンド申請を送り、相手に承認されると両者は互いに「フレンド」となり、オンラインゲームを一緒に楽しむことができる機能です。
ブロックを解除する手順
ブロックを解除する手順も参考までに記しておきます。
自分のアカウントの画面から「設定」を選択します。

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

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

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

さて、このブロック関連の流れを改めて俯瞰してみると、ブロックしようとしているのに「フレンド追加」から操作するというちょっと不合理な構造になってしまっていることが見えてきます。
これをOOUIのデザインの考え方を用いて改善してみてください。
観察
まずはユーザーの関心の対象、つまりオブジェクトを考えてみましょう。
ブロックする対象が何なのかを考えると「プレイヤーをブロックする」というタスクとして捉えることができます。つまり「プレイヤー」というオブジェクトの存在がすぐに見えてきます。
考察
なぜこういった現状になっているのでしょうか?少し推測してみましょう。
- フレンド追加機能を最初に作った
- その中に候補となる一緒に遊んだことのあるプレイヤーを探す機能を作り、一緒に遊んだことのあるプレイヤーの一覧を表示し、「フレンド申請する」ことができるようにした
- 次にブロック機能を考えるときに、一緒に遊んだことのあるプレイヤーをブロックすると考え、フレンド追加機能の中に登場する「一緒に遊んだプレイヤー」に「ブロックする」アクションを追加した
- 結果、特定のプレイヤーをブロックしたいときに「フレンド追加」から行う構造になった
このフレンド追加機能は「フレンド追加」 から「 一緒に遊んだプレイヤーから探す」とアクションが連なっていて、タスク指向的にデザインされているようにも思えます。
ところがブロック機能の追加にあたっては、フレンド追加の流れの中に登場するプレイヤーに「ブロックする」アクションを追加しています。同じ対象に対するアクションはまとめて構造化しているという意味ではオブジェクト指向的です。
タスク指向的に発想し、途中で立ち現れたオブジェクトに引き寄せられるかのようにオブジェクト指向的になっているようにも見えます。作り手自身も流れはなんであれ、オブジェクトとして画面に見えてしまうと、タスクや機能と言うよりもその対象の存在を強く意識するようになるのかもしれません。
オブジェクトの整理
「プレイヤー」というオブジェクトがありますので以下のようにモデリングをしてみましょう。

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

「申請」「設定」は今回の対象ではありませんがプレイヤーに紐づけておきましょう。
元々の画面にあった要素を整理してみると自分のアカウント=プレイヤーのシングルはこのような感じになりそうです。
プレイヤーのシングルにはプロフィールや「フレンド」に加え「一緒に遊んだプレイヤー」や「ブロック中のプレイヤー」が表示されています。
(ブロック中のプレイヤーはその性質上、あえて存在を強く意識しないようにオプションとして設定の中に隠蔽するという方向もあります。ただしその場合、ブロック解除がしにくくなりますのでその点を含めた検討が必要になるでしょう。)
「一緒に遊んだプレイヤー」は一部が表示されていて、「すべて表示」を選択すると一緒に遊んだプレイヤーのコレクションが表示されます。

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

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

元々のデザインではブロックしたい場合でも「フレンド追加」という入り口を選択しなければいけないという不合理がありました。
OOUIの考えを用い改善した例では「フレンド申請」というタスクではなく「一緒に遊んだプレイヤー」というオブジェクトが入り口になっています。
名詞 > 動詞の操作順序になっていますので、任意のプレイヤーに対して「ブロックする」だけでなく「フレンド申請する」というアクションをここで選ぶことができる自然な構造になりました。
ブロック後は「ブロック中」というステータスが表示され「ブロックを解除する」というアクションができるようにしてみましょう。間違ってブロックした相手をすぐ元に戻すことも容易になりました。

一旦ブロックしたユーザーをしばらくしてからブロック解除する場合を考えてみましょう。
その場合は自分のアカウントの画面から「ブロック中のプレイヤー」を選択します。

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

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

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