<< 第1回:ガイダンス | top | 第3回:Processing入門(2):アニメーションを作る >>
第2回:Processing入門
今日の講義では、MITのBenFryとCaseyReasによってつくられた電子メディアを素材とし、視覚デザインを行うためのプログラミング言語と開発環境である、Processingを学びます。
Processingとは何か
Processing is an open source programming language and environment for people who want to program images, animation, and sound. It is used by students, artists, designers, architects, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is developed by artists and designers as an alternative to commercial software tools in the same domain.
意訳:Processingは、イメージやアニメーションそしてサウンドのプログラミングをしたいと思っている人々のためのオープンソースのプログラミンング言語であり開発環境です。アーティスト、デザイナー、建築家、研究者、そして趣味として使う人が、プロトタイピングや制作のために使うものです。ビジュアルな文脈でコンピュータプログラミングの基礎を教えるため、そしてソフトウェアのスケッチブックとして、またはプロフェッショナルのための制作ツールとして作られています。Processingは、アーティスト達やデザイナー達によって、おなじ分野の商業ソフトウェアへの代替手段として開発されています。
Processingの特徴
- JavaやC++でプログラミングするよりも遥かに容易に、スケッチするようにインタラクティブなビジュアル・プログラミングを構築できる
- スレッド、ダブルバッファリングなど、初級者にとってハードルとなる技術的な詳細を外し、アイデアの実現に専念できる
- 独自のシンタックスで書かれたプログラムをJavaコードに解析する。コードは実行可能なJavaアプッレットとして書き出すことが可能
- PostScript、OpenGLの機能セットを利用した、カスタム2D/3Dレンダリングエンジンを使用
- 既存のJavaライブラリを統合することで容易に拡張が可能
- 無料で利用できる
- Windows、MacOSX、Linuxで実行可能
Processingをインストールする
processing.jpのサイトを参考にして、WindowsにProcessingをインストールしてみましょう。
WindowsにProcessingをインストール(Processing.jp)
プロセッシングを使ってみる
インターフェイスの使いかた
Processing環境は、プログラムを表示させる統合されたテキストエディターと、ディスプレーウィンドウから構成されている。実行 "run"ボタンが押されると、プログラムはコンパイルされ、グラフィックウィンドウが立ち上がる。メインの環境ウインドウから、実行、停止、セーブ、開く、そしてファイルのエキスポートが可能である。
- 実行(play)ボタン:DirectorやFlashと同様にプログラムを実行する際に使用。
- 停止(stop)ボタン:はDirectorやFlashと同様にプログラムを停止する際に使用。
- 新規作成(new)ボタン:新しいファイルのことをProcessingではスケッチと呼ぶ。 (他にもアプレット、プログラム、インタラクティブ素材と呼ばれることもある) 一方DirectorやFlashではこれをムービー(movies)と呼ぶ。
- 読込み(Opens)ボタン:スケッチを読込む際ポップメニューが横に表示されるため、そこから保存された作品を選択 する。また、あらかじめ登録されている例を読込み表示させ、プログラム や動作を勉強することも可能である。
- 保存(Saves)ボタン:インターフェイス上に表示しているスケッチに名前をつけて保存する際に使用。 (別名で保存したい場合はファイルメニューより''save As''を選択)
- 出力(Exports)ボタン:表示されているスケッチをJAVAアプレットとして出力する。 またその際にJAVAアプレットを表示するために必要な最低限のHTMLタグを書き出す。
File > Open > Example メニューからサンプルのプログラムを選び、実行してみる。
Processingプログラミング入門(1):プログラミングの文法
サンプル1:コメント
以下のサンプルはコメントアウトの方法を示しています。
// コメント // 二重のスラッシュは、コメントを意味します // それ以降の1行が、すべてコメントと見なされます // スラッシュの間にはスペースを入れてはいけません // もし複数行に渡るコメントを書きたい場合には // 次のような書式のほうがよいでしょう /* スラッシュとアスタリスクで始まり アスタリスクとスラッシュで終るのが 複数行にわたるコメントです */ // コメントアウトされていないテキストは全て、コンパイルされます。 // 例えば、以下の行は、コメントアウトされていないので、 // プログラムが実行されます。 size(200, 200);
サンプル2:関数
関数を使用することで、画面上に色や演算する数字を指定した、基本図形を書き出すことができます。関数の括弧()の間にある、数字やそのほかのデータは、関数に影響するパラメータです。沢山のパラメータを持つ関数もあれば、パラメータをもたない関数もあります。
// 関数 // size関数は2つのパラメータを持ちます //1つ目は生成するウィンドウの幅、2つ目は幅です size(200, 200); // background関数は1つのパラメータを持ちます //0(黒)から255(白)までの範囲で、グレースケールの明度を指定します background(102);
サンプル3:命令文
プログラミングを作文に例えるなら、命令文(Statements)は、文に相当するものです。命令文は単純な命令を表現したもので、文章における句読点と同様に、命令の終端記号としてセミコロン(;)で終了します。文章において色々な文が存在するように、命令文もさまざまな種類があります。変数の宣言や、変数への値の割り当て、関数の実行、オブジェクトの生成など多岐にわたります。プログラムに際しては、全ての命令文がセミコロン(;)で終るよう気をつけること。
Processingのプログラムは、大文字と小文字を区別します。例えば、size関数を"Size"と記述したばあい、プログラムはエラーを返します。
また、Processingのプログラミング言語は、半角スペースはなにも無いものとして無視します。ただし全角スペースは、エラーの原因となるので注意しましょう。
// 命令文 // Size関数を実行 size(200, 200); // 新たに、変数"x"を定義 int x; // 変数"x"に、値"102"を代入 x = 102; // background関数を実行 background(x);
サンプル4:テキストエリア
ディスプレイに図形を表示するだけでなく、テキストエリアにテキストを記述することが可能です。これは、プログラミングする際に、データをモニタリングしてバグを発見する際に重要となる機能です。またプログラムにエラーがあるときには、このテキストエリアにエラーが表示されます。
// テキストエリア size(200, 200); background(51); // print関数は改行せずにテキストを書きだす print("One"); print("Two"); // println関数は末尾で改行する println("Three"); println("Four"); println("Five");
Processingプログラミング入門(2):静的な2D図形を描画してみる
サンプル1:(x,y)座標上に点を配置
//キャンバスの大きさ設定 size(200,100); //背景色設定(R,G,B) background(0,0,0); //描画色設定(R,G,B) stroke(255,0,0); //先程指定した描画色で、座標に点を描く point(50,100); //2つ目の点 stroke(0,255,0); point(100,100); //3つ目の点 stroke(0,0,255); point(150,100);
サンプル2:直線を引く
//キャンバスの大きさ設定 size(200,200); //背景色設定(R,G,B) background(0,0,0); //一つ目の線の色(R,G,B) stroke(255,255,255); //一つ目の線の座標 //line(x1, y1, x2, y2); //始点:(x1, y1)、 終点:(x2, y2) line(0,0,60,60); //二つ目の線 stroke(255,255,0); line(40,50,190,200);
サンプル3:プリミティブな図形の生成
size(200,200); background(128); //描画する図形の塗り潰す色を設定 fill(#CC6600); //描画する図形の線の色を設定 stroke(#FFFFFF); //長方形の描画 // rect(x, y, width, height); rect(40,40,140,140); //楕円の描画 // ellipse(x, y, width, height); ellipse(80,80,80,120); //三角形の描画 // triangle(x1, y1, x2, y2, x3, y3); triangle(12,180, 120,15, 160,60);
サンプル3:プリミティブな図形の生成(2)
size(200,200); background(128); //塗り潰しなし noFill(); //描画する図形の線の色を設定 stroke(#FFFFFF); //長方形の描画 // rect(x, y, width, height); rect(40,40,140,140); //楕円の描画 // ellipse(x, y, width, height); ellipse(80,80,80,120); //三角形の描画 // triangle(x1, y1, x2, y2, x3, y3); triangle(12,180, 120,15, 160,60);
Processingプログラミング入門(3):ランダムと繰り返し
ランダムにたくさん線を引く
int i, w, h; w = 400; h = 400; size(w,h); background(64); //0〜2000まで、2000回命令をくりかえす for(i=0; i<2000; i++){ //ランダムに色を生成 stroke(random(255),random(255),random(255)); //画面内でランダムな始点と終点を線で繋ぐ line(random(w),random(h),random(w),random(h)); }
ランダムにたくさん線を引く(2):アルファチャンネルを付加
int i, w, h; color cl; w = 400; h = 400; size(400,400); background(0); for(i=0; i<4000; i++){ cl = color(random(255),random(255),random(255),25); stroke(cl); line(random(w),random(h),random(w),random(h)); }
ランダムに円を配置
int i, w, h, r; color cl; w = 400; h = 400; size(w,h); background(0); noStroke(); for(i=0; i<400; i++){ cl = color(random(255),random(255),random(255),12); fill(cl); r = int(random(120)); ellipse(random(h), random(w), r, r); }
一定間隔に線を引く
int i, w, h, step, c; color cl; w = 400; h = 400; step = 4; size(w,h); background(0); for(i=0; i<w/step; i++){ cl = color(255/(w/step)*i, 64, 255-255/(w/step)*i, 50); stroke(cl); line(0,i*step,i*step,h); line(w,i*step,i*step,0); }
Comments
コメントはありません
Add Comment
トップページに戻る