
hara
恵比寿でインタラクティブデザイナーをしております。Flash, iPhone, openFrameworksなどが得意とするところです。
Twitter:@xxxxMakoto
Wonderfl:HaraMakoto


恵比寿でインタラクティブデザイナーをしております。Flash, iPhone, openFrameworksなどが得意とするところです。
Twitter:@xxxxMakoto
Wonderfl:HaraMakoto

level0をご覧の皆さん、生存戦略ー!
今週はお休みで寂しいですね。
有明に出奔してる方も多そうですが、構わずエントリです!
iPhoneのBluetoothでコントロールするプロジェクションゲーム from BMCL on Vimeo.
えっ? どこかで見たことのある設定だって?
それはきっと、運命による偶然です。
ペンギンを移動させるためには、りんごを使います。
りんごには果たしてどういう意味があるのか・・
自分の端末で楽しむシングルモードと、サイネージを利用して楽しむバトルモードがあります。
バトルモードの時は、IPhoneの操作で壁面のペンギンを操ります。

さて、前置きが長くなりましたが、iPhoneとBlueToothで通信させる時に参考になったサイトです。
level0をご覧の皆さん、生存戦略ー! 今週はお休みで寂しいですね。 有明に出奔してる方も多そうですが、構わずエントリです! ところでこんなデモを作ってみました iPhoneのBluetoothで…

こんにちは。NUI(Natural User Interface)への好奇心が止まらない原です。
Kinect for Windows SDK GAME Test from BMCL on Vimeo.

この体験を実現しているのは、Microsoftの公式SDK、Kinect for Windows SDKです。
ダウンロードはこちらから。
http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx
リンク先にも書いてありますが、開発するにはWindows7、およびVisual Studioが必要です。
また、仮想環境では動かないのでご注意ください。

こんにちは。NUI(Natural User Interface)への好奇心が止まらない原です。 ところでこんなゲームを試作してみました Kinect for Windows SDK GAME Tes…

もうすぐ春ですね。haraです 前回の投稿ではBMCL第一弾、「ぐったりくまリオネット」が紹介されましたが、第二弾は電脳空間システムです! 「攻殻機動隊 S.A.C.」シリーズ 電脳空間システム …

メリークリスマス!haraです。世間はめでたく羨ましいクリスマスだというのに、僕は風邪を引いて遊びにも呑みにも行けない体たらくです。しかしせっかくのクリスマス、楽しまなきゃ! という…

