Unreal Engineを用いたハイエンドなバーチャルライブ制作事例 | Unreal Fest Tokyo 2025

141 Views

December 05, 25

スライド概要

本講演へのアンケートにご協力をお願い致します:
https://forms.gle/JLnecggLeq8fCAQ96

オリジナルの講演スライドには各スライドにて動画を埋め込んでいただいています。
ぜひ以下のオリジナル版もご参照ください。
https://epicgames.box.com/s/6v7mdsn9y9rsxkc9xbngeb0axxs5uu30

講演者:
奥川 剛(カバー株式会社)
平野 晶麗(カバー株式会社)
鈴木 留奈(カバー株式会社)

カバー株式会社についてはこちら:
https://cover-corp.com/

Unreal Fest Tokyo 2025公式サイト:
https://www.unrealengine.com/ja/events/unreal-fest-tokyo-2025

profile-image

Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Unreal Engineを用いたハイエンドなバーチャルライブ制作事例 #unrealfest

2.

アジェンダ ● 本日の流れ ● カバー株式会社について ● COVERにおけるUEの導入 ● ハイエンドな領域でのスタイライズド表現とリアリスティックな背景の融合 ● Unreal Engineで目指したライブシステム ● UnrealEngineへのリアルタイムモーション適用と最適化について ● まとめ 2 #unrealfest

3.

カバー株式会社について つくろう。世界が愛するカルチャーを。 ▌会社概要 会社名: カバー株式会社 (COVER Corporation) 設立: 2016年6月13日 事業内容: 世界最大級のVTuber事務所「ホロライブプロダクション」を運営。 日本・英語圏・インドネシアに拠点を持ち、100名近いVTuberが所属。 3 #unrealfest

4.

COVERにおけるUEの導入 2024年夏に開始、9月より本格始動 およそ20名のチームで2025年3月に最初のミニライブを実施 https://youtu.be/qc2owX4GFwA 詳しい経緯などは6月に出されたEpic様との対談記事を参照 https://coveredge.cover-corp.com/list/2270 最近では明日現地講演されるhololive IDのライブを開発 本日は上記記事では解説できなかったより深い開発事例を紹介 4 #unrealfest

5.

5 #unrealfest

6.

ハイエンド領域でのスタイライズド表現と リアリスティックな背景の融合 6 #unrealfest

7.

アジェンダ ●自己紹介 ●UEの組み込み、運用 ●レンダリング ●HOLOTOON ●ライティング ●背景 ●グレーディング ●VFX ●ライブ後の取り組み 7 #unrealfest

8.

自己紹介 クリエイティブ制作本部 技術開発部 アートエンジニアリングチーム マネージャー 奥川 剛 2024年カバー入社 ・20年ほどコンソールビデオゲーム業界でのエンジニア、及び管理業務に従事 ・主にグラフィックス分野を担当 8 #unrealfest

9.

UEの組み込み、運用 ● 改造Unreal Engineを用いたアプリケーション 改造UE + 自社開発プラグイン 2025/03/30 ReGLOSSライブ 5.4Holo ● マテリアルの移植にはSPARK様の開発協力 開発協力:SPARK CREATIVE 様 2025/11/15 IDライブ 5.6.1Holo 9 #unrealfest

10.

開発した配信アプリケーション ※後ほど平野の発表で詳細を解説 10 #unrealfest

11.

レンダリング概要 ● 方針 ● フラグシップ ● これまでにない表現 ● タレントモデル ● 中途半端な陰影でフィギュア感が出るのはNG ● HoloUEの特徴 ● 改造UEを用い、標準では表現不可能なToon表現 ● スタイラズドで多光源 ● レイトレを用いたライティング ● シャドウマップでは表現できない精密な影 ● 独自グレーディング ● タレント、背景、全体を個別で色調整が可能 ● さらに各項目でShadow、Midtone、HighLightの分割調整可能 ● Nukeライクなパラメーター群 11 #unrealfest

12.

人物表現:HoloToonUE ● ベースはUnity版“HoloToonシェーダー”の再現 ● エンジン改造による、追加のシェーディングモデルとして実装 ● 多光源対応 ● SDF対応 ● Gバッファ拡張 ● 眉透け、アウトライン ● ポストプロセスとして実装 ● エッジハイライト ● アウトライン ● グレーディング 12 #unrealfest

