LoginSignup
1
1

More than 1 year has passed since last update.

p5.playをやる記事#05_アニメーションを適用する

Last updated at Posted at 2021-08-04

前回の記事 | 次回の記事

p5.playの使い方を解説しております。
第1回の記事はこちらにありますのでご参照ください。

アニメーションを適用する

今度はアニメーションに挑戦です。
前回の記事では単純に画像を適用していましたが、今回は"スプライトシート"を使います。

スプライトシートとは?

スプライトシートとは、"複数の絵が並べてある画像"の事です。

t_run.png

5つのキャラクターが並べて描かれてありますが、これは1枚の画像です。
この画像の1部を順番に表示する事でアニメーションを実現します。
"パラパラアニメ"を想像するとわかりやすいかと思います。

上記の画像を、スケッチにアップロードしておきましょう。
(前回の記事を参考にしてみてくださいね)

スプライトシートの作り方

スプライトシートの作り方ですが、オススメのオンラインエディタがあります。(お気に入りです!!)

Piskel

こちらも動画を用意しておりますので参考にしてみてくださいね。

スプライトシートとアニメーションのロード

では、さっそく使ってみましょう。
アニメーションを実現するには、2つの関数を利用する事になります。

1つ目はloadSpriteSheet関数です。
引数には、スプライトシートとして読み込む対象のファイル名、横幅、高さ、コマ数を指定します。
今回のスプライトシートの場合は1コマの大きさが144x144になり、5コマになりますね。

t_run_2.png

let ss = loadSpriteSheet(ファイル名, 1コマの横幅, 1コマの高さ, コマ数);

そして2つめは、loadAnimation関数です。
この関数の引数には、先ほど作ったスプライトシートオブジェクトを指定するだけです。

let an = loadAnimation(スプライトシートオブジェクト);

アニメーションの適用

最後はスプライトに対してaddAnimation関数を実行するだけです。
タグ名には、任意のアニメーション名を指定します。("run"とか"jump"とか自由に決めましょう!!)

スプライト.addAnimation(タグ名, アニメーションオブジェクト);

全体のコードは下記の様になります。

let an;// 1, アニメーションを格納する変数

function preload(){
   let ss = loadSpriteSheet("t_run.png", 144, 144, 5);// 2, 画像をロードする
   an = loadAnimation(ss);// 3, アニメーションをロードする
}

function setup(){
   createCanvas(windowWidth, windowHeight);
   frameRate(32);
   noSmooth();
   let spr = createSprite(width/2, height/2);
   spr.addAnimation("run", an);// 4, アニメーションを適用する
}

function draw(){
   background(0);
   drawSprites();
}

上手くいけば、下記の様にタヌキが歩き出します。(素敵!!)

nacmk-h2f1z.gif

次回も引き続き、スプライトについてのお話になります。

前回の記事 | 次回の記事

おまけ動画(こちらもよろしくお願いします)

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