さて、前エントリで光の女神プロジェクションについて紹介させていただきましたが、
今回はそれをどうやって作ったかについて解説いたします。
普段ではやらないようなDIYな作業が多かったので、文化祭のようでなかなか楽しかったです。
さて、まず今回のソースは一式githubに上げちゃいました。
https://github.com/haramakoto/MuseofJiyugaoka
興味ある方は見てみるとよいかと思います。
今回は「服状のものに投影したら色々いい演出ができるんじゃないか」という考えから出発しています。
服状のものに投影するということは、
・服が必要
・できるだけリアリティを出すためには複数台の投影、マッピングプロジェクション的な調整が必要
ということになります。
図のような感じで、2カ所から映像を投影して中央の服に表情をつけます。
投影用の服ですが、今回は「ターポリン」というテントに使われるシートを使っています。
この素材が探しうる限りでは最も投影に適した(というかスクリーン用によく使われる)ものでした。
あとはフリーダウンロードの服の型紙を探し、型紙の裾を無理矢理引き延ばしたものを作り、
型紙の形状に沿ってシートを切り取ります。
高さ3mはなかなかの重量となるため、服の接合部はそれなりに丈夫である必要がありました。
今回は接合部にハトメ玉を打ち、接合には内径2mmのカードリングを用いて楽に着脱できるようにしました。
そこそこハードな扱いでも壊れなかったので、この方法で間違いなかったようです。
今回は立体に投影することもあり、複数台のプロジェクタによって多面をカバーすることは必須でした。
問題はどうやって複数画面に出力するかですが、今回は2台のMacからそれぞれ映像を出力するという方法を取っています。
これは、
・1台で2レンダリング走らせるのが処理能力的に怖い
という理由につきます。イベントで投影するため、途中で落ちるという可能性はできるだけつぶしておきたかったというわけです。
2台のMacからの出力でつじつまをあわせるために、下記のような工夫をしています。
2つのマシンで1つの物体を表現するのだから、2つのマシンで同じプログラムを走らせ、片方は前半分、もう片方は後半分を表示すればいいわけです。
今回は服に合わせて3Dオブジェクトを作成し、テクスチャをアニメーションさせているので、要するにレンダリングを半分ずつ分ければいいということになります。
ifdefを使って、「_CONTROLLER」が定義されていたら前半、立ってなければ後半をレンダリングし、カメラの位置もそれぞれで調整するようにします。
testApp.cpp冒頭
https://github.com/haramakoto/MuseofJiyugaoka/blob/master/MuseJiyugaoka/src/testApp.cpp
#include "testApp.h"
#define MAP_X 512
#define MAP_Z 512
#define _CONTROLLER
「#define _CONTROLLER」をコメントするしないで処理が分かれるようにします。
あとは、2台のマシンをクロスケーブルでつなぎ、
ファイル共有状態にして、メインマシンでサブマシン用のビルドを作成し、サブマシンのドロップフォルダに送ります。
ただし、これだけでは不充分です。
同じプログラムとはいえ別のビルドが別のマシンで動くので、表示している内容はだんだんずれていきます。
なので、定期的に同期させる命令を書きます。
マシン間でやりとりする時には、ofxOscが便利です。
ofxOscのおおまかな使い方を書きますと、
ofxOscを使っている処理は、全てtestApp.cppに書いています。
https://github.com/haramakoto/MuseofJiyugaoka/blob/master/MuseJiyugaoka/src/testApp.cpp
また、ofxOscについての解説は
openFrameworks中級編4:アドオンを使う3 - ofxOsc | yoppa org の記事が詳しいです。
さて、今回はテクスチャにはりつける画像をアニメーションさせていますが、具体的にはこのようなプロセスになります。
2次元のアニメを走らせる→oFの画面キャプチャを取る→oFの画面をクリアする→3Dオブジェクトを描画し、画面キャプチャを貼付ける
スクリーンのキャプチャはofImageのインスタンスにgrabScreenのメソッドを走らせると取ることができます。
_ofimage.grabScreen(0, 0, 800, 600);
最初はこの方法を知らずに悩んでいました。結局のところ、oFにはFlashのようなSpriteの概念がないので、(ofImageがBitmapに近い概念ではありますが)作成したアニメーションを簡単に3Dテクスチャにはできないのではないかと思われます。
この処理はCloth.Appの362行目にあります。
https://github.com/haramakoto/MuseofJiyugaoka/blob/master/MuseJiyugaoka/src/cloths/Cloth.cpp
今回は相手が布ということもあり、投影物を3Dモデルで再現したものを投射、ということまではできていません。なので、そのままではどうしても投影にはずれがでてきます。
そこで、双方の3Dモデルのつなぎめの端点をキー操作で移動できるようにしておきます。
これで最後のずれの微調整ができるので、「2投影には見えない程度の」見た目のつじつまは合わせられたようです。
この処理はCloth.cppの94〜110行目あたりになります。
https://github.com/haramakoto/MuseofJiyugaoka/blob/master/MuseJiyugaoka/src/cloths/Cloth.cpp
今回、技術的に一番の収穫はスクリーンキャプチャをテクスチャに貼る方法がわかったこと。
これでかなり手軽にマッピングプロジェクションにアプローチできる予感がします。
しかし、実はこの方法は手軽でいい方法である一方で、あまり安定しない方法でもあります。
プログラム実行中にウィンドウの状態が変わる(移動、隠すなど)と表示が壊れてしまうのです。
冒頭あたりで書いた、「パフォーマンス中に壊れない」というポリシーからはかなり反するので
できれば他の方法がいいですが、現状わかっている範囲ではこれが一番有効な方法になるのでした。
さて、前エントリで光の女神プロジェクションについて紹介させていただきましたが、 今回はそれをどうやって作ったかについて解説いたします。 普段ではやらないようなDIYな作業が多かったので、文化祭のよう…