13.

GBuffer レイアウト 13 #unrealfest

14.

ライティング 概要 HoloToonのUnity版から移植 + Lumen + 多光源 SDFとの決別 ● SDFは主となるライトが一つだけある場合は効果的 ● 多数光源がある場合に課題 ● 光源の組み合わせで、意図しない2Dの帯が出る。 ● 転写法線への回帰 ● スタイラズドな格闘ゲームなどで使われている転写法線の仕組みへ回帰 影:レイトレーシングを使用 ● リアルタイムに数十個のスポットライトからの影 ● 太陽のみシャフトの為のVSMを使用 14 #unrealfest

15.

ライティング:レイトレーシング ● レイトレーシングを用いて100個以上の灯体から高精度な影を生成 15 #unrealfest

16.

ライティング:拡張機能紹介 ● トゥーンマテリアルへの影響度の調整 16 #unrealfest

17.

ライティング:拡張機能紹介 ● リム部分のみ影響 17 #unrealfest

18.

ライティング:拡張機能紹介 ● NDL境界の柔らかさの指定 18 #unrealfest

19.

ライティング:拡張機能紹介 ● NDL境界のオフセット 19 #unrealfest

20.

ライティング:拡張機能紹介 ● 明暗の持ち上げ、調整 20 #unrealfest

21.

ライティング:DMX最適化 ● ArtNetで10以上のユニバース、4000チャンネルに迫るチャンネル数 ● パッケージ時は影響少ないが、エディタでの実行時に多大なCPU負荷 C++化などで、2倍以上の高速化を実現(例:使っていないライトの階層変更) 21 #unrealfest

22.

ライティング:ライトシャフト最適化 ● レイマーチのステップ数を削減 ● 最大でも200以下になるよう修正 ● 画角、距離による補正も修正 ● VRSの導入 ● 2x1で最大2倍程度高速化 22 #unrealfest

23.

背景 ● 写実的な作り ● 天候、時間変化をDMXと連携 23 #unrealfest

24.

背景:VATを用いた観客 ● ReGLOSSライブでは3440人の観客をVATを用いて制御 24 #unrealfest

25.

カラーグレーディング ● 写実的な背景とスタイラズドなタレントのレンダリングを共存させたい ● 独自グレーディングを実装、キャラクターと背景を分離した調整が可能に 25 #unrealfest

26.

VFX ● Niagaraでの実装 ● デザイナー側から要望があった独自モジュールを10個程度作成 26 #unrealfest

27.

VFX 体をつたう水 27 #unrealfest

28.

VFX ロースモーク ● Niagara Fluidsを利用した流体で表現 ● インタラクティブにタレントの足に反応する事を実現 28 #unrealfest

29.

現在~今後の取り組み ● ディフュージョンフィルタを実装 ● アウトラインなど暗部にも対応、柔らかさとコントラストを強化 ● 白飛び防止の為の白抜き対応 ● 最適化 ● さらなる照明の配置が可能に ● 1万人程度のバーチャル観客収容が可能に 29 #unrealfest

30.

Unreal Engineで目指したライブシステム 30 #unrealfest

31.

アジェンダ 1. 自己紹介 2. ライブシステムの目標設定 3. ライブシステム紹介 4. スタジオのフル活用 5. 安定したシステム運用に向けて 6. まとめ 31 #unrealfest

32.

自己紹介 平野 晶麗 カバー株式会社 リードエンジニア 主にライブシステムの開発に携わり、 Unreal Engineライブの開発ディレクターとして従事 Unityの内製ARライブシステムや照明システムも開発 32 #unrealfest

33.

Unreal Engineで目指したバーチャルライブ Unreal Engineで実現する「そこにいる」ライブ表現 圧倒的な実在感あるライブを実現し、ファンに最高の体験を届ける 生パフォーマンスと連携した魅力的なライブ演出 臨場感あるライティングやVFXにより、タレントのパフォーマンスを最大現に引き立てる タレントの「やりたい」を、最高のクオリティで実現 ゼロから高品質なビジュアルを作り上げるUEの開発スピードを生かす 33 #unrealfest

34.

開発スケジュール FY202 4 LookDev (7~9月) 開発 / 制作 (10~12月) テスト (1~3月) トゥーンシェーダ開発 ライブシステム開発 QA プロトのステージ制作 アセットの本制作 テクリハ VFX・照明の検証 スタジオとの疎通テスト タレントリハ 本番 (3/30) 34 #unrealfest

