デザイン専攻の2年生の後期に開講されている「プログラミング論及び演習」という授業を昨年度に引き続き紹介します。この授業で使用するプログラミング言語は、2014年度から従来のC言語からJavaScriptに変更しまして2015年度は2年目となります。2015年度から私(藤村)と非常勤の山崎大助先生が授業を担当しております。

本年度は、JavaScriptの基礎を学んだ後、jQueryライブラリやp5.jsライブラリの活用方法などを学びました。p5.jsはJavaScriptでアニメーションや音楽を扱いやすくする新しいライブラリで、2015年度から導入しました。ちなみに、p5.jsについてはこちらにも記事があります。

授業の最後の3回では、授業で学んだ技術を駆使して自由にWebアプリを制作しました。以下に3つの作品を紹介します。HTML5対応のPC版ブラウザ(Chrome, Firefox, Microsoft Edge等)で閲覧した場合には、以下の画像をクリックすると、別ウインドウが開き、実際に操作することができます。

最初の作品は、マウスで画面上をクリックして隠されたヒントを読み、解読して部屋から脱出するゲームです。これを作成した学生によりますと脱出ゲームとしては難易度が低いそうですが、脱出ゲームに慣れていない人にとってはかなり難しいと思います。10分で解ければ天才かも?

脱出ゲーム
escape

次の作品はお絵かきツールです。PCに保存されている任意の画像を背景画像としてアップロードすることができ、お絵かき後、キャンバスを右クリックして画像をダウンロードすることができます。ちょっと手書きを加えたいときにとても便利ですね。

お絵かきボード
drawpict

最後の作品は以下の画像から想像できますようにキーボードです。PCのキーボードがキーボードとして:-)音楽を演奏することができますし、ドラムや音量や音程を変化させるイコライザーの機能もあります。詳しく説明しなくても使えると思いますので、是非、演奏してみて下さい。zキーを押すと音楽も流れます。

キーボード
music

この授業では、このようにjQueryやp5.jsのライブラリを使って、脱出ゲーム、お絵かき、キーボードといった幅広いWebアプリを自由に制作することができました。3年生、4年生では、この経験を生かして、本格的な作品制作にチャレンジして欲しいと思います。

LINEで送る
Share on Facebook

3年生前期の選択科目の「情報処理応用論及び演習」という授業を紹介します。この授業では、プログラミングの応用力を高めることを目指し、自分で企画したWebサイトをJavaScriptで制作しています。本年度は、この授業の前半でthree.jsと呼ぶ3Dグラフィックスを扱うライブラリを活用して「3Dポスター」を制作しました。「ポスター」と言えば普通は紙に印刷した2次元のものですが、今回はWeb上に3Dのポスターを制作することにチャレンジしました。

以下はこの「3Dポスター」の作品例です。他にも優れた作品が多数ありましたが、完成度が高い以下の6作品をアップロードいたしました。作品の画像をクリックすると、別タブに作品のWebページが開きます。マウスの左ボタンのドラッグで回転移動、右ボタンのドラッグで並行移動、ホイールでズームとなっています。尚、閲覧するにはHTML5をサポートしているChrome, Firefox, IE11が必要です

itako

【時間を大切に】

 

kouno

【お花を大切にしよう!】

 

shiino

【WANDER ART GALLERY】

 

arimura

 【クリスマス】

 

suzuki

【時は金なり】

 

abe

【音楽やろうぜ!!】

LINEで送る
Share on Facebook

藤村ゼミの卒業研究をもう一件紹介します。この作品は、マイコンボードArduinoと音情報を取得するための音センサ、そしてELワイヤーという光るワイヤーを用いて、音楽に即時に反応し光るコスチュームです。本作品ではマイクから取得した音声をFHTライブラリによりスペクトル分析を行い5つの音域の強度に変換し、下図のように音域毎に対応するELワイヤーを音の強度に応じて点灯させています。

一定時間の音の強度の平均値に基づき、反応する音のしきい値を自動的に調整するオートゲインコントロール機能を実装しているため、静かな場所でも、大音量のライブ会場でも適切に光らせることが可能です。また、PCは不要でArduino単体で実装されているため、低コストで実現できます。

responsivecostume

藤村ゼミではこのようなコンピュータ技術と手芸を組み合わせたテクノ手芸やメディアアートの制作を行なっています。

