⑳ 【Unity/SRP】バーチャルライブ ~ 内製エンジン開発からUnityへのスキル変換検証
https://www.youtube.com/watch?v=5hYet9bUZdo
ソースコード
説明
詳細
Unityベースのバーチャルライブです。内製エンジン開発のスキルをUnityにどれぐらい変換できるかの検証で作りました。既存のURPレンダリングパイプラインを使わずにSRPをフルスクラッチで書き、パイプラインを構築しています。また、外部パッケージを一切使わずに他の機能も全て自前実装しています(PMX, DMX, NDIなど)
同様のことを自作エンジンでも対応
動作確認方法
以下をダウンロードし実行
ドライブを非公開にしました。実機でご覧になられたい方はお声掛けください。
使用ツール
Unity 6(URP)
SRPでレンダーパイプラインをフルスクラッチで実装
Visual Studio 2022
NDIをCppでビルドしたdllを作るのに使用
Touch Designer
DMXによるライト演出作成やNDI映像の送信
使用言語
C#
C++
ShaderLab
機能一覧
SRPフルスクラッチによるレンダリングパイプライン構築
デファードレンダリング、フォアグラウンドレンダリングの描画パスがあり、その後にポストプロセスをRenderFeature風の設計で自由に差し込めるような実装
平面反射
カスタムポストプロセス(FXAA, Bloom)
シャドウマッピング
バイナリ解析機能を実装してMMDのPMX・VMDのインポーターに対応
PMXやVMDをプロジェクトビューにドラッグアンドドロップするだけでインポートが走ります
PMXImporter
VMDImporter
https://scrapbox.io/files/6958b0922c32ff26b37a666f.mp4
エディタ拡張でVMDベースをアニメーションクリップを各PMXで再生できるようにするためのリターゲット機能
VMDImporterでインポートし生成されたUnity AnimationClip
https://scrapbox.io/files/6958b1c008603489e47fed32.mp4
PMXのCCDIK
VATとGPUインスタンシングによる観客アニメーション
アニメーションクリップからVATのテクスチャを生成するエディタ拡張
https://scrapbox.io/files/6958b3a9364e9140721aee9a.mp4
Goboライト
UDPでDMXのバイナリを受信し、それをパースしてUnity上の各ライトデバイスを操作する機能
CppでNDI SDKを外部から扱うためのdllライブラリを実装し、それをUnityで読み込み、映像を受信
Cpp実装
Unity実装