OPSYN Vol. 1 – UE4 + OSC

English

新 VR Project: OOPSYN(最初のプロジェクト名)改めOPSYN(新プロジェクト名)

 

現在バークリー音大のフェローシップ(修士終了後の研究員制度、ポスドクのようなもの)で,VR(ヴァーチャルリアリティー)プロジェクト:OPSYN(オープシン:Out of Place Synthesizer, 「場違いなシンセサイザー」)に取り組んでいます。OPSYNはSci-Fi,サイバーパンクをモチーフとし,様々なタイプのインタラクティブなサウンド生成オブジェクト,バーチャル楽器から構成された音楽制作を行うことができるVRアプリケーションです。毎週プロジェクトの進捗をこのブログに掲載していきます。

大学院のプロジェクトではOOPSYN(ウップシン: 意味は同じ「場違いなシンセサイザー,Oops(ウップス)は英語を話す人がドジを踏んだ時,やってしまった的な感じで使われる間投詞として使われる。このプロジェクトのインスピレーションとしてオーパーツを題材としたのでOOPSYNと名付けました。僕はオープシンと呼びたかったのですが,ネイティブスピーカーはウップシンと発音するので,名前の通りやってしまった的な感じになりました。)を作りました。次のプロジェクトではオープシンといってもらえるよう一つOを省略し,OPSYNと改めました。

最初の作品はスペインの大学構内(大学自体がバレンシアのアート&サイエンスというミュージアムの施設の一部にある),レストラン(Club Tosca Llar(ヴァレンシア))やEspacio Fundación Telefónicaといった会場で展示,発表する機会をいただきました。以下はその時のイベントです。

なぜVRでの音楽環境に専念しているかというと,単純に面白くてわくわくするからです。現実では実現できないようなものなら,VRにおいては可能です。例えば手から炎を出すなど,映画・アニメのワンシーンに出てくるようなことが現実に近い感覚でできます。エンターテインメントは日々進化しており,音楽と向き合う価値観も多様化しています。従来のように受動的に音楽を聴いたり観たりしているだけでは物足りなさを感じる人もいるでしょう。なぜなら僕は人は本来主体的に行動をするプレイヤーだと思うからです。日常から抜け出し何らかの違った価値観を得るために,人は音楽コンサートやフェスティバル,劇場などへと足を運びます。音楽に合わせて踊ったり,パフォーマンスをしたりしてイベントに参加しますが,音楽的な面ではまだ主体的に参加するようなことはできません。僕は作曲をするので曲を作ってる時が聴いている時よりも楽しいです。VR音楽環境はそういった音楽にプレイヤーとして主体的に楽しむことを可能にするでしょう。

Software

フェローシッププロジェクトは,大学院で行った研究を引き続き継承していきます。しかし今回は色々な面を改良していきます:より分かりやすいインタラクション(Leap motionをコントローラとして使う),オーディオの実装方法をもっと学ぶ(Wwise, Unreal Audio Engine), ゲームエンジンの仕組みを理解し,アイデアを実現できるようにする。僕は今までいくつかのプロジェクトをUnityで行ってきたので,Unityのエンジンに慣れ親しんでいます。しかし今回はUnreal Engine 4 (以下UE4)で行おうと思います。UE4に対する色々な良い評判を周りから聞いていますし,コラボのお誘いをしてくれた方もUE4を用いていたので,前々からこのエンジンに興味を持っていました。また,Max/MSPのようなビジュアルスクリプティング(文字列ではなくブロックのようなものを組み合わせ,視覚的にプログラムする手段)に慣れているため,UE4のブループリント(Unreal Engineのビジュアルスクリプティングの呼称)には取り組みやすい印象を持っています。

