Processing中毒者の嘔吐物

ProcessingやらopenFrameworksやら色んなプログラミングについて吐きます

Processing歴1年になったのでこの1年間を振り返ってみた

2年前

P5歴は1年だけれども、P5に出会ったのは2年前のこと。大学一回生の春学期のコンピュータ演習という授業で担当の教授に教えてもらった。コンピュータ演習の授業は3クラスほどに分かれていて、担当の教授によって授業の内容が結構バラバラだったりする。Processingを教えていたのは僕の担当の教授だけだったようで、今思えば運が良かった。授業で何をやったかというと、基礎の部分をザッと説明されただけで、「2週間後までに何か動くスケッチを作ってこい。発表してもらう」だった。僕はプログラミングに興味があったので情報科学科に入ったけど、入った時点ではC言語の超基礎的内容くらいしか勉強したことは無かった。んで、2週間では大したものが作れなくて、教授からも「うん、標準的」と言われる始末。他の生徒の中にはゲームやらを作ってる人もいて「すげぇぇ」とか思ってた。

1年前

 コンピュータ演習でProcessingを触った後、2回生になるまで全く使わなかった。また使い始めるきっかけとなったのが、2回生の春学期に受けたJavaの授業。授業の前半は、1回生秋学期で習ったC言語をJavaでやり直すだけだったので何ともなかった。が、中盤になってオブジェクト指向の内容が出始めると途端に難しくなった。そのとき教科書として買わされていた入門書もちょっと問題があった。使っていたのがコレ↓

Javaプログラミング徹底入門 基礎編

Javaプログラミング徹底入門 基礎編

 

 確かに入門書なんだけれど、本当の入門者にとっては説明が" 的確すぎ "た。というのも、この本は説明に例えがあまり無い。例えばあるクラスからインスタンスを生成するという作業では、他の入門書にあるような例えによる説明が無く、そのまま、「参照型変数にインスタンスを・・・」という風に説明をする。かなーり注意深く読めば入門者でも理解できるが、僕は他の入門書に一時的に浮気することにした。んで読んだのがコレ↓

明解Java 入門編

明解Java 入門編

 

 とりあえずこの本をじっくり読んでみた。クラスの説明のところを3,4回読み返していたら理解できるようになった。ある程度理解したところで「徹底入門」のほうを読み返すと驚くほど説明が明快に思えた。一度例え話で理解していると、例えのない「徹底入門」のほうが説明が的確で良かった。「徹底入門」は決して悪書ではなくむしろかなり良書の部類に入ると思う。Javaのクラスとかのことを無事理解できたので、ちょっとゲームを作りたくなってきた。んでJavaでゲーム作りますが何か? - 人工知能に関する断創録を参考にしながらボール避けゲームとかを作って遊んでいた。そうやって遊んでいると、Processingのことを思い出して「ゲームとかならProcessingのほうが簡単なんじゃね?」という発想に至った。んで家のPCにProcessingの開発環境を入れてみると、IDEの右上にJavaという文字が見えた。かくしてProcessingはJavaだったことに気付き、テンションの上がった僕は急いで「Processingを始めよう」を読んでボール避けゲームをProcessingで作った。

Processingをはじめよう (Make: PROJECTS)

Processingをはじめよう (Make: PROJECTS)

  • 作者: Casey Reas,Ben Fry,船田巧
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2011/10/22
  • メディア: 単行本(ソフトカバー)
  • 購入: 4人 クリック: 139回
  • この商品を含むブログ (12件) を見る
 

 10ヶ月前

Processingのスキルを磨こうと思い次に読んだのがこの本↓

[普及版]ジェネラティブ・アート―Processingによる実践ガイド

[普及版]ジェネラティブ・アート―Processingによる実践ガイド

  • 作者: マット・ピアソン,Matt Pearson,久保田晃弘,沖啓介
  • 出版社/メーカー: ビー・エヌ・エヌ新社
  • 発売日: 2014/11/21
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (1件) を見る
 

 これが大正解だった。この本はアートに関する哲学書+Processingの技術書、というような感じ。上手く言葉に出来ないけどとにかく読んでいて楽しい。楽しくてしょうがない。結構難しかったりするけど必死に頭使ってコードを読み解いた。この作業もまた楽しくてしょうがなかった。んでこの本に載ってたソースコードをガチャガチャ弄り回していてできたのが、僕のProcessing作品の第一弾となったコレ↓

