#### 2022.4.14
# Research - UE Stage Performance Control
## 1. 目的、背景
UEには標準で基本的なステージ演出が可能な機能が備わっておりその制御も用意されている。
しかし、実際にそれらを利用してステージ演出を行っていると制御部分について扱いやすさ・再利用性等が不十分であるように感じることも多い。
そこで今回、UE上でのステージ演出コントロールの最適化について調査・検証・開発を行った。
### UE標準のArt-Net機能
UEでは標準でステージパフォーマンス用デバイスの制御プロトコルのArt-Net(https://art-net.org.uk/)を利用することができ、UE上で動作する基本的な舞台演出機器も標準で搭載されている。
DMX機能Overview(https://docs.unrealengine.com/5.0/ja/dmx-overview/)
純正機能のみで以下のような演出が可能
<iframe width="640" height="360" src="https://www.youtube.com/embed/PotroTeL1lE" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Art-Netは一般に使われる汎用規格のためUE内と同様の機材を実空間に配置してネットワークに繋げば現実でも同様の演出が可能となり得る
---
## 2. 検証内容
### 検証済み手法
#### UE内完結制御
1. UE標準のSequencer
2. 自動制御
#### 外部コントローラー
3. 舞台演出制御用ハードウェア
4. 舞台演出制御用ソフトウェア
5. DAWソフト
### 未検証な手法
#### 外部コントローラー
6. 舞台演出制御用ソフトウェア自作
7. MIDIコントローラ
---
## 3. 検証結果
### UE内完結制御
###### メリット
- 信号変換を挟む回数が極力少なく安心感がある。
- 色々他のツールを用意する必要がなく準備が楽。
###### デメリット
- UE前提の制御方法になる。(実空間や他のソフトで演出を流用したいとなった場合でもUEのコントロールをシステムに入れることになる。)
#### 1. UE標準のSequencer
UEに標準で用意されていてUE上のステージ演出機器を制御する際も利用が想定されている機能
https://docs.unrealengine.com/4.27/ja/AnimatingObjects/Sequencer/Overview/
標準だとSequencerからArt-Netを送信してUE内DMX機器がそれを受け取ることで動作
```mermaid
flowchart LR
A{UE\nSequencer}
A -->|Art-Net|A
A -->|Art-Net|B[Real Stage]
```
<iframe width="640" height="360" src="https://www.youtube.com/embed/jxgKgsTLT-8" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
###### メリット
- 即応性が高いように感じる
- キーフレーム編集の性質が人によっては直感的
- タイムライン上でのキーフレーム構成の視認性が良い
- Sequencerで制御されている他の機能と連携がしやすい
- キーフレームやSubSequenceのタイムストレッチが可能なため照明パターンを作っておいて異なる曲で再利用すること等が可能
###### デメリット
- Sequencerへの慣れが必要
- 再利用性が高いわけではないかもしれない。
- 上述のタイムストレッチに癖があるため、照明パターンを違う曲等の間で再利用する際の調整が面倒かもしれない。
- UEの再利用機能(Migrate機能等)に癖があって使いづらいかもしれない。(依存・参照関係でもしかしたら躓くかもしれない。)
- UIが洗練されているかは疑問であり、ガッツリ打ち込む場合に時間がかかるかもしれない。
#### 2. 自動制御
ゲームエンジンとしてのUEの特性を活かして3Dベースのインタラクティブな演出機器制御を行う。
今回は以下の機能を持つActor ReactiveなMoving Head Lightを作成した。
(DMX Receive, Send等のUE製DMX機器の標準機能もサポート)
- 設定されたUE内Targetを追従するようにPan&Tiltが自動更新される機能
- 設定されたUE内Targetの距離に応じてZoom値が自動更新される機能
- 親に設定したMoving Head Lightにパラメータが自動追従する機能
- 自動更新するパラメータを反転させる機能
- パラメータの自動更新に遅延を設定する機能
```mermaid
flowchart LR
A[UE\n開発したこのDMX機器の動作にArt-Net通信は必須ではない]
A -->|Art-Net|B[Real Stage]
```
<iframe width="640" height="360" src="https://www.youtube.com/embed/E_rqMjVP_jo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="640" height="360" src="https://www.youtube.com/embed/aO92zt4UUPI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="640" height="360" src="https://www.youtube.com/embed/8XuVVA122Jc" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
###### メリット
- コントローラーを用いての制御では不可能な3Dベースならではの表現・演出ができる
- 打ち込み等の手間が少なくなる可能性がある
- 取り合えず動かしてみる、等で予想外の表現・演出が生まれる可能性がある
- (Art-Netを挟まなくても使えるため通信の問題等が起こりにくかったりするかも)
###### デメリット
- 開発しなければならない可能性が高い
- 完全にコントロールしようとするのは難しい可能性が高い
なお、このUE内DMX機器からArt-Net送信をすることで以下のように実空間ライティングのトラッカーへの自動追従を行う等の応用も考えられる。
<iframe width="640" height="360" src="https://www.youtube.com/embed/vo-RscQhklk" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
---
### 外部コントローラー
基本的にはArt-Netでの制御を想定
(UEの制御のみ前提であれば、開発すればOSC等の他の通信規格でも制御可能)
```mermaid
flowchart LR
A[HARDWARE Disital Controller\ngrandMA3, ChamSys, AVO, etc]-->|Art-Net|B[UE]
A --> |Art-Net|C[Real Stage]
```
###### メリット
- 実空間、3D空間の区別なく共通の演出として運用可能
(UEをあくまでシミュレーターとして考えることができる。)
- コントローラーによってはUE標準のSequencerより演出制御の面で最適化されている
- ツール・制作方法の幅が広く、柔軟性が高い
- 信号変換を挟む回数が極力少なく安心感がある。
###### デメリット
- 色々ツールを用意する必要があるかもしれず、準備が煩雑になり得る。
- 信号変換を挟む回数が多くなったりすると問題が生じた場合の原因特定が困難になり得る
- 新しい手法を導入する際など検証は必須
- 特殊なツールを組み込んだり複雑化させすぎるとガラパゴス化し得る、かも。
#### 3. 舞台演出制御用ハードウェア
基本的にはgrandMA3などの舞台演出用デジタル卓を想定
ちなみに冒頭動画内のステージ演出はgrandMA3による打ち込みで制御されたもの
###### メリット
- 演出制御のためのインターフェースとして実働のなかで洗練・最適化されており機能に不足が少なく、習熟が作業効率に強く反映する、らしい
- 実空間でのステージ演出の資産(人材、既存シーケンスデータ等)がそのまま活用できる。
###### デメリット
- 機材が高い
https://www.urakataya.com/product/8490
https://www.urakataya.com/product/8483
https://www.urakataya.com/product/8498
https://www.urakataya.com/product/14677
- デカい。場所を取る。
- ステージエンターテインメントの現場で望まれ得る多彩な表現と制御ができる分、習熟に比較的時間がかかる可能性が高い
#### 4. 舞台演出制御用ソフトウェア
Art-Netコントロールが可能で一般に利用可能なソフトウェアの利用検証
```mermaid
flowchart LR
A[Software Controller\nQLC+, etc]-->|Art-Net|B[UE]
A --> |Art-Net|C[Real Stage]
```
今回はQLC+(https://www.qlcplus.org/)を想定
他にもluminet Monitor(https://www.luminex.be/%E8%A3%BD%E5%93%81%E6%83%85%E5%A0%B1/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2/offline-editor-2/?lang=ja)など
<iframe width="640" height="360" src="https://www.youtube.com/embed/L8csr6Nbxac" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
###### メリット
- 簡単にArt-Net通信の送信テストができる
- 簡単にArt-Net通信の受信モニタリングができる
- ソフトウェアによってはプロトコルの変換機能を利用できる
(「MIDI -> Art-Net」や「OSC -> Art-Net」等)
###### デメリット
- 大規模なシーケンスを組んだり複雑な制御をするには向かない
#### 5. MIDIシーケンサーソフト
仮想MIDIポートとMIDI->Art-Net変換ソフトを併用することでDAW(音楽編集ソフト)などのMIDIシーケンサー上の打ち込みでステージ演出の制御ができる。
```mermaid
flowchart LR
A[Controller\nMIDI Sequencer soft, DAW] -->|MIDI|B[MIDI to Art-Net Converter\nQLC+, Max/MSP, etc]
B -->|Art-Net|C[UE]
B -->|Art-Net|D[Real Stage]
```
検証で使用したソフトウェアは以下
- loopMIDI(Windows用仮想MIDIポート)
- QLC+(MIDI->Art-Net変換機能が備わっておりそれを利用。結果的には以下に変更)
- Max/MSPで作成したMIDI->Art-Net自作Converter「midi2artnet」
Art-NetライブラリとしてIMP.DMX(https://www.theimpersonalstereo.com/impdmx)を利用

QLC+だとMIDI->Art-Netのマッピングの柔軟性がなく検証用としても使いづらかったため作成。
デフォルトのマッピングはQLC+準拠(https://www.qlcplus.org/docs/html_ja_JP/midiplugin.html)
- MIDIシーケンサーソフト
- Ableton Live
- Domino
<iframe width="640" height="360" src="https://www.youtube.com/embed/D5bTKtn9UAQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="640" height="360" src="https://www.youtube.com/embed/Kkh95cpRnzM" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="640" height="360" src="https://www.youtube.com/embed/6t9ukostRF0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
###### メリット
- 時間軸ベースの編集ツールとして洗練されており、曲に合わせた構成作成と打ち込みのやりやすさが期待できる
- 打ち込んだものを素直にタイムストレッチできるなど再利用性が高い
- 基本的に好みのDAWを利用できる
- MIDIコントローラとの連携も整備されているケースが多く打ち込みに利用できる
###### デメリット
- MIDIでは1チャンネルで扱えるパラメータが0\~127の128段階となるため、それ以上の数値で制御する際は工夫が必要となる(Art-Netの1チャンネルで扱えるパラメータは0\~255の256段階)
- DAW打ち込みへの慣れが必要
- Piano Rollで打ち込む場合、Art-Net channelが分かりにくい可能性がある。
(Piano Rollの表示が基本的にはC1,D1等といったNote name表示のため)
- UE内のSequenceと綿密な連携を行う場合はDAWからの信号を一度Sequencerにレコーディングしたほうがやりやすいケースがあり得る。
なお、MIDIシーケンサーとしてDAW「Ableton Live Suite」を利用する場合、「Max for Live (M4L)」(https://www.ableton.com/ja/live/max-for-live/)という機能でDAWを拡張することで、シーケンサー上で扱う数値を128段階ではなく256段階とする機能や、仮想MIDIポートとMIDI->Art-Net変換ソフトを挟むことなく直接Art-Netを送信できる機能を追加することができる。
---
## 4. 未検証な手法について
### 外部コントローラー
#### 6. 自作Art-Net Controller
自由にデータを選んでArt-Net制御が可能
Max/MSPで作成する際は上述の「midi2artnet」のmidi受信部分を削って好きにパラメータをArt-Net出力すればよい。
C++で作成したければlibartnet(https://www.sugakoubou.com/doku/libartnet)というものがあるらしい。
Openframeworks(https://openframeworks.cc/ja/)を活用するならofxArtnet(https://github.com/hiroyuki/ofxArtnet)が最近でも更新されており有用である可能性が高い。
UEの活用の有無関係なくインタラクティブにDMX機器を制御する際は基本的に考えられるシステム
(この場合UEはコントローラにもVisualizerにも使える。)
```mermaid
flowchart LR
A[Controller with UI or Sensor\nMax/MSP, touchdesigner, C++, python, etc]
A -->|Art-Net|B[UE]
A -->|Art-Net|C[Real Stage]
```
#### 7. MIDIコントローラ
照明卓を高価なため、MIDIコンを代替品にして照明制御を行うという発想
上述の自作Art-Net ControllerのInput部分をMIDIコンにすれば実現可能
```mermaid
flowchart LR
A[MIDI to Art-Net Converter\nQLC+, Max/MSP, touchdesigner, C++, python, etc]
1[Hardware MIDI Controller]-->|MIDI|A
A -->|Art-Net|B[UE]
A -->|Art-Net|C[Real Stage]
```
---
## 5. 結論
タイムラインベースで演出を組む際は以下の3択が比較的有用
- UE純正Sequence
- MIDIシーケンサー
- (照明用デジタル卓)
センサーを用いてArt-Netコントロールするなどインタラクティブなコンテンツを作成する場合は以下のパターンを採用する等が考えられる。
- 自作Art-Net Controller
- Actor ReactiveなUE内自作DMX機器でVisualizationもしくはArt-Net制御