メディア芸術の基礎 2017 – 東京工科大学
第4回: アニメーション基礎 (ベクトル、運動方程式)
今回からいよいよ動きのある表現(= アニメーション)について扱っていきます。アニメーションを実現するには、まず時間を扱う基本構造を知る必要があります。Processingでは、setup(), draw() という2つのブロックにわけて、初期化と更新を行うことでアニメーションを実現しています。まず始めはこの基本構造について理解します。次に、これから動きを扱う際に、向きと大きさをもった「ベクトル」という概念を理解します。ベクトルを理解することで、位置や運動を整理して記述することが可能となります。最後に、この基本構造をベクトルを活用して簡単なアニメーションを作成します。
スライド資料
サンプルプログラム
本日とりあげたサンプルプログラムは以下からダウンロードしてください。
課題
今日とりあげた最後のサンプルを元に、以下のスケッチを作成してください。
- それぞれの円の色をランダムに
- それぞれの円の大きさをランダムに
以下のサンプルがベースになります。
int NUM = 100; PVector[] location = new PVector[NUM]; PVector[] velocity = new PVector[NUM]; void setup() { size(800, 600); frameRate(60); noStroke(); fill(0, 127, 255); for (int i = 0; i < NUM; i++) { location[i] = new PVector(random(width), random(height)); velocity[i] = new PVector(random(-4, 4), random(-4, 4)); } } void draw() { background(15); for (int i = 0; i < NUM; i++) { ellipse(location[i].x, location[i].y, 20, 20); location[i].add(velocity[i]); if ((location[i].x > width) || (location[i].x < 0)) { velocity[i].x *= -1; } if ((location[i].y > height) || (location[i].y < 0)) { velocity[i].y *= -1; } } }
課題の提出方法
- emailで提出
- To: tadokoro+teu17@gmail.com
- Subject: 課題2
- 本文に以下の内容を記入して提出
- 学籍番号
- 氏名
- 作成したソースコード (.pde) を本文にコピー&ペースト
- 締切: 次回の講義開始時間 (5月22日 16:45) まで