SlideShare a Scribd company logo
1 of 74
Download to read offline
アニメーションによってこのような素晴らしい作品が作れます。
もっと真面目な使い方もある、らしいです。
例えば、この図は分かりにくいでしょう。
アニメーションを使うとだいぶ分かりやすくなります。
Hans Rosling氏のTED Talkは非常に面白いです。
多量のデータを把握するため、アニメーションが大変役に立ちます。
簡単に言えば、アニメーションというものは時間を通して、情報を伝えることです。
ユーザーインターフェースにも、アニメーションによって
情報を伝えることができます。
OSXのGenie効果によって、最小化されたウィンドウはどこ
に行っちゃったかとすぐ分かります。
Firefoxにもアニメーションが同様に使われています。
しかし、アニメーションがカクカクして
しまうとユーザーがイライラするし、
伝えたい情報が失われます。
ウェブアプリを作る際、どうやって
パフォーマンスを保証しますか?
何よりも、ブラウザーがその背後に何を
やっているかという理解が必要です。
滑らかなアニメーションができるように、マークアップからユーザーの目
までの間にブラウザーが行っている過程を最適化しに行きましょう。
URLを開くと、コンテンツをが読み込まれ、
DOMツリー(コンテンツツリー)が建てられます。
しかし、この過程がアニメーションに与える影響が
低いですので次のスタイル仕組みに進みましょう。
レイアウト・描画するために、DOMツリーにスタイ
ルを適用して、レンダーツリーを建てます。
スタイル決定という過程によってレンダーツリーを
作ります。しかし、フレーム(CSS box)の高さ、配置
などはまだ決まっていません。
レイアウトという過程によると
フレームの配置などを計算します。
コンテンツによってこの過程は重
いです。
どれほど重いかとタイムラインによって計ることができます。
Chrome
IE
Firefoxではリフロー(レイアウト)が
コンソールで表示されています。
例えば、margin-leftのアニメーションだと
毎回リフローが行われています。
この同じテストケースを他のブラウザーで見ると、異なることがありますが、
transformならどのブラウザーでもリフローしません。ということは、
transformを使うとアニメーションがもっと滑らかになるでしょう。
この2つの過程が重いですので、
ブラウザーができるだけスタイルの
処理を避けます。
必要なときまで待ちます。
しかし、APIによってはスタイルの処理をさせます。
このコードによると、プリンごとにスタイルを変えて、
そしてリフローをさせます。
指定されたスタイルを使うとリフローはさせません。
レンダーツリーが建てられたら、描画ができます。
だいたい描画が一番重い過程です。
描画を軽くすることは良いですが、
コンテンツによっては完全に描画をスキップすることも可能です。
レーヤーはフォトショップなどのレーヤーみたいです。
ブラウザーが画像数枚を1回描画して、最後に全部を合成します。
合成するのにGPUが得意ですのでよくGPUにやってもらいます。
合成しながら幾何変換、透明度などを変えることができますので
再描画する必要はありません。
ブラウザーが自動的にレーヤーを作ってくれます。
スクリプトのアニメーションでも、ブラウザーによって自動的にレーヤー化されます。
アニメーションが始まるまでプリンがレーヤー化されません。
しかし、場合によってアニメーションが始まったら、レーヤー化するのはもう遅いです。
端末またコンテンツによってはレーヤー化するのに時間がかかります。
このような場合にアニメーションがカクカクしないため、最近のブラウザー(例:
Firefox 37以降)がアニメーションの開始時間を調整しますが、まだアニメーション
の反応が遅いと見えます。できればレーヤー化を前もってやってほしいです。
will-changeを使うとあらかじめレーヤー化をするように
ブラウザーにお願いすることができます。
レーヤーを使ってもブラウザーが忙しくなるとアニメーションが
カクカクしてしまうことまだあります。
なぜかというと、
アニメーションが主要スレッドで動いていますので、
他の過程が忙しくなるとアニメーションする
余裕がなくなります。
しかし、レーヤーはだいたいコンポジターという別のスレッドで合成されていますので、
コンポジタースレッドでアニメーションができるとしたら、主要スレッドが忙しくなっても
アニメーションが滑らかに進みます。
スクリプトのアニメーションなら、ブラウザーがそのアニメーションの
効果を把握していませんので、コンポジターに渡せません。
しかし、Web Animations APIを使うとコンポジターのアニメーション
を作ることができます。
現在、FirefoxでもWeb Animations APIが実装中です。
CSS Animations又CSS Transitionsをスクリプトから調整することができます。
Web Animations APIに基いて、最近アニメーションの開発ツールができました。
FirefoxでのWeb Animations API実装の進展。
ここまで学んだブラウザーについての知識を活かして、
どの端末上でも、どのブラウザー上でも、滑らかに動くアニメーションが作れます。
プリンより滑らか。スムーズなアニメーションの作り方

