RubyistからもらったクリエイティブコーディングにまつわるQ&A
RubyKaigi 2024 でクリエイティブコーディングのLTをやって、いろんなところで触れていただけたり、実際にやってみたよって投稿が思った以上にあって感無量な今日この頃です。chobishibaです。
ありがたいことに5/31のRubyKaigi 2024事後勉強会でクリエイティブコーディングに関する質問をいただいて、それに対してうまく答えられたもの、答えられなかったもの様々あったのと、同じようなことが気になる方が他にもいらっしゃるかもなと思いまとめてみることにしました。
1. つぶやいてたやつ、何かあるんですか?
説明が不足すぎる!! minacodingとは、ここ数年6月(水無月)に行われているクリエイティブコーディングのイベントで、用意された日毎のお題に沿って作品作って、ハッシュタグをつけて投稿するイベント。見ているだけでも楽しいです。#minacoding で検索結果遡ってみると去年の様子がわかるのでぜひ。
私は2回参加してました。
今年のテーマはこちらなので、何か描けそう、描いてみたいと思うお題があったらぜひチャレンジを(そしてぜひ投稿を)。
2. どのくらいの頻度で書いてるんですか?
だいぶムラがあります。1月に参加してたGenuaryのようにイベントがあるときは毎日ですが、そうでないときは週末とか、平日でも急に思い立って数日作り込むときも。気晴らしだったり、そわそわした気持ちを落ち着けるためにやったりもします。
3. やっぱり数学的な知識が必要ですか?
あると表現の幅が広がると思いますが、ないとできないわけではないです。やってるうちにちょっと仲良くなれるかもしれません。
4. 動かすにはどうすればいいですか?
setup関数は1回だけですが、draw関数はnoLoopを指定しなければ、ずっと繰り返されるのでそれを利用して動かします。
たとえばこれだとランダムな位置にどんどん円を描画しているので動いているように見えます。
今が何回目かの実行かは frameCount という変数が持ってるのでそれを利用して、ある一定のところまでいったら止めたり、リセットしたり、複数のオブジェクトを1 frameCountずつオブジェクトの位置を変えることで、動いているように見せられます。たとえばこんなふうに。
いろいろ描きましたが触ってみてもらった方が理解しやすいと思うでぜひ。
5. 円でもない曲線を書くにはどうすればいいですか?
curve() や bezier() といった関数を使うと円弧よりも自由な曲線が引けるのでためしてみてください。
6. 何か描きたいけど何を描いたらいいのかわからないです
何も浮かばない時は、とりあえず何か図形(たとえば円とか)を描いてみて、それに色をつけてみて、それから考える行き当たりばったりでいいと思います。
円だけでも具体的なものも描けるし
抽象的なものも描けます
まずは並べてみるだけでも
描いてみたら色にこだわりたくなったり、配置にこだわってみたり、丸じゃない違う形にしてみたくなったり、動かしてみたくなったり、心の向くまま改変加えていくと好きなものができあがると思います。
7. この前のワークショップはRubyでやったんですか?
WaffleFestival 2024でやったワークショップはp5.jsでやりました。プログラミングを初めてやる人がクリエイティブコーディングを通してプログラミングに触れるというものだったので、いきなりRubyとp5.jsを混ぜるのは躊躇われたのと、この先続けてみたいと思った時の情報へのアクセスのしやすさ(ブログや書籍)を考えるとシンプルにp5.js onlyでやるのがいいなと思ってそうしました。
これはこれでいい入門だなと思うのですが(実際楽しみながらプログラミングしてもらえた)、Creative Coderであると同時にRubyistでもあるので、Rubyで楽しくプログラミング入門する方法ないかなとも考えてしまいます。
8. どんなふうに作っているか見てみたいです
イベントか何かでライブコーディングとかしたいですね〜
とりあえずGitHubでlog見てもらうと紆余曲折で出来上がってることがわかるかもしれません。
まとめ
興味持っていただけてとても嬉しかったです。ちょうど6/1からminacodingも始まるので、#minacoding や #creativecoding タグを眺めて好きな作家さん見つけたり、できそうなお題のときにちょっと手を動かしたりみたり、楽しいCreative Codingライフを送っていただければと思います!
この記事が気に入ったらサポートをしてみませんか?