LINEで送る
Share on Facebook

藤村ゼミの「TwitterとLeap Motionによるジェネラティブ・ミュージックの制作」という卒業研究を紹介します。この研究は、LEAP Motionと呼ぶセンサによって取得した手の動きと、Twitterからのつぶやきをリアルタイムに取得し、この2つの情報を元に、インタラクティブに音楽を生成するメディアアート作品です。まずは、以下の動画をご覧下さい。

この作品では、Twitterアカウント所持者がつぶやいたタイムラインの中から特定のキーワード(今作品ではおはよう)が含まれるツイートを10秒ごとに20件取得し、そのツイートのテキストによってドラム音が生成します。そして、Leap MotionはLeap Motion演奏者の手の座標、ジェスチャーを1秒に最大60回送信し、送信された情報から、メロディが鳴り、手の座標によりそのメロディにエフェクトを適用します。本作品の全体構造を下の図に示します。Twitterから生成される音楽とLeap Motionから再生される音楽が合わさることで本作品のジェネラティブ・ミュージックを生成するようにしました。尚、実装はTwitter APIの部分に一部PHPを使用しましたが、大部分はJavaScriptで開発しております。

twittermusic

本作品のオリジナリティはLeap Motionの演奏者一人だけではなく、Twitterのアカウントを所持している全ての人々が本作品のジェネラティブ・ミュージックに参加できるという点です。つまり、Leap Motionで演奏者、Twitterの利用者のどちらが欠けていたら完成しない、新感覚の複数人参加型のジェネラティブ・ミュージックとして制作しました。

藤村ゼミではWebサイトの構築技術やメディアアートの制作等をテーマとして取り組んでいます。藤村ゼミのH26年度の卒研テーマの一覧はこちらをご覧下さい。

LINEで送る
Share on Facebook

デザイン専攻の2年生の後期に開講されている「プログラミング論及び演習」という授業を紹介します。この授業は2013年度まではC言語を使っていましたが、2014年度からは、近年利用が広がっているJavaScriptに変更し、Web技術の基礎を学ぶ授業にしました。JavaScriptは、Webブラウザ上で実行可能な言語ですので、Windows、Mac、iOS、Androidによらず実行できること大きなメリットです。さらに、HTML5の普及によりOSの基本機能が利用可能になり、3DCGやゲーム等を含む、あらゆる分野のアプリが制作できるようになったため、JavaScriptは、ますます重要となっていくでしょう。

本年度は、JavaScriptの基礎を学んだ後、jQueryライブラリを活用して対話的なユーザインタフェースの制作方法を学びました。そして最後の4回では、enchant.jsライブラリを活用してJavaScriptで動くゲーム作品を制作しました。以下に制作したゲーム作品を紹介します。以下の2つの作品は特に完成度の高さが際立つ優れた作品でした。画像をクリックすると、別ウインドウが開き、HTML5対応のChrome、Firefoxで閲覧した場合にはマウスで操作することができます。

※「メモリー」はスマートフォンでも動作しますが、他の作品はキーボード(矢印キー)が必要ですのでPCで操作して下さい。

【最優秀賞】メモリーprog2014_memory

【優秀賞】忍者を入れるな!prog2014_sengoku

また、以下の3作品は、惜しくも優秀賞とはなりませんでしたが、楽しめる作品でしたので、紹介致します。

ハートを集めて♥prog2014_usagi

宇宙サッカーprog2014_space

りんごをゲットprog2014_apple

この授業を受講した2年生の皆様、3年生からはWebプログラミング、アルゴリズム論及び演習、オブジェクト指向プログラミング論及び演習、画像処理論及び演習、情報処理応用論及び演習など、プログラミングを学べる授業がたくさんありますので、引き続きプログラミングを楽しんで下さい。

LINEで送る
Share on Facebook

情報デザイン専攻では、はじめてプログラミングを学ぶ1年生向けに「プログラミング入門」という授業があります。この授業では、図形やアニメーションを描きながら、楽しくプログラミングを学ぶことができるProcessingと呼ぶ言語を使用しています。