More Related Content

Viewers also liked

Websocketのお絵かきチャットサンプル
Websocketのお絵かきチャットサンプルWebsocketのお絵かきチャットサンプル
Websocketのお絵かきチャットサンプルYujiro Araki
 
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナーRICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナーcontest-theta360
 
Harbor Research's Infographic on the Internet of Things and Smart Services
Harbor Research's Infographic on the Internet of Things and Smart ServicesHarbor Research's Infographic on the Internet of Things and Smart Services
Harbor Research's Infographic on the Internet of Things and Smart ServicesHarbor Research
 
HTML5 CONFERENCE パフォーマンス部パネルディスカッション 「2015年これからの日本のWebサイトパフォーマンスについて」
HTML5 CONFERENCE パフォーマンス部パネルディスカッション 「2015年これからの日本のWebサイトパフォーマンスについて」HTML5 CONFERENCE パフォーマンス部パネルディスカッション 「2015年これからの日本のWebサイトパフォーマンスについて」
HTML5 CONFERENCE パフォーマンス部パネルディスカッション 「2015年これからの日本のWebサイトパフォーマンスについて」Yoichiro Takehora
 
【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ Cisco IE 4000 シリーズのご紹介
【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ  Cisco IE 4000 シリーズのご紹介【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ  Cisco IE 4000 シリーズのご紹介
【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ Cisco IE 4000 シリーズのご紹介シスコシステムズ合同会社
 
日本のテスト産業の国際競争力 ~日本をソフトウェアテスト立国にしよう~
日本のテスト産業の国際競争力~日本をソフトウェアテスト立国にしよう~日本のテスト産業の国際競争力~日本をソフトウェアテスト立国にしよう~
日本のテスト産業の国際競争力 ~日本をソフトウェアテスト立国にしよう~Yasuharu Nishi
 
若く見られる・撮られるテクニック(in Japanese)
若く見られる・撮られるテクニック(in Japanese)若く見られる・撮られるテクニック(in Japanese)
若く見られる・撮られるテクニック(in Japanese)Toshihiko Yamakami
 
写真の撮り方
写真の撮り方写真の撮り方
写真の撮り方YanoLabLT
 
IoTを支える(かもしれない)技術
IoTを支える(かもしれない)技術IoTを支える(かもしれない)技術
IoTを支える(かもしれない)技術Masayuki Uchida
 
写真でなんでも2択の相談!回答率100%の暇潰し系相談アプリ【aorb】
写真でなんでも2択の相談!回答率100%の暇潰し系相談アプリ【aorb】写真でなんでも2択の相談!回答率100%の暇潰し系相談アプリ【aorb】
写真でなんでも2択の相談!回答率100%の暇潰し系相談アプリ【aorb】星影 月夜
 
魅力を引き出すポートレート 人物写真の撮り方(オンライン用 一部公開)
魅力を引き出すポートレート 人物写真の撮り方(オンライン用 一部公開) 魅力を引き出すポートレート 人物写真の撮り方(オンライン用 一部公開)
魅力を引き出すポートレート 人物写真の撮り方(オンライン用 一部公開) Daisuke Yamamoto
 
IoT先進国、米国の最先端IoTトレンド
IoT先進国、米国の最先端IoTトレンドIoT先進国、米国の最先端IoTトレンド
IoT先進国、米国の最先端IoTトレンドiot_nifty
 
ウェアラブルデバイス、IoTがもたらす産業変革
ウェアラブルデバイス、IoTがもたらす産業変革ウェアラブルデバイス、IoTがもたらす産業変革
ウェアラブルデバイス、IoTがもたらす産業変革Toshiya Jitsuzumi
 