年の瀬も押し迫ってきました昨今、皆様いかがお過ごしですか。
haraです。
今回は、先日12月5日に自由が丘で投影いたしましたインスタレーションを紹介いたします。
このコンテンツは、自由が丘駅前で行われたクリスマスイベントで展示されたものです。
高さ約3mのドレス状に組まれたシートに対して映像を投影し、ゴスペルコンサートの
賑やかし要素として入れさせていただきました。
基本的に「女神のドレスが変容していく」という設定で映像を展開し、
最後はクリスマスツリー風の演出で締めくくりました。

普段あまり見かけないビジュアルに仕上がったので、街の皆様にはいつもと違う夜を体験いただけたのではないでしょうか。
実装はopenFrameworksを用い、プロジェクタはEPSONのEB-G5350を使っています。街灯が明るい中でしたが、特に問題とならない明るさ・鮮やかさが出ていると思います。
詳しい技術解説については、また後日投稿いたします。
年の瀬も押し迫ってきました昨今、皆様いかがお過ごしですか。 haraです。 今回は、先日12月5日に自由が丘で投影いたしましたインスタレーションを紹介いたします。 このコンテンツは、自由が丘駅前…

こんにちは、haraです。 前回の投稿でちょっと告知してました、ART-Meterの絵画にプロジェクションというのをやってみましたよ。 ARToys:PATTERN ARToys:PATTERN …

こんにちは、haraです。
今回はopenFrameworksとプロジェクションマッピングという、およそFlasherにはなじみがあるのかないのかわからないテーマについて紹介します。
プロジェクションマッピングとは、ビルとか車のような、実在する物体があたかも「変性」したり「拡張」しているように見えるように、映像をプロジェクションして見せるコンテンツのジャンルの名前です。(大意)
海外ではよくやられているようで、ちょっと紹介させていただくと
こういうのとか
こういうのとか
あるいはこういうのとか。すごいですね。
P.O.P. | 3D video mapping | experimental study from urbanscreen on Vimeo.
インターンのいぶくろくんのブログに詳しく解説があるので、ひとまずこちらをご確認を。
http://d.hatena.ne.jp/asus4/20090514/1242330024
主にメディアアートやパフォーマンスでの使用に特化されたC++のライブラリです。
processingとほぼ同じ記法、構成で組む事ができて、導入はとてもお手軽。
さらに出版されている日本語の参考書には、OpenCVやらBox2Dやらがセットになったサンプルの解説があるので
http://openframeworks.jp/download.html
特に何も考えなくてもすごいコンテンツが作れちゃうようなチート感すらあります。
ちょっと前にやくしまるえつこのPVで使われていて話題になっていましたね。
openFrameworksのサイトに作品ギャラリーがあります。
http://www.openframeworks.cc/gallery
このプロジェクションマッピングっていい概念ですね。
ちょっとした工夫で世界が違って見えてくる、最近はやりのARと近いというか、ARの実現方法の1つという感じでしょうか。
よくある「モニターごしのオーバーレイ映像」(iPhoneのカメラと組み合わせてるやつとか)と違って多くのユーザに配布することはできないですが、 1カ所で見せるものとしてはこの方法の方がずっと「現実拡張感」がありますね。
これはぜひぜひやってみたい!ということで、openFrameWorksでプロジェクションマッピング、いやプロジェクションマッピング的な?現実拡張なコンテンツの実験をしてみました。それがこちら。
ART-Meterで飾ってる絵に、あら不思議、映像であるはずのボールが跳ね返ってますねー不思議ですねー・・
まあ、普通にFlashをやってるかたであれば、これが単純にBox2Dの領域を絵の場所にあてただけだ、ということはすぐにわかるとは思います。
でも、たったこれだけでも不思議と現実が拡張されたような、ダイナミックな面白さが発生するのがプロジェクションマッピングのいいところなのだと思います。
さて、今回紹介したのは実験でしたが、来週の日曜日と月曜日、この実験をもとにつくりましたARToysというインスタレーションをART-Meterに設置します。
AR と ART のおもちゃシリーズってことで。
この日は自由が丘女神まつりという、イベントもりだくさんのお祭りが自由が丘で開催されます。
http://www.jiyugaoka.or.jp/index.html
ぜひぜひ遊びに来てくださいませ。
こんにちは、haraです。 今回はopenFrameworksとプロジェクションマッピングという、およそFlasherにはなじみがあるのかないのかわからないテーマについて紹介します。 プロジェクシ…