35.

ライブシステムの開発期間は3ヵ月 必須の達成目標 UEを生かした ビジュアル表現 安定した システム運用 スタジオ活用 35 #unrealfest

36.

達成目標 Unreal Engineならではのビジュアル表現 ● ステージ、照明演出、天候表現、観客シミュレーションなど ● Unreal Engine の表現を最大限生かしつつ、トゥーン表現との共存を目指す 安定したシステム運用 ● 冗長化、システム監視、枯れた技術の選定など ● オペレーションの自動化、リアルタイム調整 スタジオのフル活用 ● スタジオのスタッフのパフォーマンスの最大化 ● スタジオ資産を生かす 36 #unrealfest

37.

短期開発のためのソリューションの組み合わせ Unreal Engine ● DMXやLive Linkなどのバーチャルライブで利用可能なプラグインは最大限活用 TouchDesigner ● ノードベースのビジュアルプログラミングツール ● 高速なプロトタイピングやリアルタイム性、連携力を生かし、現場のニーズに即時対応 Win UI 3 ● Microsoftが提供する最新のUI開発フレームワーク ● リモートでUnreal Engineのオペレーションや監視用に利用 37 #unrealfest

38.

ライブのシステム図 38 #unrealfest

39.

ライブシステムの機能 DMX タイムコード(LTC) ネットワーク(MQTT) シーケンスカメラ 物理シミュレーション 映像再生 Niagara DLC トゥーンシェーダ カラーグレーディング 観客 ルーム モーションキャプチャー フェイシャル リップシンク カメラ(シーケンス以外) TouchDesigner フェイシャル入力 カメラ調整 ギミック制御 Win UI 3 シーン設定 モニタリング 各種オペレーション UE標準 独自実装 39 #unrealfest

40.

プロトコルの技術選定 通信プロトコル PC間で同期を行う通信プロトコルは、Unityの開発でも実績のあるMQTTを採用 照明プロトコル 照明も社内で運用実績の長いDMX(Art-Net)を採用 実績のあるプロトコルは積極的に利用 カメラではFreeDなど採用し、UEのプラグインを活用することで開発コストを最小限に 40 #unrealfest

41.

通信プロトコル MQTT(MQ Telemetry Transport) ● Publish/Subscribeモデルに基づくメッセージプロトコル ● 主にIoTなどで活用。軽量で低速・不安定なネットワークで動作、同期通信な点などが特徴 Unreal EngineやTouchDesignerで標準でサポート ● Unreal EngineではMQTTプラグイン(実験段階)が利用可能 (一部バグがあったため、EPICさんに報告) ● Win UI 3でもMQTTnetパッケージで手軽に実装可能 UnityでもMQTTを利用 ● 長い利用実績 ● チームの学習コストが低い 41 #unrealfest

42.

照明プロトコル DMX (Digital Multiplex) ● 舞台照明やコンサート、イベント照明などの演出照明を制御するための通信規格 ● 昨今のバーチャルライブでは、ほぼデファクトスタンダート Unreal Engineで標準でサポート ● DMX 対応フィクスチャーのパッチ等が照明チームで行えるため、エンジニア工数は最小限に ● Take RecorderによりDMXの収録も容易 DMXプロトコル ● Art-Netで運用 ● sACNの導入は今後の検討課題 42 #unrealfest

43.

その他の通信方式 UDP ● リアルタイム性が求められるモーションキャプチャーなどのデータで利用 ● マルチキャストによるネットワーク帯域幅の効率化 ● パケロスのリスクは冗長化で担保 その他のプロトコル ● FreeDなどのカメラトラッキングのプロトコルも利用 タイムコード ● LTC (SMPTEにて規格化されている音声帯域のタイムコード) で同期 43 #unrealfest

44.

スタジオのフル活用 プロフェッショナル集団のチーム スタジオはライブやTV業界などの経験が豊富なスタッフにより運用 最先端のスタジオ機材 最先端のVICONカメラであるVALKYRIEをはじめとした充実したスタジオ設備 ミッション 最高峰のスタッフと機材のパフォーマンスをUEとの掛け算で最大限引き出す 44 #unrealfest

45.

