1
0

p5.js と Tween24.js を組み合わせたアニメーション・イージングのお試し【完走賞ゲット-12】

Last updated at Posted at 2023-12-11

この記事は、「完走賞ゲットのため小ネタ 25記事を投稿しようとチャレンジ v2 Advent Calendar 2023」の 12日目の記事です。

今回の内容

今回の内容は、p5.js と Tween24.js を組み合わせて使ってみた、という話です。

Tween24.js とは

今回、描画ライブラリの p5.js と組み合わせる「Tween24.js」は、メソッドチェーンでアニメーションが書けるライブラリです。

●新感覚!メソッドチェーンでアニメーションがスラスラ書ける「Tween24.js」を作りました - ICS MEDIA
 https://ics.media/entry/210409/
●a24/tween24js: Tween24 for JavaScript
 https://github.com/a24/tween24js

過去に使ったアニメーションライブラリ

過去に、自分が使ったことがあるアニメーションライブラリには、主に anime.js と p5.tween の 2つがありました。

anime.js については、以下など試した内容を Qiita の記事にも書きました。

また、p5.tween を試した時の X のポストは、以下のとおりです。

Tween24.js を試そうと思ったきっかけ

Tween24.js自体は、上で掲載していた内容を試す前の調査で見かけていました。

そして、いつか試してみようと思っていたのですが、試すことないまま時間が流れていていたのですが、最近以下の記事を見かけて、手をつけてみようと思いました。

●Tween24.jsでアニメーションを実装してみたので解説 #虎の穴ラボ Advent Calendar 2023 - 虎の穴開発室ブログ
 https://toranoana-lab.hatenablog.com/entry/2023/12/10/100000

Tween24.js を使う

p5.js と Tween24.js を組み合わせる

まずは、 p5.js と Tween24.js を簡単に組み合わせられるかを試してみます。

それを試す環境としては、Web上でコーディングと作ったものの実行が簡単に行える p5.js Web Editor を使います。

Tween24.js を読み込む

CDN から読み込めると便利かなと思って、「Tween24.js CDN」というキーワードで調べてみました。

そうすると、以下を使うと良さそうなことが分かりました。

p5.js Web Editor で簡単に試す

p5.js Web Editor上で、上記の CDN経由でのライブラリの読み込みをやってみます。

まずは簡単なコードで動作確認を行ってみます。
流用できそうな情報を探してみたところ、公式の以下が活用できそうでした。

パラメータのイージング

以下のコードを実行することで、DOM を対象に指定するのではなく、パラメータを指定した処理を実現できそうです。

let tweenData, tween;

function setup() {
  createCanvas(500, 400);

  tweenData = { progress: 0 };

  tween = Tween24.tween(tweenData, 1, Ease24._Linear, { progress: 1 });
}

function draw() {
  background(220);

  const x = tweenData.progress * width;
  circle(x, height / 2, 100);
}

function mouseClicked() {
  tween.play();
}

実際に動作をさせてみたのが以下です。

無事、画面の一方の端から他方の端へ動くのが、想定通りの動きになりました。

イージングの指定について(デフォルトの内容とそれを変更する話)

今回、上記でのイージングは Ease24._Linear を使いました。
こちらは、公式の記事を見ていると、イージングの種類を省略しても、同じ Ease24._Linear が設定されるようです。

このデフォルトで設定されるイージングの種類は、 Tween24.setDefaultEasing() を使うことによって、変更もできるようでした。

デフォルトの変更

おわりに

今回、今まで使ったことがなかったアニメーションライブラリを使い、イージングの処理を簡単に試してみました。

ひとまずベースはできあがったので、さらに Tween24 を使ったアニメーションと p5.js の組み合わせを試していければと思います。

1
0
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
1
0