このスケッチはたった50行のソースコードで出来ている。50行なのにもうなんか完成された美しさがある。Processingを始めたのはゲームを作りたかったからだけど、この頃からアート方面に傾いていった。一日中Processingで何作ろうか考えていた気がする。色んなWebサイトでProcessingの作品を漁り、かっこいいと思ったものを自分なりにアレンジして遊んでいた↓

9ヶ月前

色々作っていると、作品を公開したくなってきた。ちょうど夏休みに入ったので思い切ってWebを作ろうと思った。わけのわからんこだわりがあって「ブログサービスは使わんぞ」と思いHTMLとCSSを勉強し、3週間ほど集中的に勉強した後にさくらレンタルサーバーで「Processingではじめるアートな日々」というWebを公開した(今はもうないです)。ページへのURLがそのままフォルダ階層になっていたので更新作業がくっそ大変だったが、しばらくここで作品を紹介していた。変形ラミエルを作ったのはこの時期で、作ったのは8月7日の午前8~12時とはっきり覚えている。友人とSkypeで話し込んで徹夜してしまっていて、午前7時の段階で丸々一日起きている状態だった。眠気が限界でもう寝ようと思っていたのだけど、寝る前にちょっと試しにやりたいことがあったので試してみたら思った以上に上手くいったのでテンションが爆発→眠気ぶっとびで一気に作った。

8ヶ月前

Processingに限らず何かを作っていると、インプットしたい時期とアウトプットしたい時期があると思う。色々作ってアウトプットしたい時期が終わったのでまたインプット作業に戻ろうと思い、アマゾンで本を探していた。すると9月25日に「Nature Of Code」という本の日本語版が出版されることがわかった(この時点では8月末)。調べてみると英語版の本はWebで全部読めるということだったので読んでみた。

The Nature of Code

高校では英語しか勉強していなかったので英語には自信があって(センター本番では筆記189点でした)単語を調べながらではあったけど普通に読めた。5章辺りまで読んだ時点で日本語版が発売されたので一応買っておいた。

Nature of Code -Processingではじめる自然現象のシミュレーション-

Nature of Code -Processingではじめる自然現象のシミュレーション-

  • 作者: ダニエル・シフマン,Daniel Shiffman,尼岡利崇,鈴木由美,株式会社Bスプラウト
  • 出版社/メーカー: ボーンデジタル
  • 発売日: 2014/09/16
  • メディア: 大型本
  • この商品を含むブログを見る
 

 これがまたいい本だった。副題に「自然現象のシミュレーション」とあるように、内容は大きく分けて「物理シミュレーション」「複雑系」「人工知能」といった感じだけど、この本から得られる知識はありとあらゆる分野で活躍する。今現在でもたまに読み返したりしている。この本に載ってる群れのアルゴリズムを使って作ったのがコレ↓魚の見た目はflOwっていうゲームに出てくる魚をまねた。

それから夏休みも終わって学校が始まったので、特に紹介できるようなことはしなかったけど、ちまちま色んな知識は溜め込んでいた。

2ヶ月前

一気に2ヶ月前まで飛ぶ。春休みに入ってまずはレンタルサーバーをhetemlに変更した。Wordpressを使ってみたくて、hetemlでは簡単にWordpressを使えるという理由から。移設作業が終わった後に何か一つ規模の大きなもの、ソースコードでいうと1000行を超えるようなものを作ってみたくなって作ったのがコレ↓

アニメ「サイコパス」の第2期が終わっていたと思う。サイコパスがみんなの記憶から薄れないうちになんか面白いの作ろうと思って作った。アイデアとしては良かったと思うけど実用性はゼロで作ってから一回も使ってない。

最近

春休みが終わってからすぐに次のアイデアが出てきて作ったのがコレ↓

我ながら最高に美しい作品だと思う。詳しい説明はWordpressのほうで記事を読んでもらうとして、軽く解説する。

縦横等間隔にノード(点)を配置して、そのノードを格子状にバネで繋ぐ。マウスと一定距離内にある点はマウスから反発力を受ける。四つのノードで囲まれた四角形領域は左上のノードの速度に応じて色を塗る。ノードの速さが大きいほど明るくなる。説明するとコレだけなんだけど、6つのパラメータ(左のスライドバー)の組み合わせによって色々な挙動が楽しめる。バネの振動が色の明るさに影響しているので、波紋のシミュレーションにもなっている。

終わりに

ここまで記事を読んで下さった方、ありがとうございます。一度こういうの書いてみたかったんです。これからもProcessingとか色々やっていくので応援よろしくお願いします。