ジェネラティブアートを始めよう
どうも、なめらかサンショウウオです。この投稿が初投稿なのでちょっと自己紹介すると、趣味でジェネラティブアートやWebを作っているサンショウウオです。ジェネラティブアートを広めるために、ジェネラティブアートとはなんぞやというところから、勉強方法などを紹介していきます。この投稿内で具体的なプログラムを見せて解説することはしません。
ジェネラティブアートとは?
この条件に当てはまるものをジェネラティブアートと呼ぶ、というような正確な定義があるわけではなさそうですが、「アルゴリズムや数学的手法/自律システムなどを用いて作られた複雑で予測不可能性のあるアート」だと個人的に捉えています(ていうかこの文をこの記事を書いているときに初めて考えました)。自分の手を使って描く絵とは違い、絵を描くのではなく「絵を描くシステムを作る」という感覚があります。
作例
僕の作品から3点掲載します。
どのあたりにジェネラティブ要素があるか軽く説明すると、2枚目は複数の線の3次元座標(x, y, z)をパーリンノイズと呼ばれる乱数生成手法で制御してその動きの軌跡を表示した作品で、3枚目は上から落ちてくるパーティクルが画面上に散らばった力場から引力と斥力を受けている様子を表示した作品で、1枚目はまじで説明がむずいので割愛。
Pinterestで「generative art」を検索すると「あぁこんなのね」ってなると思います。
上の3枚はProcessingというプログラミング言語(正確にはJavaベースのプログラム実行環境)で制作したものです。
ジェネラティブアートはプログラムで作られたものに限りませんが、数学的手法や物理シミュレーションなどを制作手法に取り込む場合必然的にコンピュータの計算能力に頼ることになります。
勉強方法
ジェネラティブアートをプログラミングで制作するのであればProcessingを勉強することをおすすめします。Processingがそもそもプログラミング入門に適しているということもありますが、後述するジェネラティブアート制作に関する書籍が全部Processingを採用しているというのが一番の理由です。
書籍であればProcessingをはじめようがおすすめです。
ジェネラティブアートの入門書としては唯一にして最高のジェネラティブ・アート—Processingによる実践ガイドを読みましょう。これを読まないと何も始まらないと言っても過言じゃありません。パーリンノイズを用いた制作手法にはじまり、創発、自律システム、フラクタルなどを紹介しながらかなり実践的な作例が紹介されています。後半はかなり難しいので一回読んでみてもちんぷんかんぷんなのが当たり前かなと思います。僕も理解するのに随分時間かかりました。本の序盤にProcessing入門的な内容も書いてあるのでこの本から読み始めてもいいと思います。この本と他の入門資料と合わせて読み進めるとモチベーションを維持しながら勉強できるかなーと思います。
もう一つ必ず読んでほしいのがGenerative Design-Processingで切り拓く、デザインの新たな地平です。Processingを用いたジェネラティブアートの膨大なサンプルプログラム集といった感じです。もちろん解説もあります。この本にもかなり飛ばしてますが最初にProcessing入門の解説があるので、併用して別の入門資料は必須ですがこの本から読むのもありです。本の見開きを紹介する動画があるのでこれ見てワクワクしてください。
Processingも大体わかって、この2冊も一通り読んだのであればあとはもう自分の作りたいままに作るだけです。
モチベーションの維持の仕方でおすすめなのが、Generative Designの序文でTHE GUILDの深津さんもおっしゃっていた内容ですが、一つあるテーマを勉強したらそのテーマを使って何か作れないか試してみることです。for文を勉強したらfor文をいっぱい使って何か作る。そのあとif文を勉強したらforとifで何か作るなどなど。本のサンプルプログラムをいじくり回すのも面白いです。
頭の中に最終的にこういうものを作れるようになりたいというビジュアルがあるのはとてもいいことですが、大抵の場合それを作れるようになるのは遠い未来になります。ビジュアルをプログラミングで表現することははっきり言って困難です。ただかっこいい絵を作りたいだけならAdobeソフトを勉強するのがいいです。なので、今ある技術で制作を楽しみながら少しずつ理想に近づくのが精神衛生上いいと思います。あと何か作ったらTwitterとかで #processing とか #generativeart とかつけて投稿すると界隈の人たちが反応してくれるでしょう。