今回は「くりかえし」に焦点をあてて、プログラミングによる表現を試みます。くりかえし(反復)は、コンピューターが得意とする作業です。プログラミングに繰り返す回数を指定してその内容を指示することで、コンピューターは瞬時に大量の繰り返し作業を完了します。人間のように、途中で飽きたり作業にぶれが出たりすることはありません。くりかえし(反復)の操作を使用することで、手作業では困難であったり長時間を要するような表現が可能となります。
まず始めにくりかえしの操作の際に必要となる、プログラム内で任意のデータ(数、文字、色など)を格納するための仕組みである「変数」について解説します。その上で「for文」というくりかえしのための構文を用いてくりかえしの基本を学び、それを使用して形を描いていきます。
さらに「乱数 (random)」という規則性のない数を生成するための方法を取り入れて、指定した数、特定の範囲にランダムに形や位置や色を指定していくことで、どのような表現が可能となるのか、実際のプログラム例を通して探求します。
スライド資料
前回のワークショップで、openFrameworksの環境設定が完了し、サンプルプログラムを動作させることができるようになりました。今回はいよいよ新規のプロジェクトを生成して、自分自身のプログラムを作成していきます。
まず始めにProjectGeneratorを使用した新規プロジェクトの生成のやり方と、実際にどのようなファイルが生成されるのかについて解説します。
新規プロジェクトの生成ができるようになったら、今回はアニメーションの基礎について実際にプログラムを作成しながら学んでいきます。
スライド資料
バージョン管理システムを使おう
このワークショップでは、GithubというWebサービスを利用して、プログラムや作品のシェアをしていきます。
Githubの中核は、Gitというバージョン管理システムです (GithubはGitをWebにホスティングしたサービス)。これからGithubを使っていくには、まずGitについて理解していくことが重要です。
Githubアカウントの登録
ワークショップでのGithubの利用は来週以降から始めますが、今週はまずGithubのアカウントの登録までを済ませておきましょう!
サンプルプログラム
今回のサンプルプログラムは、WSのGithubリポジトリのweek02を参照してください。
今回は、「かたちとコード」の関連について考えていきます。
まず始めに、1950年代〜70年代の、コンピューター黎明期から発展期におけるコード(プログラム)による様々な視覚表現について紹介します。過去の作家がどのようなアイデアで、何を表現しようとしてきたのか、その歴史を辿ります。
後半は、いよいよProcessingでの実践に入ります。今回は、まずProcessingの操作基本を復習し、簡単な図形を描きます。
スライド資料
実際に手(と頭)を動かしながら、実際にメディアアート作品の制作にむけたプログラミングを始めていきます。今回は、コンピューターのスクリーン上に図形を描くにはどうすれば良いのかについて考えていきます。
コンピューターで形を描くことは、手で図形で描くこととは大きく異なります。図形そのものを直接描くのではなく、図形を描くという行為を抽象化してそれをコンピュータに理解できる方法に翻訳して伝達する必要があります。コンピュータによって図形を描く方法は、過去多くの技術者やアーティスト、デザイナー達が試行錯誤を繰り返しながら発展してきました。まず始めに、コンピューターを用いて形を描いて表現する様々な試みについて紹介します。
後半は、このワークショップで主に使用するProcessingを用いて、その操作方法の基本を解説した上で、簡単な形を描く方法と色を塗る方法について基本から習得していきます。
スライド資料
今回は、「クリエイティブ・ビジュアライゼーションWS」の初回となりますので、まず始めにワークショップ全体のテーマと進め方についてのオリエンテーションを行います。
後半は、この火曜日のワークショップでメインの開発環境として使用していく予定の openFrameworks について、導入としての解説をして、プログラミングの最初の一歩を踏み出します!
スライド資料
今回は、初めての授業となりますので、まずはこの授業の概要、授業の進め方、スケジュール、採点と成績についてガイダンスを行います。
授業の概要を理解した上で、前半はこの授業の主題となる「メディア芸術」とは何かということを簡単に整理します。そして後半は、この授業で当面の間使用する予定の開発環境であるProcessingの導入を行います。
授業スライド
※ 以下の文章は、『Processing クリエイティブ・コーディング入門 – コードが生み出す創造表現』の序文のために書かれたものです。書籍に掲載されたものはページ数の関係で若干短くなっているので、オリジナルのバージョンをこちらに投稿します。
この本で使用していくプログラミング開発環境Processingの開発者の1人であるケーシ・リース(Casey Reas)は、講演の中で、これからのプログラマーは「ハイブリッド」であるべきだと主張しています。[1]
彼は、ハイブリッドまで至るプログラマーの歴史を、4つの段階にまとめました。
- リアル・プログラマー
- ハッカー
- アマチュア
- ハイブリッド
「リアル・プログラマー」は、1940年代から50年代にコンピュータが発明された当初の「真の」プログラマー達です。その多くはコンピュータを専門に扱う科学者達で、国家的プロジェクトによって建造された世界に僅かしかない巨大なマシンをプログラミングできる一握りのエリート達でした。
その後に続くのが「ハッカー」の時代です。1960年代から70年代にかけて、国家や軍などではなく大学の研究室などでもコンピュータが利用できるようになった時代に生まれました。コンピュータをハック(様々な技術を組み合わせて創意工夫)することで、コンピュータゲームなどそれまでに無い様々なカルチャーを生みだしていきました。
1980年代になると、一般家庭にもコンピュータが普及し始めて、誰にでもプログラミングができるチャンスが生まれました。これが「アマチュア」の時代です。BASICなどの学習用のプログラミング言語を通して、趣味としてプログラミングを楽しむ時代になりました。
これらの時代に続く、現代のプログラマー像として提示しているのが「ハイブリッド」なプログラマーです。ここでハイブリッドが意味するものは、何か別の専門分野とプログラミングとの混合(ハイブリッド)です。現代でももちろん専業のプログラマーは数多く存在します。しかし、これからより重要となってくるのは、他の専門分野を持ちつつプログラミングによって実現する能力なのです。アーティスト、デザイナー、建築家、教師、作曲家、データサイエンティストといった様々な分野でプログラミング能力が必要とされています。
Processingは、こうしたハイブリッドなプログラマーのために開発されたプログラミングの環境です。プログラマーになるためにプログラミングを学ぶのではなく、プログラミングで何かを創造したい人達のための道具なのです。
コンピュータが高速化し、多くの便利なアプリケーションが開発され利用されるようになって、いつの間にかコンピュータを利用することとプログラミングすることが乖離してきました。専門のプログラマー達が開発したアプリケーションを業務で使用するというようになると、コンピュータがどんどんつまらなく味気ない存在になってしまっています。
最近になって、PCなど無くても、スマートフォンやタブレットで十分という意見もあります。スマートフォンさえあれば、チャットやSNSやゲームなどのコンテンツを消費することは誰にでもできます。また、人工知能が発達すればプログラミングは必要なくなるという予想をする人達もいます。
しかし、現段階ではスマートフォンやタブレットでプログラミングすることは困難です。また、AIによって全てが作られる未来が本当だとすると、人間は何も生みださずただコンテンツを消費し、巨大企業にデータを提供するだけの存在になってしまいます。
しかしコンピュータは消費ではなく、新たに何かを生みだすことができます。プログラミングで何かオリジナルなものを創造することこそ、コンピュータの根源的な力であり、最も刺激的な行為なのです。そうして何かを生みだす行為は、たとえAIが普及したとしても失われることなく続くことと信じています。
この本は、そうしたハイブリッドなプログラマーを目指す方々のために書きました。この本を足掛りにして、新たな創造の可能性が拡がることを願っています。
[1] Casey Reas, History of the Future, Art & Technology from 1965 – Yesterday | Casey Reas | The Gray Area Festival
初回となる今回は、まず、講義全体のオリエンテーションを行います。全体のスケジュール、目標、成績の評価基準、担当教員とその担当範囲など、講義に関する基本的な情報について説明します。次に、この講義の一環として行うメディアアートの企画展等と展示支援についての解説を行います。最後に、この講義で主に使用する開発環境であるProcessingについての導入的な解説をします。
最後に簡単なアンケートを行います。
【重要】履修選抜課題 (4/16締切)
履修希望者が多数のため、課題による履修選抜を行います。以下のフォームから回答してください。
スライド資料