カディンチェ社内では常に技術開発や検証に積極的です。そうした部分から技術的な備忘録を残す「テックブログ」の文化もあります。
今回はそのテックブログに蓄積されている中の一つ、バーチャルブロダクション事業の中での検証の「UEを利用したDMXのカスタマイズ」に関しての記事をWantedlyにてご紹介します!
目次
- 概要
- 使用環境と灯体
- 事前準備
- 1.Unreal Engine 5.3で空のプロジェクトを作成しDMX Pluginを有効化
- 2.BP_MovingHeadをコピーしシーンに追加
- 3.QLC+からDMX信号を発信し、ArtNet経由でUEのDMX Pluginで受信
- ゴボホイールの変更手順
- 1.ゴボテクスチャの準備
- 2.ゴボテーブルの編集
- 3.ゴボディスクの作成:ツールを使用してディスクを作成
- 4.DMX Gobo Wheelの設定変更
- カラーホイールの変更手順
- 1.カラーホイールテーブルの編集
- 2.カラーディスクの作成:ツールにバグあり?
- 3.DMX Color Wheelの設定変更
- 手順完了
- 試行錯誤を振り返り
- まとめ
概要
Unreal Engine内で実機のムービングライトを設定し、照明を連動させる方法を解説します。特に、BP_MovingHeadを使用して、実機のゴボホイールとカラーホイールに合わせる手順を説明します。WebやYoutubeで見かけなかったので手探りで設定したことをまとめています。
https://www.youtube.com/watch?v=tEqO6-x1_aE
※動画の通り動作速度や色・ゴボ角度の一致調整は未対応です(今後)
使用環境と灯体
- Unreal Engine: ver 5.3 & DMX Plugin
- 照明制御: Q Light Controller Plus (QLC+)
- 実機灯体: AMERICAN DJ STINGER SPOT (StingerSpot)
- UE内灯体: DMX FixturesのBP_MovingHead
事前準備
1.Unreal Engine 5.3で空のプロジェクトを作成しDMX Pluginを有効化
- プラグインの設定でDMX Plugin類にチェックを入れ再起動します。
- DMX Pluginの導入設定は、公式のドキュメントや他の方がまとめていただいている記事や動画を参考にしてください。
2.BP_MovingHeadをコピーしシーンに追加
- Engine/Plugins/DMX_Fixturesコンテンツ/LightFixturesにあるBP_MovingHeadをコピーしBP_MovingHeadStingerに名前変更します。
- 任意のフォルダに移動し、シーンに追加します。
3.QLC+からDMX信号を発信し、ArtNet経由でUEのDMX Pluginで受信
- 今回はUE外部から照明制御をしたいのでQLC+からDMX信号を発信し、ArtNetを経由してUEのDMX Pluginで受信する構成としています。
- QLC+にStingerSpotを機器登録し、チャンネルを割り当てます。 StingerSpotは9チャンネル仕様を設定します。DMXチャートは製品マニュアル(日・英)を参照します。
- QLC+を使わずに、UEのDMXConsoleからDMX信号を送信する構成もOKです。
以下のような状態になれば、準備OKです。
・レベルにBP_MovingHeadStingerが追加されている
・DMXで BP_MovingHeadStingerが動いている
ゴボホイールの変更手順
1.ゴボテクスチャの準備
- StingerSpotの各ゴボ、1枚ずつpngで用意します。今回はメーカ製品サイトからゴボテクスチャを作成しました。
- デフォルトのゴボテクスチャは520×520ですが、サイズは1:1で使用できるようです。コンテンツフォルダの任意のフォルダに追加します。
作成したゴボのpngファイル
2.ゴボテーブルの編集
- Engine/Plugins/DMX_Fixtures/LightFixtures/EffectTableフォルダにあるGoboWheel_Tableをコピーします。
- 名前をGoboWheel_Table_Stingerに変更し任意のフォルダに保存します。
- GoboWheel_Table_Stingerを開き編集します。今回はStingerSpotの9chで設定します。製品マニュアル(日・英)のDMXチャートの通り、ValueとFixturesをテーブルに登録します。※今回はSHAKEはなし、固定のSWAPと、Rotationのみ入力しています。
https://www.youtube.com/watch?v=sx0Ta19Y-Yw
3.ゴボディスクの作成:ツールを使用してディスクを作成
- Engine/Plugins/DMX_Fixtures/LightFixtures/Toolsを開きます。
- BakeDiskTexturesにカーソルを合わせて右クリックメニューを開きウィジェットを実行します。
- 作成したEffectTableをコンテンツブラウザ上で選択し、『Pick』を押します。Disk作成先を指定し『CreateGoboDisk』を押します。指定したフォルダにCleanDiskとFrestedDiskが作成されます。
https://www.youtube.com/watch?v=EmsezgDJWXM
4.DMX Gobo Wheelの設定変更
- アウトライナーでBP_MovingHeadStingerを選択し、詳細/GoboWheel_Componentで、『ブループリントで編集』を開きます。
- GoboWheel_Componentを選択し、DMX Gobo Wheelの詳細設定で、Effect Table、Clean Disk、Frosted Diskの項目に作成した各ファイルを適用します。
※アウトライナー上で適用すると、GamePlay中は適用されますが、シミュレーション停止時はデフォルトDiskが適用されるため、ブループリントのコンポーネントを編集しました。
https://www.youtube.com/watch?v=Qgfpuujn50E
カラーホイールの変更手順
1.カラーホイールテーブルの編集
- Engine/Plugins/DMX_Fixtures/LightFixtures/EffectTableフォルダにあるColorWheel_Tableをコピーします。
- 名前をColorWheel_Table_Stingerに変更し、任意のフォルダに保存します。
- ColorWheel_Table_Stingerを開いて編集します。StingerSpotの9ch設定にします。製品マニュアル(日・英)のDMXチャートの通り、ValueとFixturesをテーブルに登録し保存します。※今回は固定のSWAPのみにしています。
https://www.youtube.com/watch?v=CRheA5XzI9Y
2.カラーディスクの作成:ツールにバグあり?
- GoboWheelと同様にToolsでColorWheelDiskを作成すると、UE5.3.2ではクラッシュします。UE5.1ではDiskテクスチャが一応作成されるのでバージョンのバグかと思われます。
- ペイントツールなどでColorDisk(.png)を作成します。
- 任意のコンテンツフォルダにカラーディスクにするpngを追加し、ダブルクリックして詳細を開きます。
- 圧縮設定をVectorDisplacementmap(RGBA8)に変更して保存します。圧縮設定を変更しないとクラッシュが続きました。
テクスチャの圧縮設定を変更する
3.DMX Color Wheelの設定変更
- アウトライナーでBP_MovingHeadStingerを選択し、詳細/ColorWheel_Componentで、『ブループリントで編集』を開きます。
- ColorWheel_Componentを選択し、DMX Color Wheelの詳細設定で、Effect Table、Color Diskの項目に作成した各ファイルを適用します。
- ColorArrayを『非表示』から『表示』に変更しておくと配色設定を確認しやすくなります。(非表示のままでもOKです)
https://www.youtube.com/watch?v=6bu2V15Qk0E
手順完了
BP_MovingHeadのゴボホイールとカラーホイールを実機同様に変更完了です。概要にある完成イメージのように連動出来ました。
その他に調整が必要な項目は、モーター動作速度、色合わせ、ゴボ角度、光収束感などがあります。
これらは実機灯体が設置された状態で調整していくのが望ましいです。どのパラメータで調整できるか今後確認したいです。
試行錯誤を振り返り
初めてムービングライトの電源を入れた&Unreal Engineも正直わからないところからスタートしたので試行錯誤でした。例えば以下のような点でつまづきました。
・Componentのプレイと停止時の挙動の違い
・ColorWheel関連、テクスチャの圧縮設定で起こるクラッシュ
・Diskの作成方法(最終的にToolsがあることに気が付いた)
以上でBP_MovingHeadを利用したカスタマイズの紹介は終わりです。
まとめ
カディンチェではバーチャルブロダクション関連で社内で蓄積されたテックブログもいくつかあり、これらもWantedlyに少しずつ紹介できればと思います。今後ともぜひカディンチェのWantedlyをよろしくお願いします!