Resolume と UnrealEngine5を連携させてオーディオリアクティブな表現をしたい
気づいたら 2022年もあと10日弱。 自主制作においても様々な挑戦をする機会を頂くことができ、非常に充実した1年でした。 12月21日に予定していたイベントはやむを得ない事情で出演ができなかったことだけ悔いは残っておりますが、やり切った感は十分にあります! さて、仕事も落ち着いてきたので、自主制作の振り返りをしたいと思います。 今年、挑戦したのは、 UnrealEngine の作品への活用です。 6月に出演させて頂いた Hyper geek #3 では、全て Unreal + Resolumeで制作をしていたのですが、どう制作していたのか聞かれることがありましたので、土台としていた技術部分について簡単に解説しておこうかと思います。 (動画を見返して、映像がだいぶ白飛びしていたので、Post processing とかもっと考えないとなあと思ったり
暴走しがちな技術を目の前にコンヴィヴィアリティについてぼんやりと考えている
世界は変化している.21世紀を迎えた人類は,利便性に堕してバランスを逸したモダニズムに,ようやくブレーキをかけつつある.そして,現在,私達の生活空間は,モバイルに象徴されるメディア技術によって,ヴァーチャルなインフラストラクチャーと接続し,新たなリアルを獲得した.しかし,この生活圏は,あまりにも可塑性が高く,過剰に生成し,暴走しがちなのだ.私達は,見えない時空間を再構築する,メディア表現を必要としている.こうした事態に,いま私たちが掲げるキーワードは,バランスの復権だ.人類最古の発明のひとつである車輪にペダルが装着されたのは,19世紀である.私たちは,モダニズムのはじめに立ち戻り,ハイ・テクノロジーと身体が駆動してきたバランス感覚に着目する.自転車は,理性と野生,都市と自然,ヴァーチャルとリアルを接続し,シンプルなバランスの循環を見出す指針となるだろう.「クリティカル・サイクリング宣言」より,情報科学芸術大学大学院(IAMAS)赤松正行教授 様々なテクノロジーを活用して仕事や制作をする私にとって「お前は,テクノロジーに使役されていないか?」は,タスクに追われている時こそ,冷静に自分自身に投げかけている大事な問いである. 上記は,IAMASの赤松教授を中心に行われている「クリティカル・サイクリング宣言」の引用である。キーワードである「バランスの復権」は,ここ数年の趨勢を踏まえると頭の片隅に置いておきたい言葉の一つである. 我々は火を手に入れた時から,テクノロジーととも共生し自身の能力を拡張させてきた。一方で、現代においては、共生というよりテクノロジーに依存しているという状態の方が肌感がある人が多いのではないだろうか. テクノロジーを捨てて,テクノロジーに頼らない生活を強要する話でもなく,あくまでバランス良く共生するにはどうすればいいんだろうかとぼんやり考えている. テクノロジーに依存し,テクノロジーに操作され,テクノロジーに隷属していないか. テクノロジーとのちょうど良い関係ってなんだろうか. 人が本来の人間性を失うことなく,創造性を最大限に発揮するためにはどのようにテクノロジーと付き合っていけば良いのか. こんな疑問とともに,今更ながら、振り返り始めたのが,イリイチの「コンヴィヴィアル」という概念である. コンヴィヴィアルそのものは,特に真新しい概念でもないが,最近,様々な人が議論に取り挙げているなと思っていた. 完全に脳の隅っこに置き去りにしていたのだが,ちゃんと調べてみると,確かに大事な視点は書いてある、という印象であった. コンヴィヴィアルってなんぞやと思う方が大半だと思うので,イリイチが自身の著書「コンヴィヴィアリティのための道具」の内容を備忘としてまとめておきたい. ブラックボックス化された道具が我々の創造的な主体性を退化させる イリイチは,「人間は人間が自ら生み出した技術や制度等の道具に奴隷されている」として,行き過ぎた産業文明を批判している.そして,人間が本来持つ人間性を損なうことなく,他者や自然との関係のなかで自由を享受し,創造性を最大限発揮しながら,共に生きるためのものでなければならないと指摘した.そして,これを「コンヴィヴィアル(convivial)」という言葉で表した.最もコンヴィヴィアルでは無い状態とは,「人間が道具に依存し,道具に操作され,道具に奴隷している状態」である. では,コンヴィヴィアルなテクノロジーとは? イリイチは,その最もわかりやすい例として,「自転車」を挙げている.自転車は人間が主体性を持ちながら,人間の移動能力をエンパワーしてくれる道具の代表例といってもいいだろう. さて,周りや自身の生活を鑑みてみよう.現状,我々は様々なテクノロジーに囲まれ,その恩恵を受けて生活をしている.例えば,たった今,私は,blog ツールを使って,本件について備忘を残しているところであるが,このツールの裏側の仕組みなど全く気にすることなく,文章を書くことができている.このように,ブラックボックス化された道具のおかげで,我々は不自由を感じることなく創造的な活動をできているのだ.一方,不自由を感じなくなればなるほど,ここをこうしたい,もっと別のものがあればいいのになどの,創造的な発想が生まれなくなる.言い換えると,自らが,新しい道具を作り出そうとする主体性が失われていくのであるとイリイチは指摘する. ここで疑問が湧く. では,「人間の自発的な能力や創造性を高めてくれるコンヴィヴィアルな道具」と「人間から主体性を奪い奴隷させてしまう支配的な道具」を分けるものは一体何なのか? 二つの分水嶺と分水嶺を超えて行き過ぎていることを見極めるためには イリイチは,「人間の自発的な能力や創造性を高めてくれるコンヴィヴィアルな道具」と「人間から主体性を奪い奴隷させてしまう支配的な道具」を分けるものが,1つの分岐点ではなく,2つの分水嶺であると述べている. ここについては抽象的な議論であることは否めないが,ある道具を使う中で,ある1つの分かれ道があるのではなく,その道具が人間の能力を拡張してくれるだけの力を持つに至る第1の分水嶺と,それがどこかで力を持ちすぎて,人間から主体性を奪い,人間を操作し,依存,奴隷させてしまう行き過ぎた第2の分水嶺の2つの分水嶺であるとした.不足と過剰の間で,適度なバランスを自らが主体的に保つことが重要なのである. では,道具そのものが持つ力が「第二の分水嶺」を超えて行き過ぎているかどうかを見極める基準はどこにあるのか? この問いに対して,イリイチは6つの視点を挙げており,それらの多次元的なバランス(Multiple Balance)が保たれているかどうかが重要であるとしている. 多元的なバランス(Multiple Balance) を確認するための5つの視点 生物学的退化(Biological Degradation) 「人間と自然環境とのバランスが失われること」である.過剰な道具は,人間を自然環境から遠ざけ,生物として自然環境の中で生きる力を失わせていく. 根源的独占(Radical Monopoly) 過剰な道具はその道具の他に変わるものがない状態を生み,人間をその道具無しには生きていけなくしてしまう.それが「根源的独占」である.これはテクノロジーだけではなく,制度やシステムの過剰な独占も射程に入るとしている.風呂にスマホを持ち込むなどの行動はかなり,典型的な例として挙げられるだろう. 過剰な計画(Overprogramming) 根源的な独占が進むと,人間はどの道具無しではいられない依存状態に陥るだけではなく,予め予定されたルールや計画に従うことしかできなくなってしまうのである.効率の観点で考えると計画やルールは重要だが,過剰な効率化は,人間の主体性を大きく奪い,思考停止させてしまう.「詩的能力(世界にその個人の意味を与える能力)」を決定的に麻痺させるのだ. 二極化(Polarization) このような根源的独占や過剰な計画が進むと,独占する側とされる側,計画する側とされる側の「二極化」した社会構造を生む.無自覚なままに独占され計画された道具に依存し,人間が本来持っている主体性が奪われていくのだ. 陳腐化(Obsolescence) 道具は人間によって更新を繰り返していく.より早く,より効率的にといった背景で,既存の道具は次々と古いものとして必要以上に切り捨てられていないか? フラストレーション(Frustration) 道具がちょうど良い範囲を逸脱して,第二の分水嶺を超えて上記の5つが顕になる前触れは,個人の生活の中でのfrustrationとして現れるはずだと述べている.違和感を敏感に察知するためのアンテナを持つことが重要であり,アンテナを敏感にすることで,上記の脅威を早期発見することができるとイリイチは言う. バランスはどのようにして取り戻すのか 人間と道具のバランスを取り戻すための方法として,イリイチは「科学の非神話化」という考え方を残している.これは,言い換えるとテクノロジーをブラックボックス化しないということである. ブラックボックス化されたテクノロジーは我々をテクノロジーへの妄信や不信を招き,自ら考え判断し意思決定する能力を徐々に奪っていく.極端な例だが,物理学者のリチャード・ファインマンは「What I Cannot Create, I Do Not Understand.」と言ったように、分かることとつくることの両輪で考えている状態が人間と道具のバランスが保たれている,つまり,人と道具の主従が理想の状態といえるのではないだろうか. とは言えども,これはそう簡単なことではない. つくるまではいかなくても,つくるという状態の根底にある「なんで世界はこうなっていないのだろう・・」や「こうあればいいのにな・・」といった、ちょっとした違和感や願望を持つことぐらいで良いのではないか,もいうのが私の意見である. これからもテクノロジーは目まぐるしく変化していく,もちろん何もしなくてもテクノロジーと共に生きてはいけるが,気づかぬ間に現時点の自身はテクノロジーにより制され,自らも意図せぬ状態へと変わってしまっていることもあるだろう(分かりやすいのがSNS中毒など) ガンジーの言葉の「世界」を「テクノロジー」と置き換えて参照すると,テクノロジーによって自分が変えられないようにするために,自ら手を動かすことはやめてはいけないと感じる.そして,それができる方々は是非,その心を持ち続けてほしい. あなたがすることのほとんどは無意味であるが、それでもしなくてはならない。それは世界を変えるためではなく、 世界によって自分が変えられないようにするためである。Mahatma Gandhi 日々の生活の中で,自分自身の認識と世界とのギャップを見過ごさずに,自らが積極的に世界に関わり,時には,つくるという手段を通して世界に問いを投げかける.このような態度を保ち続けたいと改めて思ったのであった.
オーディオ・ビジュアルアートついてそろそろ深く考える時期にきているという話
12月は、「視覚×聴覚」を掛け合わせた芸術表現、言い換えると「オーディオ・ビジュアルアート」作品(とりわけパフォーマンス領域における)に触れる機会が多かったのだが、作品を観ながら、個人的にオーディオ・ビジュアルアートに対する論を整理する必要があると思い始めたので、このようなタイトルで投稿をしている。 そもそも何故そんなことを思ったかと言うと、最近、作品鑑賞を通じて、ビジュアル側がオーディオの気持ちを掬い取れていない、オーディオとビジュアルの対立が生じている、その結果、「違和感」が先行する鑑賞体験が多かった、という非常に個人的な鑑賞経験が根底にある。 違和感の根底にあるのはなんだったのか、視覚と聴覚刺激の対立ではなく、調和や共鳴、その条件とは一体何なのか?制作者の感性を超えた論に展開することができるのだろうか、という疑問が沸いて出てきている。 ― 私自身、個人的な活動として、ゲームエンジンなどを活用してオーディオ・ビジュアルアートを趣味として実践する身であるが、過去に鑑賞した作品や技術の制限の元で実験的に表現を作ることが多く、自身の制作に対する考えを言語化可能なレベルには到底及んでいない。 そろそろ、闇雲にオーディオ・ビジュアルアート の実験をするフェーズから、次のフェーズに移行したい。もう少し、言葉を付け加えると、自分なりに オーディオ・ビジュアルアート に対する一本の論を持って実践したいと考え始めており、そのさわりとして、今回、この投稿で keyboard を走らせている―。 オーディオ・ビジュアルアート とは何なのか(W.I.P) オーディオ・ビジュアルアート と聴いてどのようなイメージが皆さんは浮かぶだろうか。 以下の動画は、私自身が心底、狂信している3人のアーティストの作品である。私が頭に浮かぶ「 オーディオ・ビジュアルアート 」とはこのような視覚情報と聴覚情報に同時に刺激が提示される表現のことを指しているのだが、一般的な定義はもう少し広義であるようだ(wikipedia 以外の定義を探したものの信頼できるリソースが無いという事実を知る) Audiovisual art is the exploration of kinetic abstract art and music or sound set in relation to each other. It includes visual music, abstract film, audiovisual performances
Unity HDRP の Camera の背景色をスクリプトで変更する
これだけなのに,HDRP ではない template のノリで backgroundColor 指定したら,全く動かなくて数時間を無駄にした. HDRP で Camera の背景色を変更したい場合には,以下のようにしましょう.
ライターの欲望と街の受容性について
上京してから早くも4年が経とうとしているのだけれども、都内で時を重ねれば重ねるほど、課題意識が膨らんでいくのが、ライティング周辺で起きていること。ライターの欲望に対する街の受容性については、ここ数年で何も進展が無いように感じる。 むしろ宮下公園のリーガルウォールが実現しなかったことを初めとした”逆行”とも言える話題は尽きない。 一方で、千葉の市原湖畔美術館でのSIDECOREの展示や美術手帖でのグラフィティ特集号は、芸術の制度の延長上で捉え直されつつあるポジティブな兆候であるとも言える。 上の写真はFranceに展示に行ったときに訪れた L'Aérosol 。 誰もが建物全体にライティングできるスポットで、ストリートカルチャーをテーマとした美術館も併設されており、パリ市民のカルチャースポットの一つとなっている。渋谷にもこういう場所がほしい。 "落書き"か"芸術"かを中心とした議論をよく耳にする。その議論の延長線上として、ライティングという行為の街の受容性の評価や、ライティングと都市の共存を都市計画へと組み込むための諸手法の整理は、まだまだ発展途上だ。 慎重な議論と整理が今後も必要であろう
Unity AR Foundation についてのメモ
はじめに 最近,慣れ親しんでいるUnity で AR コンテンツを作ってみたくなり,色々と下調べしたのでメモを載せておきましょう. 最終的にやりたいことは AR オーディオビジュアライゼーション。 前に投稿したLASPとVFXGraphでオーディオ・ビジュアル作る、みたいなことをARアプリで作ってみたいというのがモチベーションです (※ 2020/5/3時点で実現はできていません ⇒ 2020/5/6 無事完成) さて、UnityのAR開発環境についてですが,Unity ARKit Pluginが2019年6月で非推奨になったので,ARKit3 以降,Unity上でのAR開発は,AR Foundationを活用するのが良いでしょう. https://www.youtube.com/watch?v=dYlndpzNqwk AR Foundation とは AR Foundation自体は開発者へインターフェースを提供しているだけで,AR機能自体は実装していません.ARKit XR Plugin on iOS や ARCore XR Plugin on Android などは別途必要になってきます. で,どんなことできるのかというと、マニュアルにもあるように,以下のような技術を提供しているようです. World Tracking:現実空間内(物理空間内)でのデバイス位置の認識と向きの追跡をします.平面検出:水平面と垂直面を検出します.点群:特徴点を検出する.アンカー:デバイスが追跡する任意の位置と向きを検出する.Light Estimation:物理空間における平均的な色温度と明るさを推定する.Enviroment Probe:Unity 内にキューブマップを自動的に作成する.フェイストラッキング:人の顔を検出して追跡する.画像トラッキング:2D画像を検出して追跡する. 基調講演を見ると何ができそうか良い感じにイメージができますね. https://youtu.be/DUUthDpiGiA 公式からサンプルが公開されているので,慣れ親しむには,これを見ていくのがいいでしょう. 以下のようなサンプルが公開されています. 平面検知:Plane Detection環境光推定:Light Estimate画像トラッキング: Image Tracking物体トラッキング:Object Tracking空間共有:World Map顔認識: Face Trackingモーションキャプチャ:Body
音に反応する AR マスクをサクッとつくる | Audio Reactive FaceMask with AR Foundation
※ 2020/8/1時点での動作検証になります.今後の Unity のバージョンアップなどにより再現できない可能性が点はご留意ください. こんにちは.やっと梅雨が明けたようで,蝉も絶好調ですね. 1週前は早く梅雨明けてくれと項垂れていましたが,すでに夏の日差しに敗北しつつあり,さっさと秋にならないかなと思ったり・・ そういえば,1年前の夏に何をエントリーしていたか振り返ってみると,「」した.毎年,夏の到来後,早々に暑さに敗北している己はだいぶ虚弱です.数年後の夏とか,到来とともに死ぬのではないかと思ってしまう. まあでも,夏に Active に外で遊ぶのではなく,毎年,技術力 UP に集中して取り組めるのでそれはそれで良いのではないかと考えている. と,しょうもない前書きが長くなってしまったが,ここでは、Unity AR Foundation を使って Audio Reactive な AR マスクをつくる方法について触れます.Unity AR Foundation については、前に書いたこちらを参考までにご参照ください. やりたいことのおさらい では,早速,実装について触れていきましょう.と,その前にゴールとゴール達成のための検討ポイントを書いておきます(ここからの内容ですが,AR Foundation に慣れ親しんでいる前提で記載していきますので,不明点などあればお気軽にご連絡ください) 今回の検証環境は以下のような感じです. Unity:2019.3.0f6 PersonalAR Foundation:3.1.0 - preview.4ARKit XR Plugin:3.0.0 - preview.4ARKit Face Tracking:3.0.1検証機器:iPad Pro (第2世代)検証機器(OS version):iPadOS 13.6 今回のゴールは,「音量に応じて顔に貼り付けるテクスチャを変更する」です。 実装していくにあたって,巨人の肩に乗ってしまえということで,ベースのプロジェクトは Dilmer Valecillos さんの github にある「Face Tracking Generating
ゼロからはじめるUnityでVJ | 音に反応するパーティクルをVisual Effect Graphでつくる
※2020年時点での検証内容になるので、情報が古い可能性があります。 ここでは、Unity 2018.3からの新機能(プレビュー版)の「Visual Effect Graph」を活用したオーディオリアクティブなパーティクル芸について触れておきたいと思います。 ※ Visual Effect Graph(以下、VFX Graph)については、他サイトでも色々と概要が載っているのでここでは触れません。ご参考までに以下の2サイトを載せさせていただきます。 Unity公式:Visual Effect GraphUnityのVFXGraphでパーティクル芸やる方法 Visual Effect Graph × LASPという選択 次の動画は実際にVFX Graphを活用して作ってみた映像となります。 学生時代にProcessingで似たようなこと頑張っていた記憶が蘇りますが、VFX GraphはノードベースのGPUパーティクルシステムなのでサクッと美しいパーティクル芸ができるのがとても魅力的と言えるでしょう。 音に反応する映像とかをつくる際に前提として必須となるのが、映像と音の間の遅延が無いことでしょう。 が、実際にUnityの標準機能のみではどうしても遅延が気になってしまいます。 この課題に対して、Keijiro 氏が github で公開している低レイテンシのオーディオ入力を処理できるライブラリ LASP を活用するのが最も良い選択肢と言えます。 LASPを試してみたい方は、先程のリンクの github から git clone して実際にまずは脳死で動かしてみると良いかと思います。 https://vimeo.com/362935880 どうやっているのか Keijiro 氏の 他のレポジトリを参考にしてたのですが、私の場合は LASP の "AudioLevelTracker.cs" をアタッチして使う方法ではなく VFXGraph をコントロールするスクリプトを別途作成して、"VisualEffect.SetFloat("音に応じて反応させたいVFXのパラメータ名", LASPで処理した正規化済のオーディオレベル)"で音に応じたエフェクト操作をするようにしています。 ※現在は、変数のバインダーが標準で用意されており↑を準備しなくても大丈夫そうです。 "音に応じて反応させたいVFXのパラメータ名"は、今回のテストの場合には、VFX Graph内でパラメータとして定義しておき、Remapを介してSpawnノードの"Rate"、Update内の乱気流制御で"Intensity"、"Force"にそれぞれインプットするようにしています。 今後も「Visual Effect Graph × LASP」の合せ技は色々と使えそうです。 Reference LASP:Low-latency
ゼロからはじめるUnityでVJ |shaderによるシーン重畳について
※ 2019年時点での検証内容のため、内容が古い可能性があります。 ここでは、Shaderによるシーン重畳について触れていきたいと思います。 Unityで、一度、このような環境を作ってしまって、後はシーンさえ作り込めば、いい感じに映像をブレンディングすることができます!自分の場合、キーボード入力に応じてブレンドするシーンの選択をしていますが、ここをMIDIコントローラに近々変えたいなという感じです。 実現したいこと まずは、実現したいことを振り返っておきます. 前回の投稿「ゼロからはじめるUnityでVJ | 各シーンの映像をRenderTextureに書き出す」でも触れたのですが、最終ゴールは「音楽に反応して動的に変化する映像を手動入力により重ね合わせて表示する」です。 そのために、「オーディオに動的に反応する映像を作る」「各シーンの映像をRenderTextureに書き出す」「各シーンのRendertextureを重畳してスクリーンに表示する」の3点のサブゴールを設定しました。 ここでは、「各シーンのRendertextureを重畳してカメラ映像として描画する」の実現方法について、ざっと紹介したいと思います。 shaderで各シーンのRenderTextureを重畳表示する方法 さて、本題に入っていきます. 各シーン(以下、サブシーンと呼びましょう)をどのようにして重畳するのか? 基本的には、以下の3ステップで実現させます。 「サブシーンのRenderTextureをMainシーンで受け取りshaderに渡す」「shaderでサブシーンのRenderTextureを重畳する」「メインシーンのカメラに描画する」 サブシーンの RenderTexture を Main シーンで受け取り shader に渡す まずはこれですが、Mainシーンのカメラに以下のスクリプト(ここでは"MixCameraController.cs"とする)をアタッチします. 何をしているかと思うと、インスペクタで設定された RenderTexture を Shader の sampler2D(2次元テクスチャ)として扱えるようにしておきます。後々、任意の RenderTexture(shader 上では sampler2D)のみ shader でブレンディングするためにSetchannelGain 関数を用意しておきます。
ゼロからはじめるUnityでVJ | 各シーンの映像をRenderTextureに書き出す
※ 2019年時点での検証内容になります。 前回の投稿から、約2ヶ月が過ぎました。 気がつけばすっかり秋に。さてさて、真夏から秋の間、何もしていないかったわけではなく、UnityでVJ環境の構築を着々と進めまして、ほぼ終わりの状態が見えてきました。 制作を進める中でいくつかの Tips が見えてきたので、複数回に分けて、こちらに記録を残していこうと思います。 ここでは、前回の投稿でも触れていたように、Shader を活用したシーン重畳について紹介する前に「各シーンの映像をRenderTextureに書き出す」方法について触れておきます。 shaderでのシーン重畳については以下の先駆者の方のブログと github を参考にさせていただきました。 UnityでVJシステム作ってパフォーマンスした 全体構成の振り返り 手書きで適当に書いていた全体構成を書き直しました。 実現したいことを抽象化すると以下のようになります(実際には、サブゴールにぶら下がる形でいくつかの機能も実装しています) ゴール:音楽に反応して動的に変化する映像を手動入力により重ね合わせて表示。サブゴール1:オーディオに動的に反応する映像を作るサブゴール2:各シーンの映像をRenderTextureに書き出すサブゴール3:各シーンのRendertextureを重畳してカメラ映像として描画する これらのゴールを実現するために、先程の先駆者の方の知見を元に以下の構成でVJする環境を構築しました。 今回の投稿では、サブゴール2と3について解説したいと思います。 動作環境は以下のバージョンとなります。 2019.2.5f1 今回、構築した環境で各シーンを作り込むことで以下のような映像を作ることができます。 https://www.youtube.com/watch?v=BxDTxO8PEOg https://www.youtube.com/watch?v=X6zye_-oW-4&t=117s やりたいことはいくつかのシーンの映像を RenderTexture として書き出して、複数の RenderTexture を shader を使って重畳処理するということです。 では、どうやって実現するのか? ここでは Camera.targetTexture で取得したシーン内のカメラの映像を予め用意した RenderTexture に出力するスクリプト「Sub Scene Controller.cs」を書きました(下記をご参考に) シーンに「シーン名+Root」という空のオブジェクトを作成の上、カメラや他のオブジェクトをすべて「シーン名+Root」配下にした上で、「Sub Scene Controller.cs」を「シーン名+Root」にアタッチします. で、書き出したい映像を撮っているカメラと予め用意したRenderTextureをインスペクター上で「Sub Scene Controller.cs」に設定します。 各シーンのカメラ映像を書き出しする RenderTexture