今年度も昨年の第1回コンテスト同様、最後の3回の授業時間を使ってプログラミングコンテストを実施しました。今年のコンテストのテーマは「流れ」としました。「流れ」には「水」や「空気」などの液体や気体の流れはもちろん、「自動車」や「お寿司」などの物の流れ、さらには「時の流れ」などもあり、独創的なアイデアが生まれるのを期待したからです。また、「流れ」にはアニメーションなどの動的な表現が求められるため、プログラミング技術が高められるということも狙っています。

Processingで作成された作品は、processing.jsというライブラリを使うことにより、Webブラウザでご覧いただくことができます。最後の授業では、各自が制作した作品をWebサーバにアップロードして、各クラスでプレゼンテーションを行いました。さらに4クラスに分かれて制作しておりましたので、他のクラスの作品を含めて鑑賞し、学生自身に気に入った作品を投票してもらいました。 この学生の投票と、授業を担当する4名の教員の評価を合計して、以下の4作品が優秀作品として選出しましたので、本日ここで発表します。おめでとうございます。下の画像をクリックすると、別ウインドウが開き、HTML5対応のChrome、Firefox等(IEはバージョンによってNG)で閲覧した場合にはマウスで操作することができます。

【最優秀賞】proc2014_robot

ロボット工場における流れ作業を美しく表現しています。背景画像の完成度が素晴らしいですね。

【優秀賞】 proc2014_balloon

ゆっくりとした空気の流れを気球で表現しています。クリックし続けると気球が上がります。

【優秀賞】proc2014_clock

時の流れを表現しています。中央部分のドアをクリックし続けるとドアが開きます。

【優秀賞】proc2014_season

季節の流れを美しく表現しています。右矢印キーで速度が変わります。

 

これらの作品を作られた学生には、後日、「第2回プログラミング入門、プログラミングコンテスト」にふさわしい素晴しい副賞(?)が渡されることになっております。今回、惜しくも選ばれなかった学生の中にもたくさんの素晴しい作品がありました。今後もプログラミングを楽しんでいただければと思います。さて、来年のテーマは何にしましょうか?

追記

「季節の流れ」を制作した学生の感想:自分の作品が優秀賞をいただけてとても驚きました。プログラミングに関しては初心者でしたが、授業で学んだ知識を形にしたものが評価していただけたのは嬉しいです。プログラムが思ったように動かずに悩んだり、書き直したりしたのは大変でしたが、解決策や代案が思いついたときの喜びも多かったのでとても良い経験となりました。時間や技術の問題で、妥協したところもありましたし、別の作品(ゲーム要素の強い物)も作ってみたいと思っているので、これからもプログラミングの勉強を頑張っていきたいです。(T.N.)

LINEで送る
Share on Facebook

卒業研究は、授業で学んできた「知識」を、実際の問題に応用することで使える「技術」に昇華させる重要な学びのステップです。今日は卒業研究の実例として、藤村ゼミのH25年度の二人の学生の卒業研究を紹介します。

一つ目の卒業研究は「三軸加速度センサによるジェネラティブミュージックの制作」というもので、手袋に縫い込まれた三軸加速度センサから手の動きのデータを取得し、インタラクティブに映像と音楽を生成するメディアアートの制作です。

この作品では、15個の音をランダムな順番で音量や長さを変化させながら再生する、といった複数のルールをアルゴリズム化して音楽を合成しました。また、三軸加速度センサの値を音楽と映像に反映させ、人間の動作がリアルタイムに作品に反映されるようにしています。制作にはProcessingとArduinoを使用しました。三軸加速度センサを組み込んだArduinoをUSBケーブルでPCと接続し、計測データをProcessingで受信し、受信した値を使って音楽とアニメーションを生成するようにしました。

この作品は「作品を創るプロセス」そのものが作品であり、作り手の意志と受け手の意志の両方のインタラクションによって作品が完結します。

二つ目の卒業研究は「Processingによる遠隔通信モーションキャプチャ技術の開発」というもので、先程の例と同様に三軸加速度センサの値を活用しますが、こちらは、Arduinoではなく、スマートフォンAndroidに備えられている加速度センサを活用しています。こちらは、スマートフォンベースなので、アプリさえインストールすれば誰でも簡単に参加できるようにすることを狙っています。

