イージングの基本

アニメーションを柔らかくして重み付けする方法について説明します。

自然界において、ある地点から別の地点に直線的に動くものはありません。実際には、物体は動くにつれて加速または減速する傾向があります。私たちの脳はこの種の動きを期待するように作られているため、アニメーション化するときは、これをうまく使う必要があります。自然な動きでユーザーがアプリに馴染み、全体的なエクスペリエンスの向上につながります。

まとめ

  • イージングは、アニメーションをより自然に感じさせます。
  • UI 要素にイーズアウト アニメーションを選択します。
  • イーズインまたはイーズインアウトのアニメーションは、短くすることが可能な場合を除き、使用しないでください。エンドユーザーにとって動きが遅く感じられる傾向があります。

従来のアニメーションでは、ゆっくり始めて加速する動きは「スローイン」と呼ばれ、すばやく開始して減速する動きは「スローアウト」です。ウェブで最もよく使われている用語は、それぞれ「イーズイン」と「イーズアウト」です。この 2 つを組み合わせることで「イーズインアウト」と呼ばれることもあります。つまり、イージングはアニメーションの厳格さを緩和し、目立たないようにするプロセスです。

イージング キーワード

CSS の遷移とアニメーションでは、どちらもアニメーションに使用するイージングの種類を選択できます。対象のアニメーションのイージング(timing)に影響を与えるキーワードを使用できます。また、イージングを全面的にカスタマイズすれば、アプリの個性をより自由に表現できます。

CSS で使用できるキーワードには、次のようなものがあります。

  • linear
  • ease-in
  • ease-out
  • ease-in-out

出典: CSS Transitions、W3C

また、steps キーワードを使用すると、個別のステップからなる遷移を作成できますが、自然に感じるアニメーションを作成するには、上記のキーワードが最も役立ちます。

リニア アニメーション

リニア イーズのアニメーション カーブ。

イージングが何もないアニメーションは、リニアと呼ばれます。線形遷移のグラフは次のようになります。

時間の経過とともに、値が等しく増加します。直線的な動きの場合、物事が機械的で不自然に感じられる傾向があり、ユーザーはこれを不快に感じます。一般的に、直線運動は避けるべきです。

CSS または JavaScript を使用してアニメーションをコーディングする場合でも、直線運動のためのオプションがあります。

リニア アニメーションを表示する

CSS で上記の効果を実現するには、コードは次のようになります。

transition: transform 500ms linear;

イーズアウト アニメーション

イーズアウトのアニメーション カーブ

イーズアウトは、アニメーションがリニアよりも速く開始し、最後に減速します。

イーズアウトは通常、ユーザー インターフェース作業に最適です。高速で開始することで、アニメーションに反応性を感じさせながら、最後には自然な速度を落とすことができます。

Ease-out アニメーションを見る

イーズアウト効果を実現する方法は多数ありますが、最もシンプルなのは CSS の ease-out キーワードです。

transition: transform 500ms ease-out;

イーズイン アニメーション

イーズインのアニメーション カーブ

イーズイン アニメーションは、ゆっくりと開始して速く終了します。これは、イーズアウト アニメーションの逆です。

この種のアニメーションは、重い石が落下するようなものです。ゆっくりと始まり、止めるような強打で素早く地面に当たります。

しかし、インタラクションの観点から見ると、イーズインは突然終わるため、ちょっと変わったように感じることがあります。現実世界で動くものは、突然止まるのではなく、減速する傾向があります。イーズインには、開始時に動きが遅く感じられるという悪影響もあり、これはサイトやアプリの応答性の印象に悪影響を及ぼします。

イーズイン アニメーションを見る

イーズイン アニメーションを使用するには、イーズアウト アニメーションやリニア アニメーションと同様に、次のキーワードを使用します。

transition: transform 500ms ease-in;

Ease-in-out アニメーション

イーズインアウトのアニメーション カーブ

インとアウトのイージングは自動車の加速と減速に似ており、よく考えて使用することで、単なるイージングよりも劇的な効果を提供できます。

アニメーションの継続時間を過度に長くしないでください。アニメーションのイーズイン開始は遅いためです。通常は 300 ~ 500 ミリ秒の範囲が適していますが、正確な数値はプロジェクトの雰囲気に大きく依存します。とはいえ、スタートが遅く、中間点が遅い、エンドが遅いため、アニメーションのコントラストが強まり、ユーザーにとってはかなり満足できます。

Ease-in-out アニメーションを見る

Ease-in-out アニメーションを作成するには、CSS キーワード ease-in-out を使用します。

transition: transform 500ms ease-in-out;