前回は、Haskap Jam Packを使用して、Sonic Piの演奏をOSCを経由してProcessingでビジュアライズしました。今回はその逆のアプローチで、Processingで側でOSCを生成し、その情報をSonic Piで演奏します。この方法の場合は、Haskap Jam Packのポートフォワーディングは使用する必要はありません (ただしlocalhostの場合のみ)。 より簡単なプログラムでProcessingとSonic Piを連動したオーディオ・ビジュアルが可能となります。
スライド資料
サンプルコード
気付いてみれば、あっという間に次週(12月6日)は、「八王子演劇フェイスティバル」の作品の搬入日です! 今回は、イベントに向けて全体で決めるべきことを話しあいます。もし時間が余った場合はグループごとの制作時間とします。
議題
- 各グループの現状のプラン発表 (パフォーマンス、 展示) ※ 久世先生の授業でやったかもしれませんが…
- グループ内での役割分担
- 必要機材のリストアップ (スピーカー、ミキサー、ケーブル、プロジェクター、wifi、etc..)
- 作品で必要なセンサー、プログラム、楽器など
- 全体の責任者の決定(広報、進行、機材)
- ゾーニング
- 展示開始からパフォーマンス当日までのスケジュールの確認
全体で決めるべきことは、今日解決しましょう!!
Processingは、その設計思想として、構造をあまり複雑にせず創造的な部分に集中できるよう焦点を絞っています。グラフィクスとモーションを作り、マウスやキーボードといった汎用的な入力デバイスに反応する機能が基本です。しかし、それ以上のことを行うために、Processingではライブラリー (Libraries) というものが用意されています。ライブラリーとは汎用性の高い複数のプログラムを、再利用可能な形でひとまとまりにしたものです。Processingでも用途に応じて様々なライブラリがまとめられ、入手できるようになっています。
Processingのライブラリーには大きく分けて2種類あります。Core LibrariesとContributed Librariesです。Core Librariesは、Processingの開発元からオフィシャルに提供されているライブラリーで、Processingのソフトウェアに付属してきます。Contributed Librariesは、Processingのユーザー達によって公開されている非公式のライブラリーで、別途ダウンロードが必要です。
今回は、ライブラリーの導入として、カスタマイズしたGUIをプログラムに追加するための「Control P5」というライブラリーを取り上げます。ControlP5を活用することで、GUIを様々なパラメータに適用するすることが可能となり、プログラムの調整をインタラクティブに行うことが可能となります。
スライド資料
サンプルコード
「メディア芸術基礎 II」も終盤に差しかかってきました。この講義の最終課題は「オンラインポートフォリオ」の提出です。制作したオンランポートフォリオは次回の講義の時間で講評会を行います。
- Cクラス : 12月19日
- Dクラス : 12月12日
遅刻厳禁!! 講評の順番が回ってきたときに出席していない場合は未発表とします。
今回はオンラインポートフォリオ制作にむけての実習の時間とします。どんどん制作を進めてください。
オンラインポートフォリオの評価項目
オンラインポートフォリオは以下の基準で評価していきます。制作の際の参考にしてください。
内容
- 情報デザイン学科のWebサーバーに正しくアップロードされているか(外部のWebサービスを利用した際には多摩美のWebサーバーからリンクを張ること)
- 入学してから制作した作品(授業の課題など)が全て掲載されているか(自主制作している作品が掲載されていればなお良い)
- 制作した作品の情報が記載されているか(作品タイトル、解説、制作年)
- 必要に応じて、画像、動画、音声など様々なメディアを使用しているか
- 自分自身についての情報が記載されているか
- 他人の著作物を無断で使用していないか
デザイン
- サイト全体を通して一環したデザインが適用されているか
- ナビゲーションは分かりやすいか
- 作品の魅力を生かすサイトデザインになっているか
- Webブラウザは、現行の最新版の主要なWebブラウザ(Chrome、Safari、Firefox、Edgeなど)できちんと表示されていればOK
拡張性
- 今後、作品が増えていった時にサイトのコンテンツを増やしていけるように、拡張性が考慮されているか
この講義では、ここまで主に2次元平面上での描画による表現を扱ってきました。今回は2次元での表現からさらに(文字通り)次元を越えて、3次元空間での表現について考えていきたいと思います。
openFrameworksで3Dグラフィクスを扱う手法はこれまでとさほど変化はありません。なぜなら、openFrameworksの描画の基本はOpenGLで行っています。OpenGLはそもそも3次元のグラフィクスの描画のために開発されたライブラリであり、最初から3次元空間をとり扱うための様々な機能が備わっています。
しかし、3Dの物体を扱うには、これまでとは違った様々な要素が加わります。カメラ(視点)、ライティング、光と影(シェーディング)、奥行の重なりなどといった2次元の平面には無かった様々な技術や概念の理解が必要となります。
スライド資料
サンプルファイル
プログラムのサンプルは、以下からダウンロードしてください。
講義の前半は、前回出題した課題「Processingに読み込んだ画像ファイルの情報から新たなイメージを生成する」の簡単な講評会を行います。課題の提出方法は、講義の中で説明します。
後半は、3Dプログラミングの導入を行います。これまでProcessingで表現してきた内容は、基本的に平面の上に描かれる2次元の図形やアニメーションでした。今回はここに奥行を加えて3次元空間での表現をProcessingでプログラミングする手法について解説していきます。コンピュータのディスプレイは、2D(縦横に並んだピクセル)です。ここの2Dのスクリーンの中で3Dの図形を表現するには、奥行や前後の重なりは擬似的に表現するしかありません。スクリーン画面に、立体や空間などの3次元の存在を投影して描画するイメージです。2次元平面に3次元の存在を投影するには、様々な数学的な知識が必要となります。Processingではこうした演算を自動的に行うことが可能です。3次元の座標系をそのまま使用してプログラムすると、Processing側でその値をもとに3Dの座標を2次元のスクリーン上に変換し、さらに奥行きや前後の重なりを自動的に計算してくれます。
スライド資料
サンプルファイル
今回も引き続き、OSCを使用したアプリケーション間の連携について取り上げていきます。前回は、Processing同士でOSC通信をする方法について取り上げました。今回はさらに発展させて、異なるアプリケーション間での通信を行います。
SIAFラボによって開発された、Haskap Jam Packを使用すると、Sonic Piで演奏した情報を他のアプリケーションへ送信することが可能となります(ログフォワーディング)。この機能を活用して、Sonic Piの演奏情報をOSCを介してProcessingに送信して視覚化を行います。
今後は、この仕組みを応用して、周囲の環境(Ambient)を利用した環境データに呼応するライブ・コーディング、自律した=勝手に自分で演奏するライブコーディングロボットのようなものを実現できないか、その可能性について考えていきます。
スライド資料
サンプルプログラム
Addon(アドオン)とは、openFrameworksに機能を拡張するためのライブラリーやフレームワークです。processingのLibrariesのように、openFrameworks単体ではできなかった様々な機能を実現することが可能となります。Addonは、oF本体の開発者以外でも独自に開発して追加することが可能であり、繰り返し用いる機能や、CやC++で記述された既存のライブラリーをopenFrameworksに統合することが可能となります。
今回はAddonの導入を、まずofxGuiというプロジェクトにGUIを追加するアドオンで行います。ofxGuiを使用することで、例えば周囲の環境が異なる場所でインスタレーションを設置する時など、すぐにパラメータを最適な状態に調整して保存することができ、とても便利です。
スライド資料
サンプルコード
今回は、まずこの講義「アンビエント・インターフェイス」とは何なのか、その概要とスケジュールについて説明します。後半は、火曜日のワークショップで活用していくOSC (Open Sound Control) について解説し、Processingを用いてOSCの考え方の基礎と、送受信の基本について解説していきます。
スライド資料
サンプルコード
企業のホームページや、ニュースなどの情報サイトでは、常に大量のWebページを扱い頻繁に更新しています。このような大規模なWebサイトでは、手作業で1ページずつHTMLとCSSを記述していては膨大な作業量になってしまいます。
現在では多くのWebサイトで「コンテンツマネジメントシステム(Contents Management System = CMS)」と呼ばれる、Webサイトを構成するテキストや画像などのデジタルコンテンツを統合・体系的に管理し、配信など必要な処理を行うシステムを使用しています。CMSを利用することで、簡単にページを追加、更新、管理することが可能となり、またサイト全体のデザインの統一やアクセス解析など、様々な機能を使用することが可能となります。
CMSには無料のもの、有料のもの、サーバー側で使用する言語などに応じて様々なシステムがあります。現在CMSのマーケットシェアは、圧倒的にWordPressというシステムで占められています。2016年10月の時点で、全てのCMSのうちWordPressの割合は70%という調査結果もあります。
しかし、WordPressを利用するためには、Webサーバーで自由にプログラムを動かせる環境が必要となるため、完全に無料で使用することは困難です。そのため、今回はTumblrというサービスを利用してCMSを体験します。TumblrはブログとSNSを足したようなサービスですが、工夫をすることでCMSとして利用することが可能です。このTumblrのCMS的な利用について取り上げていきます。
スライド資料