自分がまだ20代だった頃、ちょっと生意気な感じのとがった風の若者がおじさん達にウケるのは何故なんだろうと思っていた。自分は全くとがったところのない凡庸な(生意気ではあった)若者だったので、なんだか解せない部分があった。
いざ自分が50代に突入してみると、あれって、ちょっとお金や権力を手にしたおじさん達が、まだ自分が若くとがっているんだぞ、まだオワコンじゃないぞ、ということを誇示するための手段なんだなあという気がする。食が細った老人が若者に沢山ご飯を奢って、その食べっぷりを眺めるみたいな。
おじさんにフックアップされたとがった若者の多くは強力なバックアップのもと若くして成功する。しかし、歳をとるにつれて20代のキャラクターのままでは苦しくなってくる。バックアップしたくれたおじさん達はリタイアして退場していく。人によってはそれでも無理して徐々にしんどい感じになる人もいれば、年齢とともにゆるやかにキャラクターを変えて適応していく人もいる。
逆に若い頃はおじさんウケの悪い理屈っぽく地味な若者が、20〜30代に力を蓄えて中年以降になって突然輝き出すこともある。そういう人は強いなあと最近感じる。
まあ、人生いろいろ。
前回はopenFrameworksで、位置と速度という2つの変数 (Veriable) を使用して図形1つをアニメーションさせるところまで到達できました。今回はこのプログラムを応用して複数の図形を同時に動かす方法について解説していきます。複数の図形を動かすには位置と速度という2つのベクトルを個別の変数にではなくまとめて取り扱うデータの格納方法が必要となります。こうした場合には配列(Array)を使用すると便利です。それぞれのベクトルを配列にまとめることで、大量の図形のアニメーションをシンプルに記述することが可能です。さらに、あらかじめ物体の最大数が決まっていない際には、可変長配列 (std::vector) を使用するという方法もあります。この方法もあわせて解説していきます。
スライド資料
次回までの課題
本日のサンプルのプログラムをもとに、2次元のアニメーションを3次元に拡張してください!
- ヒント:
- 位置と速度のベクトルをglm::vec2 を glm::vec3 へ
- 座標は、(x, y) から (x, y, z) へと拡張される
- バウンドさせる制限に、z座標の制限もつける
- ベクトルの計算はそのままでOK
- 締切 :
- 次回のこの授業の開始まで。次回に答合わせしていきます!!
アンケート
本日の授業を受講した方は、以下のアンケートに答えてください。