3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Flutterでリッチなアニメーションを表示させよう!【Rive】

Posted at

Riveとは

Rive

Riveとは、リッチでおしゃれなアニメーションや動きを色んなプラットフォームに使えるようにしたWebサービスです。
Rive上のエディタでアニメーションを作成し、そのアニメーションを実際のアプリに簡単に組み込むことができます。

今回は、主にFlutterでのアニメーションの実装の部分にフォーカスして話を進めますが、アニメーション自体の作り方などは公式のサイトがすごく参考になると思います

Riveリソース
Tutorial

タイトルなし.gif

実装

パッケージのインストール

riveをインストール

pubspec.yaml
dependencies:
  rive: ^0.6.7

Assetsに追加

https://rive.app/community/
コミュニティに色んなアニメーションが既にあるので、ここからダウンロードすることによってすぐに使うことができます。

スクリーンショット 2021-02-14 11.13.18.png
右の「Download」をクリックすると.rivファイルがダウンロードされるます。

ダウンロードしたら、プロジェクトに戻ってプロジェクト直下にassetsディレクトリを作成。
そして、さっきの〇〇.rivassetsフォルダの直下配置します。

pubspec.yamlに追加したアセットのパスを追加。

pubspec.yaml
assets:
  - assets/love_note_4.riv

アニメーションを開始

実際にアニメーションを表示させる部分を実装していきます。
まずは、変数を定義

main.dart
Artboard _artboard;
RiveAnimationController _controller;

その後、initStateに以下のコードを追記

main.dart
rootBundle.load('assets/love_note_4.riv').then(
  (data) async {
    final file = RiveFile();

    if (file.import(data)) {
      final artboard = file.mainArtboard;
      artboard.addController(_controller = SimpleAnimation('note'));
      setState(() => _artboard = artboard);
    }
  },
);

行っている処理としては、アセットの.rivファイルを読み込み、それをRiveFileオブジェクトとして作成。
また、同時にRiveAnimationControllerを継承したSimpleAnimation('note')artboardに追加。
SimpleAnimationの引数は.rivファイルをRiveのエディタで開いた際のアニメーション名を渡す。
(下のスクショの赤い枠の部分がアニメーション名)

スクリーンショット 2021-02-14 11.31.20.png

そして、好きな箇所にRive(artboard)を追加

main.dart
Rive(artboard: _artboard)

おまけ。

このアニメーションを途中で停止さたい場合は、_controllerisActiveを命令的にfalseにしてやれば良い。
例えば、、、

main.dart
void _togglePlay() {
  setState(() {
    _controller.isActive = !_controller.isActive;
  });
}

これをどっかのonTaponPressedに渡してやる。

終わりに

Flutterでいい感じのローディング用のアニメーションないかな〜と探していたところ、これを発見しまして色々触ってみたところかなりいい感じだったので紹介させてもらいました。

全体のコードや最初のGIFで載せてるコードはGitHub上にあげていますので、お好きにご覧ください!
https://github.com/shotaro427/rive-sample

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?