Android端末側のアプリはProcessingのAndroidモードを使って制作しました。そして、Android端末からネットワークを介して送信される加速度センサの値を受け取ってリアルタイムに画像を生成するサーバ側のプログラムもProcessingを使って開発しました。この研究では、端末とサーバとの間の汎用的な通信プロトコルの設計に重点を置いていますのでアート作品としてはシンプルなものとしています。また、こちらの作品では、以下の映像のように、複数端末の動きを同時に取得して映像を作るサンプルも制作しました。

藤村ゼミではこのような参加型のメディアアートの制作を一つのテーマとして取り組んでいます。藤村ゼミのH25年度の卒研テーマの一覧はこちらをご覧下さい。

LINEで送る
Share on Facebook

情報デザイン専攻では、2年生と3年生向けにC/C++、Java、JavaScript、PHP、SQL等を使って実習する多くのプログラミングの授業がありますが、さらに本年度より、はじめてプログラミングを学ぶ1年生向けに「プログラミング入門」という授業が開講されました。

この授業ではProcessingと呼ぶプログラミング言語を使っています。Processingは、様々な図形やアニメーションを描くことや、ユーザの入力操作に反応するインタラクティブなグラフィックス作品が容易に作成できるため、近年、プログラミング言語の教育用入門ツールやインタラクティブ・アートの制作用言語として広く利用されています。

今年度は、最後の3回の授業時間を使ってプログラミングコンテストを実施することにしました。コンテストでは、「海」、「空」、「花」の3つのテーマの中から一つを選んで、そのテーマに合ったグラフィック作品を制作するものです。そして最後の授業ではみんなが制作した作品をサーバにアップロードしてお互いの作品の鑑賞して気に入った作品に投票するというイベントも行いました。というわけで学生が制作した作品はこの授業を履修するほぼ全員1件の約96件です:


pde01pde02
pde03pde04
pde05pde06
pde07pde08
pde09pde10
pde11pde12
pde13pde14
pde15pde16

これらの沢山の作品の中から本授業を担当した4人の教員が厳正な評価を行い、その中で次の作品を最優秀作品として選出致しました。おめでとうございます。

クリックするとクリオネが現れ、光に向かって上に泳ぎます。

 

それから、次の2作品は、優秀賞として選出致しました。

画面を1回クリックした後、「6」キーを押すと人が右に進みます。

いろいろな位置にマウスを動かし、クリックしてみて下さい。

Processingで作成された作品は、processing.jsというライブラリを使うことにより、Webブラウザでご覧いただくことができます。これらの3つの作品は、上記の画像をクリックすると、別ウインドウが開き、HTML5対応のChromeやFirefox等で閲覧した場合にはマウスで操作することができます。

これらの作品を作られた学生には、後日、第1回プログラミング入門、プログラミングコンテストにふさわしい素晴しい副賞が渡されることになっております。今回、惜しくも選ばれなかった学生の中にも素晴しい作品が多数ありました。選ばれなかった学生も是非、今後もプログラミングを楽しんでいただければと思っております。

それから、コンテスト以外にも、普段の授業の演習で、以下のような素晴らしい作品を制作した学生もおりました。とても良かったので、紹介しておきます:

soubusen

来年は、どのような作品が制作されるかとても楽しみです。

2014年4月追記:受賞者のコメントを追加します:

最優秀賞:最優秀賞をいただき、ありがとうございます。苦労して作った作品なので、とても嬉しいです。プログラムを作ることは初めてで、わからないことも多く試行錯誤をしながら作ったため大変でしたが、改良するごとに目に見えてよくなっていくのがわかりとても楽しかったです。これからもっとプログラミングについて勉強をしていきたいと思います。(A.S.)

優秀賞:プログラミングについてはほぼ初心者でしたが、基礎を積み上げて何とか形にすることができました。何もない状態から、少しずつ自分の想像したプログラムに変化していく過程がとても楽しかったです。これからprocessing以外のプログラム言語も勉強していきますが、それらも使いこなせるように頑張りたいと思います。(E.I.)

優秀賞:私の作品が優秀賞をとったという連絡が来たとき、喜びよりも驚きが大きかったです。この作品は「空」をテーマに作らせていただきました。美しさよりも楽しさを重視して作ったので楽しんでいただけたのならば幸いです。これからもprocessingをもっと勉強して今よりもより完成度の高い作品が作れるよう努力したいと思います。ありがとうございました。(A.T.)

LINEで送る
Share on Facebook