失礼、生やしすぎました。
毛や植物など、形状に対して「生えている」ような見た目にしたい時の考え方のメモです。
文字から何か生えてるとか、よく見るけどかっこいいな、どうやるのかなと思ってちょっと試してみました。
馬の絵から生やすとこんな感じ
これは骸骨です。パラメータ調整に若干ミスって寝ぐせみたいになってます。
以下、解説です。
「生える」ってずいぶん複雑そうだな、と一瞬思いましたが、単純に頂点から何か出てくる表現を
複製する、という表現ができれば目的は果たせそうです。
例えば四角形に毛が生えている表現は、一筆で四角形を描いた時に、向かうベクトルに対して左側に毛が生え続ければ
四角から毛が生えているように見える。
今回は、マウスドラッグで座標を配列に追加する処理[MouseMove]
配列を巡回して、それぞれの座標について描画する処理[draw]
という2本立てにしました。
大雑把にこんな感じです
--- 今回はFrocessingで書きます
addRootメソッドが走ります
ドラッグ時にaddNodeメソッドが走ります
currentListIndexを更新してpointListList配列に新しい配列をつっこみます
pointListList配列内の、インデックスがcurrentListIndexの配列に対して(pointListListは二重配列です)
LinePointインスタンスを追加します。
LinePointインスタンスは引数で受け取ったpx,pyを参照し、vx,vy,r,vectorの大きさを計算します。
pointListList配列に入った座標群に対して描画処理を実行します。
基本要素は座標、速度、回転で、
ここのコードでこれらを使ってどう描画するかを設定します。
また、drawメソッドの最初にbackgraond(0,1)を入れると
毎フレームクリアして再描画、つまりアニメーション表現になり、
入れない場合は塗り重ねの静止画表現系になります
Pointクラスを拡張して、速度や回転のパラメータを追加したクラスです。
実際のプログラムはこんな感じ。自由にご利用ください。っつてもあんまり使う機会は少なそうですが・・
静止画系
Hair Draw - wonderfl build flash online
アニメーション系
forked from: Hair Draw(Animation) - wonderfl build flash online
失礼、生やしすぎました。 毛や植物など、形状に対して「生えている」ような見た目にしたい時の考え方のメモです。 文字から何か生えてるとか、よく見るけどかっこいいな、どうやるのかなと思ってちょっと試して…

