Aftereffectsで作成したsvgアニメーションをBodymovinを使って超カンタンにweb上で動かす方法

Pocket
LINEで送る

Aftereffects extensionのbodymovinと、Airbnb製のライブラリであるLottieを使って、ネイティブアプリ上でアニメーションを実現する方法をすでに2回に分けて紹介しました。

After Effectsで作成したアニメーションをネイティブアプリで再生するAirbnb製のライブラリを使ってみた【前編】

After Effectsで作成したアニメーションをネイティブアプリで再生するAirbnb製のライブラリを使ってみた【後編】

これらの記事を書いた直後、何人かにWeb上でできないの?という質問を受けたので、今回はAftereffectsで作成したアニメーションを、SVGアニメーションで動かす方法をご紹介したいと思います。

僕が作成したインタラクティブなSVGアニメーションをこちらに掲載していますのでよかったら御覧ください。

SVG Animations

なぜSVGアニメーションなのか

ブラウザ上でアニメーションを実装する方法は、cssであったりjQueryだったり多数存在しますが、その中でも僕は断然このSVGアニメーションを推したい。理由は以下の通り。

  • 1. jpgやpngといった画像を使用しないのでファイルサイズが軽量
  • 2. ベクターなので滑らかで美しい。デバイスの解像度を気にする必要もない。
  • 3. 他プラットフォ―ムでアニメーションリソースの使いまわしが可能

1と2は、SVGアニメーションというよりはSVGの利点。3に関しては今回紹介するBodymovinを使った場合に限定されてしまうかもしれませんが、JSONを書き出してしまえば、iOS, android, reactネイティブなどの他プラットフォームでカンタンに実装することができる上に、アニメーションを一元管理することも出来ます。

ただ、SVGアニメーションってJSめちゃくちゃ書けるエンジニアの仕事だと思ってませんか?JSそんなにわからないデザイナーでもできます!今回はbodymovin.jsという、javascriptのライブラリを使用して、サクサクっと実装してしまいましょう。

BodymovinをつかってJSONファイルを生成する

AfterEffectsにプロジェクトからJSONを生成するためのエクステンションを入れ、実際にJSONを書き出します。詳しいインストール方法と、書き出しの方法はこちらの過去記事に記載してありますので参考にしてください。

Bodymovin.jsを使おう

先程AfterEffectsのエクステンションを使うためにダウンロードしたリポジトリ(bodymovin)の中のbuild/player/に入っているbodymovin.jsをプロジェクトに読み込ませてください。

次に、SVGアニメーション用の箱を用意します。

最後に以下の設定を行うだけです。

animData{}の中で、アニメーションの設定を行っています

  • container SVGアニメーション用に作った箱を指定。
  • render ‘svg’ / ‘canvas’ / ‘html’ の中から選択。
  • loop animationを連続で再生するかどうか指定。
  • autoplay animationを自動で再生するかどうか指定。
  • path AfterEffectsから書き出したJSONまでのパスを記載。とても大事です。

Demo

さいごに

とてもカンタンにSVGアニメーションをあなたのウェブサイトで実現できることがお分かりいただけたかと思います。ただ、Bodymovinも万能では無いみたいで、AfterEffectsの一部の機能に対応していなかったりします。出来ないこと、対策方法などについても今後書いていきます。

このような”アウトプットにつながるインプット”を日々やりまくってます。一緒に最先端を走りませんか!?テクノロジーで誰かを幸せにしたいアルバイト、インターン募集しています!

ランチのお誘いも大歓迎!!DMください🐤



Pocket
LINEで送る