Google UXデザイン：高忠実度プロトタイプ（ジェスチャー＆モーション）

# はじめに

わたしが[Google UX Design Certificateで得られた素晴らしい体験][google]を、特に重要だと思われるポイントを小さく分割して、わかりやすく簡潔に紹介していきます。

興味があれば、ぜひ Google UX Design Certificateを受講してみてください。

[google]: https://qiita.com/mapami/items/7a0d0a3d4661c50f8bec

https://www.coursera.org/professional-certificates/google-ux-design

<details><summary>これまでの振り返り</summary>

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/d371bce4-836a-0ba5-fd7d-9d2e55f1b909.jpeg" width="700">

</details>

# ジェスチャーとモーションの概念

Figmaで高忠実度プロトタイプを作成するためのステップを学ぶ前に、ジェスチャーとモーションという 2つの概念について、紹介します。

# ジェスチャー

***<font color="MediumVioletRed">『ユーザーがデバイス上の情報に触れるときに行う、あらゆる操作方法』</font>***

次の種類があります。

<dl>
  <dt>スクロール</dt>
  <dd>指先やスタイ
ラスで画面を水平または垂直に短く動かすことです。たとえば、ユーザーは、アプリの画面間を移動するために、携帯電話の画面の右側から左側にスワイプすることがよくあります。また、スワイプは、コンテンツのカルーセルを操作する際にもよく使われます。</dd>
  <dt>タップ</dt>
  <dd>指先やスタイラスで画面を短く触ることです。タップは、1本の指先から4本の指先までカスタマイズすることができます。1本指でのタップは、画面上の項目を選択するためによく使われます。2本指でタップすると、コンテキストメニュー（右クリックメニュー）を表示させるショートカットとして使用できます。</dd>
  <dt>ドラッグ</dt>
  <dd>画面をタップしたまま、指先やスタイラスを画面上で動かしながら押し続ける操作です。例えば、ユーザーは画面上のアイテムをドラッグして、視界の中に入れたり、外に出したりすることができます。ドラッグは、携帯電話のメイン通知メニューによく使用されます。</dd>
  <dt>ピンチ</dt>
  <dd>2本の指を互いに閉じたり、遠ざけたりする動作のことです。ピンチを使うと、ウェブサイトや地図、写真などを拡大・縮小するように、画面上のアイテムを拡大・縮小することができます。
</dd>
</dl>

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/3573aa28-3cd3-3178-8462-b691e3ec0f5b.png" width="500">

# モーション

***<font color="MediumVioletRed">『静的なデザイン要素をアニメーション化することで、ユーザーの注意を引き、ストーリーを伝えるための方法』</font>***


別の言い方をすれば、モーションは、アニメーションを加えることによって、画面上で起こる微妙な変化をユーザーに理解させることができるのです。

下の画像は、スマートフォンをお持ちの方ならお馴染みの動作例です。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/ff4309d9-0aac-63f9-90f0-d4feefc74d1b.png" width="500">

- iOS端末をお使いの場合、アプリのアイコンを長押しすると、ホーム画面上のすべてのアプリが「ジグルモード」になり、アプリのアイコンが揺れ、それぞれの左隅にマイナス記号が表示されます。この動きで、アプリの編集が可能であることをユーザーに知らせます。

- Android端末の場合、この動作はもっと繊細です。ホーム画面でアプリのアイコンを長押しすると、そのアプリだけのオプションメニューが表示されます。アプリのアイコンが上下に少し揺れるのは、どのアプリの設定を編集しているのかを知らせるためです。

# サンプル

#### 1つめ

たとえば、モバイル端末でオンラインショッピングをするとき、通常はボタンをタップして商品をカートに入れます。このとき、カートアイコンの状態が変化しても、アニメーションがなければ、その変化に気づかないかもしれません。しかし、カートのアイコンの状態が変化する際にアニメーションが表示されると、カートに視線が集まります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/3f5573d3-6d76-3349-42b8-6d222e3cc9c7.png" width="350">

- タップがジェスチャーにあたります。
- そして、「カートに入れる」ボタンがタップされた後に起こるアニメーションがモーションです。

#### ２つめ

電子書籍を読んでいて、画面を指でスワイプして次のページをめくったことがありますか？

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/06f3def8-d7b5-fbd8-a734-da017497e8d9.png" width="350">

- スワイプはジェスチャーであり、
- モーションはスワイプした後に行われるアニメーションです。

ジェスチャーやモーションは、ユーザー体験を豊かにし、使い勝手を向上させるのに役立つというのが、重要なポイントです。

# Figmaでジェスチャーとモーションを追加する

Figmaで高忠実度プロトタイプを作成するためのステップ

1. モックアップのレイアウト
1. 画面の接続
1. ***インタラクションの追加***
1. ***アニメーションの調整***
1. 全画面での完成
1. 作品の共有

