なるように、なる

徒然なつぶやき、備忘録です。

UE4でVJした話

1月にUE4でVJをした記録。

Live

MV

www.youtube.com

作成の背景

live出演依頼

2020年12月25日、ToruIzumidaさんから「ライブに出てみない?」とのお誘いあり。 初めてのライブ出演というクリスマスプレゼントでした。深く考えずに快諾。

ドローンアンビエント&方針転換

今回コラボして頂いたKiyoIgarashiさんの作風はアンビエントということで、 年末年始にTouchDesignerでアンビエント向けのスケッチを作成しました。 しかし、それ以上続けてもライブ向けに膨らむ気がしなかったため、思い切ってUE4での制作に変更。 これは、以下2つが判断理由。

  • アンビエントUE4の綺麗な風景映像の相性の良さ
  • 他の出演者がTouchDesignerが多そうだったので、UE4でのライブなら差異を出せるかも、という邪な考え

構成

UE4

シーン作成し、そのままstandalone gameモードで映像出力。
本当はTouchDesignerに映像返してCompositした映像を出そうとしていたが、後述の性能問題により断念。

TouchDesigner

シーンごとのカメラパスの生成、シーン切り替え、各種パラメタのコントローラ。
OSCでUE4に送信。

UE4でトライしたこと

OSC制御

カメラ制御

比嘉さんのワークショップで頂いたモジュールを利用。
UE4.25向けだったので、UE4.26向けにリビルドする必要があった。

その他パラメタ制御向け

チュートリアルを参考に勉強した。
おかげさまでBluePrintと仲良くなれた。

Water

UE4.26で利用可能になったプラグインを利用。
非常に簡単で美しいが、やや重い。今回の制作の半分くらいはWaterのパラメタ調整と性能問題の調査をしてたかも。

Ultra Dynamic Sky

超有名アセット(らしい)。
太陽、月、星、空、雲、Fog、オーロラなど、設定がまとまっててすごい楽になった。

Niagara

TouchDesignerと連動できるところまで作ったが性能問題によりカット。 無念。

ハマったこと

性能

メモリとGPUが枯渇し、レンダリングが間に合わない事態に。
性能を考慮した制作を出来ていないのだけれども、去年PCを新調するときに「今の実力ならこんなところ(16GB, 1660Ti)かな」と判断したことを後悔。

SceneCapture2D

制作の途中、TouchDesigner側に送られてくる映像が変(Waterがレンダリングされていないなど)という事象が発生。
UE4側の映像は問題ないのに。

調べたところ、カメラ画像をSpoutで送る際に利用しているSceneCapture2Dが要因のようで、これは再レンダリングを実施しているらしい。
そのため、軽い絵だったら問題ないが、重くなると送信している絵の方だけレンダリングが間に合わない、という事象がでていたっぽい。

解決策として、再レンダリングを伴わないFrameGrabberを利用する方法を模索していた。
しかし制作が間に合わないリスクがあったので、映像はUE4だけでいくことにした。

Water

レンダリングが間に合わなくて顕著に影響を受けてたのがWater。 波のシミュレーションがカクついたり、水面反射がレンダリングされなかったり。
(ライブの当日に現場で泣いた)

UE4.26でのOSC受信 from TouchDesigner

ちゃんと理解していないが、UE4側のOSC受信が変更(厳密化?)されたっぽく、OscOutChopで送ったデータがUE4で受信できなくなった。 OscOutDatで送信するとUE4側で受信してくれる。

Akiyamaさんに教えてもらわなかったら制作間に合わなかったもしれない。大感謝。

forum.derivative.ca

おわりに

自分にとって、はじめて締め切りのある制作だった。
フォローさせてもらっている本番一発勝負な製作者様たちに対する尊敬の念が高まりました。
一歩でも近づけるよう、引き続き精進します。