アプリエンジニアもアニメーション作れるよ!!Flutter × Rive で次世代のUI体験を作ろう

こんにちは👋 UI綺麗にするのが好きな
アプリチームのルーカス (YOUTRUST / X) です

最近、YOUTRUSTのアプリが以前よりもアニメーションで表現豊かになってきたと感じた方もいるかもしれません。 その仕掛け人は誰でしょうか…?実は、僕なんです

4.0.0に入れたボトムナビゲーションバー

あるとき、マネージャーから 「ボトムバーをアニメーションで動かしたいんだけど、できる?」 と相談されたのがきっかけでした。

その瞬間、めちゃくちゃ嬉しかったんです。 というのも、僕は12歳の頃からPhotoshopPremiere ProAfter Effects などをいじって動画やアニメーションを作るのが大好きで、ずっと趣味で続けてきました。 これまで培ったスキルをついに仕事で活かせるときが来た!って思ったんですよね。

普段は実装担当としてコードを書くことが多いんですが、今回はデザイン面にも直接関われる貴重な機会でした。 そして、僕自身が大ファンの Rive を使って、すぐに開発に取り掛かることにしました 🚀

Riveとは?🎨✨

Riveは、リアルタイムで動くインタラクティブなアニメーションを作成・実装できるプラットフォームです。
さらに、Riveのエディタ自体もFlutterで構築されているので、
Flutterエンジニアにとって非常に親しみやすいUI/UXになっています。
アプリやWeb、ゲームにおけるアニメーション体験を革新的に変えるツールなんです。


🎯 Riveの特徴

1. コードを書かずにリッチなアニメーション

Rive の専用エディタを使えば、デザイナーがノーコードでアニメーションを作成可能
さらに、その結果を Flutter・iOS・Android・Web に直接組み込めます。


2. 状態遷移ベースのアニメーション

Rive の最大の魅力は State Machine(ステートマシン)
クリック、ドラッグ、ホバーなどのユーザー操作に応じて、アニメーションがインタラクティブに切り替わるんです。

例えば:

  • ボタンを押すとバウンスしながら色が変わる
  • スクロールに合わせてキャラクターが走る
  • ゲームのHPが減るとエフェクトが変わる

マーケットプレースで様々な例が見られます。


3. マルチプラットフォーム対応

Rive は Flutter SDK や iOS / Android / Web 用ライブラリを公式で提供しているため、ひとつのアニメーションをさまざまな環境で再利用可能です。
Flutter エンジニアにとっては、アセット管理も簡単で高速なのが大きな強みです。


🔄 LottieからRiveへの移行

アプリ開発でアニメーションを取り入れる場合、今までは Lottie が定番でした。
嬉しいことに、riveがLottieからのインポート機能を持っていたので、すごく簡単でした。


⚡ Lottie vs Rive:徹底比較

特徴 Lottie Rive 🚀
開発元 Airbnb Rive Labs
形式 JSON アニメーションデータ 独自 .riv ファイル
作成ツール After Effects + Bodymovin プラグイン 専用 Rive エディタ
リアルタイム編集 ❌ 不可 ✅ 可能
インタラクティブ性 制限的(再生 or 停止のみ) ✅ ステートマシンで自由自在
ファイルサイズ やや大きめ 軽量
パフォーマンス JSONパース+Canvas描画で負荷あり GPUアクセラレーションで高速描画
学習コスト After Effects操作必須 デザイナー向けUIで低め

🎯 Riveの強み

1. インタラクティブなアニメーション

Lottieは「一方向的な再生」が基本ですが、Riveはステートマシンでユーザー操作に応じて動きを切り替え可能。

例えば:

  • スクロールに合わせたパララックスエフェクト
  • ボタンを押すとキャラがジャンプ
  • ゲームのHPに応じてアニメーションを変化

これらはLottieでは実装が難しい、もしくは複雑なコードが必要ですが、Riveならほぼノーコードで実現できます。


2. After Effects不要

LottieはAfter Effects + Bodymovinが必須。
デザイナーにとっては学習コストが高く、開発者にとってもデータの受け渡しが煩雑になりがちです。

一方、Riveは専用エディタで完結。
デザイナーが直接 .riv ファイルを作ってエンジニアに渡せるので、制作〜実装がシームレスです。


3. パフォーマンスが圧倒的に高い

RiveはJSONではなく独自バイナリ形式を採用しているため、
ファイルが軽量で描画も高速です。

特にFlutterアプリではパフォーマンスの差が顕著で、
RiveはSkia GPU描画と非常に相性が良く、
複雑なアニメーションでも滑らかに動作します。

さらに、最近は Rive Native という新しいランタイムも登場しました 🎉
🔗 Rive Native (Flutterランタイム)

このRive Nativeは、Flutter向けにより低レベルで最適化されており、
これまで以上に高速でスムーズな描画🔥が可能になります。

⚠️ 注意
Rive Nativeはまだ公式リリース前の実験的機能です。
本番環境での利用は推奨されませんが、
次世代の最高パフォーマンスを試したい方はチェックしてみる価値があります。


🛠️ Riveへの移行のステップ

  1. 既存のLottieアニメーションを棚卸し
    • どのアニメーションをRiveに置き換えるか選定
  2. Riveエディタで再制作
    • Lottieから直接変換はできないため、デザインをRiveで再構築
  3. Flutterに実装
    • flutter_genと簡単に使えますので、このコードだけで表示できます
Assets.animations.readingYutora.rive(
    useArtboardSize: true,
);

キャラクターアニメーション

さらに、もうひとつ面白いチャレンジだったのが、 YOUTRUSTのマスコットキャラクター 「ユートラくん」を空を飛ばせるアニメーションを作ったときです 🕊️✨

羽をパタパタ動かす必要があったので、Riveでボーン🦴機能を使いました。 ボーンはキャラクターの「骨格」のようなもので、パーツに対してボーンを設定すると、 そのボーンを動かすだけでキャラクター全体の自然な変形や動きを表現できるんです。

例えば、羽の付け根にボーンを置き、角度を少し動かすと、 羽全体がなめらかに連動して動くようになります。 この機能のおかげで、複雑そうに見えるキャラクターアニメーションも、 実はかなり効率よく作ることができるんです 💡

Riveはこうしたキャラクターアニメーションにも強くて、 「動きをつける」というより、「キャラクターに命を吹き込む」感覚に近いですね。

Riveを使えば、アプリエンジニアでも 「デザイナー並みのアニメーション表現」が手に入ります。

Flutterとの相性も抜群なので、 ぜひ一度トライして、UI/UXをワンランク上に引き上げてみてください!

YOUTRUSTでは、常にユーザー体験を大切にし、 最新の技術を積極的にキャッチアップしています。 もし、「UXを極めたい!」というエンジニアの方がいたら、 ぜひ一緒に語りましょう!🚀

herp.careers