[ステップ2は前回紹介しました。][ref1]

ジェスチャーとモーションを設定するための手順として、ステップ3と4を紹介します。

[ref1]: https://qiita.com/masami-atwvn/items/f43f7148fddf5e068f69

## Step3: インタラクションの追加

2つのスクリーンをつなげたら、次はインタラクションの詳細をカスタマイズします。

インタラクションには、探索すべき3つの部分があります。

- トリガー
- アクション
- デスティネーション

### トリガー

***<font color="MediumBlue">『どのようなインタラクションが、プロトタイプを前進させるか』</font>***

- マウスクリック
- タッチジェスチャー
- 現在のフレームでの経過時間 など

Figmaでは、インタラクションの詳細パネルに表示される最初のドロップダウンメニューがトリガーとなります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/2832c89b-0350-4844-98c2-346df21c587f.png" width="250">


### アクション

***<font color="MediumBlue">『ユーザがホットスポットとインタラクションしたときに何が起こるか』</font>***

- 別のフレームに移動
- リンクを開く　

Figmaでは、6つのアクションから選択することができます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/b8f1a365-7cd1-3906-06ef-1be8e50e9d4b.png" width="250">


### デスティネーション

***<font color="MediumBlue">『目的地はどこか』</font>***

- プロトタイプ内の別のスクリーン
- 現在のスクリーンの上に表示されるオーバーレイ

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/98ef62f0-8622-a58e-dd44-390c570c10ef.png" width="300">

# Step4: アニメーションの調整

アニメーションの設定は、プロトタイプがあるスクリーンから別のスクリーンに移動する方法を決定します。こうすることで、プロトタイプに動きを加えることができるのです。

Figmaには、8つのアニメーションが用意されています。アニメーションを「instant」にすると、ユーザーは、ある画面から次の画面へ、何の動きも遷移もなく移動します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/69b3c5ef-79d0-6ffc-3834-51c131ae0506.png" width="250">

スライドインとスライドアウトアニメーションは、ユーザーの道案内するのに役立ちます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/9fd87f20-0786-24cb-dd27-ed35db2f9fe1.png" width="250">

#### 参考

プロトタイプでは、デザインを強化するためのトリガー、アニメーション、インタラクションが数多く存在します。これらのテクニックをどのように使用するかは、製品の目標によって異なります。

Figmaのこれらのリソースをチェックして、ユーザーとのインタラクションをより魅力的にするために使用できる機能を調べてみましょう。

- [Prototype interactions and animations](https://help.figma.com/hc/en-us/articles/360040315773)
- [Nine prototype triggers](https://help.figma.com/hc/en-us/articles/360040035834)
- [Prototype actions](https://help.figma.com/hc/en-us/articles/360040035874)

# アクセシビリティを考慮する

ジェスチャーとモーションに関して、あなたのデザインがアクセシブルであることを保証するために、心に留めておくべきことがあります。


#### ジェスチャーに代わる選択肢を常に提供する
ジェスチャーは、多くの人々が使えない可能性のある特定の動作です。たとえば、手を完全にコントロールできなかったり、画面が見えなかったりして、ジェスチャーを使うのが困難なユーザーもいます。

アクセシビリティの原則としては、ジェスチャーがタスクを完了する唯一の方法でないことを確認することです。ジェスチャーは、あくまでも選択肢の1つであるべきです。

たとえば、Gmailでは、左にスワイプしてメールをアーカイブすることができます。でも、メールを消去する方法はそれだけではありません。アーカイブボタンを選択することもできます。

#### デザインにおける動きの速度と持続時間について、批判的に考える

非常に速い動きは、人を不安にさせ、警戒心を抱かせることがあります。さらに、長すぎる動きも気が散り、混乱を招く恐れがあります。

W3C(World Wide Web Consortium)は、アクセシビリティを確保するために、***<font color="MediumBlue">アニメーションの長さを5秒未満</font>*** にすることを推奨しています。

Figmaでは、ミリ秒単位で動きを計ることができます。つまり、***<font color="MediumBlue">トランジションやその他のモーションは150ミリ秒から500ミリ秒の間</font>*** にする必要があります。

#### ユーザーがモーションをオフにする機能を提供する

UXデザインの世界に足を踏み入れたら、デザインの中のモーションにアクセスできるようにすることで、ユーザーのためにデザインすることが重要です。例えば、最近、GIFや自動再生など、ループするモーションが流行っています。

しかし、ループするモーションは邪魔になることがあります。そこで、ユーザーにモーションをループさせるかどうかのオプションを提供する必要があります。

YouTubeは、ユーザーが自動再生のオンとオフを切り替えられるようにすることで、この慣行に従います。

:::note info
UXデザイナーは、常にアクセシビリティに焦点を当て、より包括的な設計を実践するとよいデザインになります。
:::