スタジオの活用事例 カメラチームとの事例 ● カメラチームは、バーチャルカメラと実写カメラの両方に精通したカメラマンの集団 スタジオ資産の活用 ● バーチャルカメラの撮影環境はUnityでの運用で培われている ● スタジオにはARライブでも利用可能な実写カメラの機材が揃っている ゴール ● カメラチームの撮影技術やスタジオ資産をUEのライブに最大限生かす ● 実写撮影に用いられている機材の活用によりラーニングコストを削減 45 #unrealfest

46.

ライブ中のカメラの紹介 46 #unrealfest

47.

PTZカメラの活用 ARライブの機材の活用 https://www.youtube.com/watch?v=k26xlhHvUXo 47 #unrealfest

48.

PTZカメラの活用 ● LiveLinkFreeDを活用してカメラのトラッキング情報をUEに送出 48 #unrealfest

49.

安定したシステム運用に向けて 冗長化 単一障害点をなくし、ハードウェア / 映像系統 / ネットワークなど冗長化 モニタリング 負荷状況や通信の切断状況を可視化し、全台のPC状況を一覧でリアルタイムで監視 再接続性 ネットワークの瞬断などに備えて、自動の再接続を行う 49 #unrealfest

50.

冗長化 50 #unrealfest

51.

モニタリング 各PCの負荷やネットワークの接続状況のリアルタイム表示 51 #unrealfest

52.

再接続性 通信処理の再接続 ● MQTTやTCPなどの通信処理は、再接続の実装をセットで行う ● UDPは接続というステータスがないため、リアルタイムで受信状況を監視して接続確認 アプリの再接続 ● UEの同期システムを利用したルーム機能によりシーンの情報を共有 ● アプリがクラッシュしても、ルーム機能からシーンを再構築 52 #unrealfest

53.

まとめ 必須の達成目標 UEを生かした ビジュアル表現 安定した システム運用 スタジオ活用 53 #unrealfest

54.

Unreal Engineへのリアルタイムモーション適用と最適化について 54 #unrealfest

55.

アジェンダ ● 自己紹介 ● 従来フローの紹介 ● 従来フローでの問題点について ● フレーム欠損について ● 冗長構成について ● Unreal Engineへの対応について 55 #unrealfest

56.

自己紹介 クリエイティブ制作本部 技術開発部 第一開発チーム リードエンジニア 鈴木 留奈 (Lunco) 2023年1月 カバー入社 ・カバーでは3D配信で使用するスタジオアプリ(Unity製内製アプリ)の実装を担当 ・モーション回りの最適化や自作デバイス作ったりしてます 56 #unrealfest

57.

アプリへのリアルタイムモーション流し込みについて ● Unreal Engineの綺麗なグラフィックには綺麗なモーションが不可欠 ● 可能な限りキャプチャー時点のクオリティを維持した状態で配信したい 57 #unrealfest

58.

アプリへのリアルタイムモーション流し込みについて ● 従来のフローではモーションキャプチャからアプリの間に リターゲットを行っています 内製アプリ モーション キャプチャ リターゲット レンダリング 58 #unrealfest

59.

アプリへのリアルタイムモーション流し込みについて ● 従来採用していたフローではいくつかの課題があった 1. モーションのフレーム欠損が発生してしまう 2. 冗長構成が作りにくい (サードパーティ製プラグインの仕様により) 3. Unreal Engineへ非対応 (既存のオペレーションと統一できない) 59 #unrealfest

60.

アプリへのリアルタイムモーション流し込みについて ● フレームが欠損してしまう原因はいくつかありました 1. ネットワーク遅延 2. モーションキャプチャ時点での欠損 3. フレームレートの不一致 60 #unrealfest

61.

アプリへのリアルタイムモーション流し込みについて ● フレームが欠損してしまう原因はいくつかありました 1. ネットワーク遅延 2. モーションキャプチャ時点での欠損 3. フレームレートの不一致 61 #unrealfest

62.

ネットワークの遅延 ネットワーク遅延があるので 必ず同じタイミングでリターゲットソフトに来るとは限らない モーキャプ ① ② ③ ④ ⑤ リターゲット ? ? ? ? ? 62 #unrealfest

63.

