LightSync DMX は、Unreal Engine のバーチャルプロダクション (VP) において、 UEシーン内の光の色味と実際のLED照明の色を一致させるためのプラグインです。
VP撮影時、UEのバーチャル背景から放たれる光と、スタジオのLED照明の色味が一致しないため、 被写体への照明が不自然になる。
シーン内に「光を吸収するプローブ」を配置し、その位置での周囲光の平均色を リアルタイムでサンプリング → DMX信号として送信 → 実際のLED照明に反映。
UEシーンの光源
↓
┌─────────────────────────┐
│ LightProbeActor │ ← シーンに配置する光プローブ
│ ┌───────────────────┐ │
│ │ SceneCaptureEcube │ │ ← 360°キャプチャ
│ └─────────┬─────────┘ │
│ ↓ │
│ ┌───────────────────┐ │
│ │ LightColorSampler │ │ ← 平均色を算出
│ └─────────┬─────────┘ │
│ ↓ │
│ ┌───────────────────┐ │
│ │ DMXColorOutput │ │ ← DMX信号に変換して送信 (同一PC)
│ └───────────────────┘ │
│ ↓ │
│ ┌───────────────────┐ │
│ │ OSCColorOutput │ │ ← OSCで別PCに色データを送信
│ └───────────────────┘ │
└─────────────────────────┘
↓ (Art-Net / sACN) ↓ (OSC over Network)
LED照明器具 別PC (QLC+ / DasLight)
↓ (DMX変換)
LED照明器具
| パス | ユースケース |
|---|---|
| DMX直接 | UEのPCにDMXインターフェースが接続されている場合 |
| OSC経由 | UEのPCとDMX制御PCが別マシンの場合 (QLC+, DasLight等) |
- シーンに配置するメインのActor
SceneCaptureComponentCubeで360°の環境光をキャプチャ- 色補正機能 (ガンマ、色温度、彩度、明度)
- エディタ上で視覚的にプローブ位置を確認可能
- CubeMapレンダーターゲットからピクセルデータを読み取り
- ダウンサンプリングで効率的に平均色を算出
- EMA (指数移動平均) によるスムージングでちらつきを抑制
- HDRクランプと暗部閾値による精度向上
- UE DMXProtocol プラグインを使用してArt-Net / sACN で送信
- 複数のフィクスチャへの同時出力対応
- カラーモード: RGB, RGBW, RGBAW, Dimmer+RGB, CCT+Brightness
- フィクスチャ毎の個別ブライトネス調整
- ネットワーク経由 で別PCの照明ソフトに色データを送信
- QLC+ 互換モード:
/lightsync/{probe}/r,/lightsync/{probe}/g,/lightsync/{probe}/b[int 0-255] - DasLight 互換モード:
/dmx/{universe}/{channel}[int 0-255] - 汎用 Float RGB / Int RGB255 / RGBA / カスタムアドレス
- 複数ターゲットへの同時送信対応 (異なるPCに同時送信可)
- バンドルメッセージ対応 (R/G/Bを1パケットにまとめて送信)
- ワールド内の全プローブを一括管理
- マスターディマー、一括ON/OFF、ブラックアウト
- Blueprint/C++ から統一的にアクセス可能
- LightSync Monitor ウィンドウ: Window → Virtual Production → LightSync DMX Monitor
- リアルタイムでプローブ状態、色、DMXチャンネルを確認
- マスターコントロール (一括有効/無効、ブラックアウト、ディマー)
- UEプロジェクトの
Pluginsフォルダに本プラグインをコピー - Edit → Plugins で以下を有効化:
- LightSync DMX
- DMX Protocol (依存プラグイン)
- DMX Engine (依存プラグイン)
- OSC (依存プラグイン - OSC出力使用時)
- エディタを再起動
- Project Settings → Plugins → DMX Protocol で出力ポートを設定
- Art-Net の場合: IPアドレスとサブネットを設定
- sACN の場合: Universe範囲を設定
- DMX Library アセットを作成 (任意)
- LightProbeActor の Details パネルで:
- Use DMX Output を
falseに (同一PCでDMXも送る場合はtrueのまま) - Use OSC Output を
trueに
- Use DMX Output を
- OSC Output → Targets で送信先を設定:
- IP Address: QLC+ / DasLight が動作するPCのIPアドレス
- Port: QLC+ OSCプラグインのポート (デフォルト: 7700)
- Format: 照明ソフトに合わせたフォーマットを選択
- QLC+ の Input/Output Settings で OSC プラグインを有効化
- Input ポートを本プラグインの送信ポートに合わせる
- フォーマット:
QLC+ Compatibleを選択 - OSCアドレスをQLC+のチャンネルにマッピング
- DasLight の OSC 受信ポートを確認
- フォーマット:
DasLight Compatibleを選択 - Universe と Start Channel を DasLight の設定と一致させる
- Content Browser → LightSyncDMX → Place in Level または Place Actors パネルから "Light Probe (DMX)" を検索して配置
- プローブの Details パネルで設定:
- Probe Name: 識別名
- Capture Resolution: キャプチャ解像度 (64推奨)
- Sampling Rate: 更新レート (30Hz推奨)
- LightProbeActor → DMX Output → Fixture Mappings
- 各フィクスチャに対して:
- Universe: DMXユニバース番号
- Start Channel: 開始チャンネル
- Color Mode: 照明器具に合わせたモード
- Brightness Scale: 個別の明度調整
- LightProbeActor の Color セクション:
- Gamma Correction: 2.2 (sRGB標準)
- Color Temperature Offset: LED照明との色温度差を補正
- Saturation Multiplier: 彩度の調整
- Brightness Multiplier: 全体の明度調整
// 全プローブを取得
LightSyncBPLibrary::GetAllLightProbes(WorldContext)
// 一括制御
LightSyncBPLibrary::SetAllProbesActive(WorldContext, true/false)
LightSyncBPLibrary::BlackoutAllProbes(WorldContext)
LightSyncBPLibrary::SetMasterDimmer(WorldContext, 0.8)
// 色変換ユーティリティ
LightSyncBPLibrary::LinearColorToDMXValues(Color, R, G, B)
LightSyncBPLibrary::DMXValuesToLinearColor(R, G, B)
| 設定 | 推奨値 | 備考 |
|---|---|---|
| Capture Resolution | 64 | 色の平均なので低解像度で十分 |
| Sampling Rate | 30 Hz | 映像と同期する場合はフレームレートに合わせる |
| Downsample Resolution | 8 | CPU読み取りピクセル数を制限 |
| Smoothing Alpha | 0.3 | 低い = よりスムーズ、高い = よりレスポンシブ |
1プローブあたりの GPU コスト: ~0.1ms (64x64 CubeMap) 1プローブあたりの CPU コスト: ~0.05ms (SmoothStep + DMX送信)
| モード | チャンネル数 | 内容 |
|---|---|---|
| RGB | 3 | R, G, B |
| RGBW | 4 | R, G, B, White |
| RGBAW | 5 | R, G, B, Amber, White |
| Dimmer+RGB | 4 | Dimmer, R, G, B |
| CCT+Brightness | 2 | 色温度, 明度 |
LightSyncDMX/
├── LightSyncDMX.uplugin
├── README.md
└── Source/
├── LightSyncDMX/ (Runtime Module)
│ ├── LightSyncDMX.Build.cs
│ ├── Public/
│ │ ├── LightSyncDMXModule.h
│ │ ├── LightProbeActor.h
│ │ ├── LightColorSamplerComponent.h
│ │ ├── DMXColorOutputComponent.h
│ │ ├── OSCColorOutputComponent.h
│ │ ├── LightSyncSubsystem.h
│ │ └── LightSyncBlueprintLibrary.h
│ └── Private/
│ ├── LightSyncDMXModule.cpp
│ ├── LightProbeActor.cpp
│ ├── LightColorSamplerComponent.cpp
│ ├── DMXColorOutputComponent.cpp
│ ├── OSCColorOutputComponent.cpp
│ ├── LightSyncSubsystem.cpp
│ └── LightSyncBlueprintLibrary.cpp
└── LightSyncDMXEditor/ (Editor Module)
├── LightSyncDMXEditor.Build.cs
├── Public/
│ ├── LightSyncDMXEditorModule.h
│ └── SLightSyncMonitorWidget.h
└── Private/
├── LightSyncDMXEditorModule.cpp
└── SLightSyncMonitorWidget.cpp
- Unreal Engine 5.4 (ビルド済みバイナリは 5.4 専用)
- DMX Protocol プラグイン (UE標準同梱)
- DMX Engine プラグイン (UE標準同梱)
- OSC プラグイン (UE標準同梱 - OSC出力使用時)
- Art-Net / sACN 対応DMXインターフェース (DMX直接出力時)
- ネットワーク接続 (OSC経由で別PCに送信する場合)
- ZIP を展開して
LightSyncDMXフォルダを取得 - 自分のUEプロジェクトの
Plugins/フォルダにコピーMyProject/ Plugins/ LightSyncDMX/ ← ここに配置 LightSyncDMX.uplugin Binaries/ Source/ - UE Editor を起動(自動で有効化される)
- Window > Virtual Production > LightSync Monitor からモニターウィンドウを開く
LightSyncDMXフォルダ (ソースのみ) をプロジェクトのPlugins/に配置- UE Editor を起動するとソースからビルドされる
- MSVC 14.43+ を使う場合は
__has_featureエラー対策が必要:- プロジェクトの
Source/にMSVCCompat.hを作成:#pragma once #ifndef __has_feature #define __has_feature(x) 0 #endif #ifndef __has_extension #define __has_extension(x) 0 #endif
*.Target.csに追記:AdditionalCompilerArguments = "/FI\"" + Path.Combine(ProjectDirectory, "Source", "MSVCCompat.h") + "\"";
- プロジェクトの
Copyright UE-Comp. All Rights Reserved.