基本的にUnityとUE4でできることは大体同じですが,UE4の方が同じタスクをするのにエンジンの機能だけ用いて,少ない(アセットのダウンロードなしに)スクリプティングでできるような印象があります。エンジニアに評判のいいUnityですが,アーティストにとってはUE4の方が自分だけでできる範囲が多いような気がします(実際にC++のコーディングなしにブループリントだけ用いてゲームを作成したアーティストもいます)。Unityで使われるC#ですが,C#はC++に比べて簡潔にスクリプティングを行うことができます。しかし,もしUnityネイティブプラグインを使ったり,作りたいといった場合はいずれC++の知識は必要になります。将来的には自分のオーディオプラグインをゲームエンジンに実装したいというゴールもあるので,UE4でのゲーム作成方法を学びながらC++を学ぶのはいい手段だと思います。またゲームやインタラクティブメディアの作曲家・サウンドデザイナーとしてはUnityとUE4のどちらも最終的には学ぶことになると思います。

サウンドエンジンに関してですが,当初OPSYNではオーディオをゲームエンジン内で全て処理できるようなことを考えていました。Libpd(Pure Dataを他のアプリケーションに実装できるライブラリ)のようなものを使えば,自分で作成した楽器をゲームエンジン内に移植することができますが,最新の情報が少なく,まだまだ実験的な段階です。このプロジェクトの目標はVRに置ける音楽の体験の可能性を探すことが目的で,他のサウンドエンジンを移植する方法を見つけ出すことではありません。Libpdの代わりに,UE4のオーディオエンジン,Max/MSPやWwise(オーディオミドルウェア)を用いて,VR音楽の可能性を導き出していきたいと思います。Cycling ’74 (Max/MSPの開発元)がゲームエンジンに移植する方法を研究しているなどとも噂されています。また,いくつかの会社がゲームのためのオーディオエンジンを開発したりしています−TsugiのGame Synth やUnrealの新オーディオエンジンなどはその例です。ゲームエンジンようのオーディオの開発(もしくは自分でネイティブプラグインを作る)がもう少し進むまで,DSP(デジタル信号処理,オーディオエフェクトなどの処理)に関する知識をもっと身につけ,アートの側面(作曲やサウンドデザイン)を現在のツールでできる範囲で表現する方法を模索していこうと思います。

OSC (Open Sound Control,オープンサウンドコントロール)

先ほども述べたように基本的にUnityとUE4でできることは同じです。ただ,なぜかOSCに関する情報はUnityの方が多いようです。OSC(Open Sound Countrol, オープンサウンドコントロール)はサウンドシンセサイザー,コンピュータ,その他のマルチメディア機器を繋ぐためのプロトコルで,主に演奏やショーのコントロールに使われています。ネットワーク上を通して他のアプリケーション同士で情報をやり取りすることができます。これを使えばUE4とMax/MSPやTouch OSC(iOSアプリケーション)同士を繋げることができます。最初のプロジェクトOOPSYNでもこのプロトコルを用いて, Max for liveを経由し,Ableton Liveを操作したりしました。今回UE4での実装を試しましたが,結果として同じようにOSCを使うことが出来ました。

UE4はネイティブでOSCに対応していないのでプラグインをインストールする必要があります。こちらのプラグインを使いました。

ビデオのチュートリアルも用意されています。

新しいバージョンのOSCでは何点か変更があり,ビデオのチュートリアルのようにはいかないこともありました。新しいバージョンでは自動的に全てのパッチをコンバートする機能がなくなり,下の画像(Fig.1)のようにAddressからFormat Textのブロックに繋げる際に,一旦ToTextというものでテキストに変換する必要があります。

Fig.1 New UE4 manual conversions

Max/MSP,TouchOSCともなんとか通信をすることが出来ました。Maxのパッチは下の通りです。(Fig.2)

 

Fig.2 Max OSC patch example

Send OSCを用いて,UE4のデフォルトポーの位置情報をMax/MSPへ送信することが出来ました。(Fig.3)

ビデオチュートリアルにあるようなStringのメッセージを送ることは,同じコンピュータ上,Wifi上の他のデバイスにも送れたのですが,なぜかSend OSCを用いて位置情報を他のデバイスに送ることは出来ませんでした(同コンピュータ内で送受信は出来た)。今それに関しては解決中です。ただこのプロジェクトで二台のコンピュータを使う必要はないので,今のところは一台でできれば問題ないです。

次回までに,このプロジェクトのGitレポジトリの方も作成しておきます。