ネットワークの遅延 ネットワーク遅延があるので 必ず同じタイミングでリターゲットソフトに来るとは限らない モーキャプ ① ② ③ ④ ⑤ リターゲット ① ① ② ? ? 63 #unrealfest

64.

アプリへのリアルタイムモーション流し込みについて ● フレームが欠損してしまう原因はいくつかありました 1. ネットワーク遅延 2. モーションキャプチャ時点での欠損 3. フレームレートの不一致 64 #unrealfest

65.

フレームの欠損 モーキャプ時点でドロップフレームが発生する場合 モーキャプ ① リターゲット ① ① ③ ④ ⑤ ③ ? ? 65 #unrealfest

66.

アプリへのリアルタイムモーション流し込みについて ● フレームが欠損してしまう原因はいくつかありました 1. ネットワーク遅延 2. モーションキャプチャ時点での欠損 3. フレームレートの不一致 66 #unrealfest

67.

フレームレートの不一致 フレームレートがずれている場合 モーキャプ リターゲット ① ② ③ ④ ⑤ ① ② ② ③ ? ? 67 #unrealfest

68.

フレームの欠損 ● タイミングによってはフレームが消失してしまう 68 #unrealfest

69.

各ソフトの挙動 Shogun Live (モモモモモモモモモモ MorionBuilder (モモモモモモ ) モモモモモ (モモモモモモ 固固固固固固 固固固固固固 固固固固固固 固固固固固固固固 (固固固固固固固固固 固固固固固固固固 (固固固固固固固固固 固固固固固固固固 (固固固固固固固固固 ) ) ) ) ) 69 #unrealfest

70.

解決方法について ● 最終的に綺麗なモーションにするためには… 1. フレームの欠損は必ず発生するので許容せざるを得ない 2. 内製アプリで適切なバッファリングを行えばきれいになるはず 70 #unrealfest

71.

解決方法について モーキャプ フレーム番号をアプリ まで引き継ぐ アプリ ① ② ③ ④ ⑤ ? ? ? ? ? ① ② ③ ④ ⑤ 71 #unrealfest

72.

従来のフローの問題点 ● 従来のフローではリターゲットソフトに送る段階でフレーム番号が消失 内製アプリ この段階でフレ ーム番号が消失 72 #unrealfest

73.

解決方法について ● ソフトウェア間でフレーム番号が送出できていないのは 使用してるプラグインの仕様によるもの ->プラグインを内製することによって解決できる 73 #unrealfest

74.

解決方法について ● 従来のフローではリターゲットソフトに送る段階でフレーム番号が消失 内製アプリ ShogunLive -> MotionBuilder プラグインを内製 MotionBuilder -> 内製アプリ プラグインを内製 74 #unrealfest

75.

ShogunLive -> MotionBuilder ● ShogunはDataStream SDK(C++)があり、モーションの取得が可能 ● キャプチャフレーム番号を取得するAPIがあるため モーションとセットでMotionBuilderに適用 ● DateStream SDKを使用してMotionBuilder(Open Reality SDK C++)の ネイティブプラグインを作成 75 #unrealfest

76.

MotionBuilder -> Unreal Engine ● Open Reality SDK(C++)でMotionBuilderから送出するプラグインを作成 ● モーキャプ時点でのフレーム番号をセットで送出 ● Unreal Engineで受信したモーションを Animation Blueprintで適用するプラグインを作成 ● Unreal Engine上で、モーキャプ時点のフレームで適切にバッファリング 76 #unrealfest

77.

最終的な実装 モーキャプ フレーム番号をアプリ まで引き継ぐ アプリ ① ② ③ ④ ⑤ ? ? ? ? ? ① ② ③ ④ ⑤ 77 #unrealfest

78.

冗長構成について ● MotionBuilder -> Unreal Engine プライグインを内製したため Unreal Engine側で冗長構成にも対応 ● MotionBuilderを2つ用意し、受信が一定時間以上なければ自動で切り替え 78 #unrealfest

79.

Unreal Engineへの対応について ● MotionBuilder -> Unreal Engine プライグインを内製することに対応 ● MotionBuilder -> Unity プラグインも同時に内製 ● 送出側のプラグインは同一のものを使用するため Unreal Engine, Unityともに同様のオペレーションで対応可能に 79 #unrealfest

80.

モーション綺麗になりました 80 #unrealfest

81.

ご清聴ありがとうございました 81 #unrealfest