観客参加型のイベントをやってきました。重い腰を上げて動画編集したので、遅くなってしまいましたが振り返りと作品紹介をしたいと思います。毎回CALAR.inkの制作ではストーリーと観客の体験をどう織り交ぜていくかの議論が全体工数の8割くらいを占めます。逆にインタラクティブなもの沢山入れるとストーリーがつながらなかったりするし、どちらも並行で考えないといけないので毎回とても苦労します。脚本の作り方とか本を読んで勉強したりもしたけど、CALAR.inkが作りたいものにはそれらのワークフローはあまりハマらないことも多くて、まだまだ手探り状態です。予定がなくても案を考えておくっていうのは一つ解決策としてあるかも。(しかし、結局スケジュールが入らないと動かないという怠惰、笑)話が逸れましたが、そんな風にとても長ーい時間をかけてデザインした今回のストーリーと観客の体験はこんな感じになりました。舞台は不思議な美術館。この美術館では人々が見た夢が絵となって飾られています。ある日それらの絵が突然消えてしまいました。絵を修復していきます。体験の流れと仕組み会場では最初に、簡単なブリーフィングと夢のかけらを探すための魔法の筆が渡されます。魔法の筆にはNFCタグが仕込んであって会場にたくさん仕掛けられたタッチスポットを見つけ出し、タッチすると物語が進行します。タッチスポットはなんと50か所以上!大量のNFC会場には案内役の役者さんもいて観客を誘導したりライブペインティングしたりして場を盛り上げます。壁の中に仕込んであってプロジェクションマッピングでインタラクティブに絵が動いたりもします。NFCでタッチした情報はいったんNode.js製のサーバに送られます。会場のプロジェクションマッピング制御はUnityで行っているので、Node.jsサーバとUnityをUDPで繋ぎ連携させています。このシステムはかなり汎用的なのでもっといろんな場所でコンテンツを変えて展開できそうじゃないですか?すごくないですか?と言ってもここまで書いた部分、わたしは全く実装しておらず坪倉氏と瓜田氏が頑張ったのでお問い合わせは彼らまで(笑)自分は何をやってたかというと、観客の体験内容に応じてイラストを生成する部分を担当しました。観客はそこで遊んだ後、上の階(ビルの5F)に案内されます。そこには自分が修復した絵が飾られています。同じものが2つと無いその人だけの絵になっています。この部分は、Node.jsサーバから観客がNFCにタッチしたログをvvvvに送り、その内容を元にイラストを生成。vvvvで2台のプリンターを制御して印刷。これらの過程を観客が下の階で遊び終わり、上の階にやってくるまでに行いました。自分が体験した内容が入った絵がその場で実物となっていて、しかもこの絵はお持ち帰りOKにしています。ありがとう!!!という気持ちでいっぱいでした。他のスタッフの方々の協力で何とか乗り切ることができ本当にありがたく思っています。この辺りはプログラムの改善の余地あり。意味のあるシルエットを形成するのが難しかったので不採用。結局は愚直にピクセルの空いている部分を探し広い部分から埋めていくという方法にしています。これはサークルパッキングと呼べるのかわかりませんが、結果としては似たようなものが出力されます。http://www.tylerlhobbs.com/writings/circle-packingピクセルを畳み込み処理で空白を探しています。古くて弱いGPUの乗ったノートPC1台で何とかしのげました...。(あらかた実装が終わった後にサークルパッキングと名前がついている手法があると知ったのでどういったアルゴリズムが一般的なのかは調べていません、汗)イラストのシルエットはあらかじめ用意しました。気が向けばシルエットも自動で生成する仕組みを考えたいところです。掘り下げればもっと面白い表現もできそうだと感じています。個人的には今回のプロジェクトは、ユーザの行動ログを基にしたジェネラティブアートだと言う位置付けで取り組んだので、その部分が大変うまくいって満足しています〇てな感じで今回もいろいろと仕掛けを用意しました。イベントの都合上、これら全部一夜限り(正確には2日間)で完全撤収!非常にリッチなイベントとなりました。次回はまだ決まっていませんがまた機会があればどこかでお会いしましょう~。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。Blogは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。SiteOrigin。