Animations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fastAnimations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fastbrianskold
 
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜Takashi Kaneda
 
IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事Koichi Sasaki
 
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出小林 信行
 

Viewers also liked (20)

Websocketのお絵かきチャットサンプル
Websocketのお絵かきチャットサンプルWebsocketのお絵かきチャットサンプル
Websocketのお絵かきチャットサンプル
 
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナーRICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
 
150130 edison-ug
150130 edison-ug150130 edison-ug
150130 edison-ug
 
Harbor Research's Infographic on the Internet of Things and Smart Services
Harbor Research's Infographic on the Internet of Things and Smart ServicesHarbor Research's Infographic on the Internet of Things and Smart Services
Harbor Research's Infographic on the Internet of Things and Smart Services
 
HTML5 CONFERENCE パフォーマンス部パネルディスカッション 「2015年これからの日本のWebサイトパフォーマンスについて」
HTML5 CONFERENCE パフォーマンス部パネルディスカッション 「2015年これからの日本のWebサイトパフォーマンスについて」HTML5 CONFERENCE パフォーマンス部パネルディスカッション 「2015年これからの日本のWebサイトパフォーマンスについて」
HTML5 CONFERENCE パフォーマンス部パネルディスカッション 「2015年これからの日本のWebサイトパフォーマンスについて」
 
【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ Cisco IE 4000 シリーズのご紹介
【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ  Cisco IE 4000 シリーズのご紹介【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ  Cisco IE 4000 シリーズのご紹介
【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ Cisco IE 4000 シリーズのご紹介
 
日本のテスト産業の国際競争力 ~日本をソフトウェアテスト立国にしよう~
日本のテスト産業の国際競争力~日本をソフトウェアテスト立国にしよう~日本のテスト産業の国際競争力~日本をソフトウェアテスト立国にしよう~
日本のテスト産業の国際競争力 ~日本をソフトウェアテスト立国にしよう~
 
若く見られる・撮られるテクニック(in Japanese)
若く見られる・撮られるテクニック(in Japanese)若く見られる・撮られるテクニック(in Japanese)
若く見られる・撮られるテクニック(in Japanese)
 
美しい写真を撮る10の秘訣
美しい写真を撮る10の秘訣美しい写真を撮る10の秘訣
美しい写真を撮る10の秘訣
 
写真の撮り方
写真の撮り方写真の撮り方
写真の撮り方
 
IoTを支える(かもしれない)技術
IoTを支える(かもしれない)技術IoTを支える(かもしれない)技術
IoTを支える(かもしれない)技術
 
【Interop Tokyo 2016】 Cisco IoT (展示内容紹介)
【Interop Tokyo 2016】 Cisco IoT (展示内容紹介)【Interop Tokyo 2016】 Cisco IoT (展示内容紹介)
【Interop Tokyo 2016】 Cisco IoT (展示内容紹介)
 
写真でなんでも2択の相談!回答率100%の暇潰し系相談アプリ【aorb】
写真でなんでも2択の相談!回答率100%の暇潰し系相談アプリ【aorb】写真でなんでも2択の相談!回答率100%の暇潰し系相談アプリ【aorb】
写真でなんでも2択の相談!回答率100%の暇潰し系相談アプリ【aorb】
 
魅力を引き出すポートレート 人物写真の撮り方(オンライン用 一部公開)
魅力を引き出すポートレート 人物写真の撮り方(オンライン用 一部公開) 魅力を引き出すポートレート 人物写真の撮り方(オンライン用 一部公開)
魅力を引き出すポートレート 人物写真の撮り方(オンライン用 一部公開)
 
IoT先進国、米国の最先端IoTトレンド
IoT先進国、米国の最先端IoTトレンドIoT先進国、米国の最先端IoTトレンド
IoT先進国、米国の最先端IoTトレンド
 
ウェアラブルデバイス、IoTがもたらす産業変革
ウェアラブルデバイス、IoTがもたらす産業変革ウェアラブルデバイス、IoTがもたらす産業変革
ウェアラブルデバイス、IoTがもたらす産業変革
 
Animations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fastAnimations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fast
 
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
 
IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事
 
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
 

プリンより滑らか。スムーズなアニメーションの作り方