ちょっと前の話になりますが、E3でサウンドとシューティングゲームが一体化した、凄いゲームがQ Entertainmentから発表されてましたね。Kinnectsを使って、体全体を使って音楽に乗れそうなとても期待できる内容でした。
最近、wonderflでサウンドのビジュアライゼーションを見かける機会が増えています。
音楽ゲームは、サウンドのビジュアライゼーションとかなり関わりが深いと言えるでしょう。
ということで、今回は、よりサウンドビジュアライズへの造詣を深めるために
音楽ゲームの表現について探ってみましょう。
音楽ゲームは、一時期ものすごいブームでした。
ビートマニアやダンスダンスレボリューションが色んな媒体で取り上げられたり、
プレイ動画が何本もあげられたりしていたのは記憶に新しいし、未だにたくさんの情報がネット上に溢れています。
そんな感じなので、全部詳細に調べ上げようと思ったらきりがありません。今回は主要と思われる、というか僕の知っている範囲のゲームについてまとめてみます。
こんな面白いのもあるよ!というのを知っている方、いらっしゃいましたらぜひコメント欄などにアドバイスをばお願いいたします。
これ以前に音楽ゲームというのを見た事がないです。これが発祥というわけではないでしょうが、
現在のように音楽ゲームが定着する最初のきっかけとなったゲームであるのは間違いないでしょう。
ゲームの仕組みとしては、先行して流れたリズムを再現させる、というものでした。
また、ボタンを押すタイミングを知るためのゲージもあり、インタフェースとしては
現在出ている音楽ゲーム
パラッパの次くらいだったと記憶しているのが、スペースチャンネル5。
これはパラッパラッパーからゲージを消して、記憶だけを頼りにリズムを再現させる式。
注目すべきは演出で、ゲームにミュージカル演出がつくというよりは、ミュージカルに参加するために
ゲーム要素がある、というくらいに見えるバランスで作られています。
言わずもがなの大ヒット作。前段で紹介したゲームとの違いは、繰り返しを排除しているところ。
ゲームの難易度は上がりましたが、こうすることでどんな曲もゲームに取り込めますね。
音楽ゲーム、と言われると、真っ先に思い浮かぶのがこのゲームだと思います。
ビートマニアのインタフェースをダンス式にしたもの。
この他にも、ドラムマニアやギターフリークスなども出ました。
ビブリボンは、曲調に合わせてステージにトラップが生成され、
生成されたトラップをクリアしていく、というゲーム。
アクションゲーム的なイメージが強いです。
Rezはシューティング+サウンド。
曲に合わせてコマンドを打つというより、曲の展開に合わせて敵が出てくる/
効果音が全て楽器になっている という感じですね。冒頭で紹介したChild of EDENはこのゲームとほぼ同じ操作システムを採用していて、Rezの進化版のような感じになっています。
シンプルな入力と気持ちのいいアクションに特化しているのがリズム天国。
たくさんの種類のネタが出てきて飽きないです。
また、入力操作も単純に「音をなぞる」ということではなく、流れている曲にちょうど良く、気持ちよく入れるポイントをかなり絞って設定しているようです。
楽曲はゲームの内容に合わせて作る必要がありそうです。
beatmaniaと同様、楽曲の自由度が高い内容ながら、入力をシンプルに、要所要所の演出を効果的に使って楽曲との一体感を高めています。
繰り返しをキーとするパラッパラッパー
↓
繰り返しを排除、楽曲と同期してるけど複雑すぎるビートマニア
↓
音楽との同期に複雑さを感じさせない太鼓、→他ジャンルとの組み合わせ Rez、ビブリボン
↓
楽曲との同期からさらにそぎ落として、シンクロ感に特化するリズム天国
のような感じで、全体としては
・よりシンプルに
・より音楽との一体感を感じるように
という方向に進化してるように見えます。
スペースチャンネル5はRezなどは、その中でもかなり異色な雰囲気で面白いです。
音楽ゲームの表現をより豊かにしています。
さて、サウンドビジュアライゼーションに置き換えると、そもそもこの「シンクロ感」をうまく出すのがとても難しいのではないかと思います。(リズムは波形ではとらえきれないと思うので・・)
しかし、同時に大事な要素でもあります。
音楽ゲームは、サウンドビジュアライゼーションの要素がふんだんに入っていますが、リズムは波形から取得するのではなく決め打ちで入っているパターンが多いかと思います。
もしかしたら、楽曲のメタデータをゲーム中に簡単に取り込んでしまえる、秘密の方法があるのかも。
そう考えると、ビジュアライゼーションを波形取得による完全自動処理のアプローチとするよりは、
何らかの方法でメタデータを簡単に取得/入力する仕組みを作ることが
より新しい表現の近道かもしれませんね。
すごい音楽ゲームが出てた。 ちょっと前の話になりますが、E3でサウンドとシューティングゲームが一体化した、凄いゲームがQ Entertainmentから発表されてましたね。Kinnectsを使って、…