UnityはPC・スマホのゲーム制作用に限らず、プロジェクションや大型モニターを使ったインスタレーション、体験コンテンツにもよく使われます。
その場に行かないとできない体験は、その場所ならではの特別感にも繋がります。
でも、それ故に製作中に用意することが難しいのが、現場環境です。
鳥居がどのくらいの大きさになるのか、プロジェクションの広さはどのくらいになるのか。そもそもどんな見え感になるのか。
本番直前の現場施工のタイミングになって思ったより小さかった
、この大きさならもっと違う案ができたのに
なんてことにならないように関係者で認識合わせをしたいものです。
ただ、現場と同じ開発環境が用意できる場合は問題ないですが、オフィス内で製作進める時に鳥居を持ち込むわけにもいきません。
そんな時に便利なのがVR。
現実に用意できないものはバーチャルで用意してしまえという発想です。
そして忘れてはならないのが、UnityはVRが得意であること。
#映像を転送してVRで見る
UnityはVRが得意でも、今回のケースで作りたいものはプロジェクションであって、VRではありません。
VR用のシーンやVR用のアセットを、プロジェクション用のプロジェクトに組み込むのは得策ではありません。
そこで、プロジェクションのプロジェクトとVRのプロジェクトを別々で用意します。
プロジェクションのプロジェクトは通常通りに進めておき、VRのプロジェクトでは現場の雰囲気・サイズ感が把握できるVR空間を用意しておきます。
VR空間の中にプロジェクションの映像だけを転送して見ることができれば、本来のプロジェクション用のプロジェクトを乱すことなくVR空間を作れるようになります。
つまりはこうです。
これを#Unity pic.twitter.com/ahmnDK1qTk
— foka (@foka22ok) December 20, 2019
ここに#Unity pic.twitter.com/aNp2CUWJHe
— foka (@foka22ok) December 20, 2019
こうする#Unity pic.twitter.com/EbXXXA87Qm
— foka (@foka22ok) December 20, 2019
##SPOUT
Unityにはアプリケーション間の映像転送の仕組みはありませんが、それを可能にする技術の一つとしてSPOUT
があります。
SPOUTは、同一PC内のアプリ間で高速映像共有を可能にするスグレモノ。
(Windows用。Macには同等技術にSyphonというのがあります)
SPOUT
http://spout.zeal.co/
SPOUTをこんな風に組み合わせることで、プロジェクションのVR確認ができるようになります。
###KlakSpout
UnityでSPOUTを使う場合ですが、高橋啓治郎氏がKlakSpout
というUnity用Spoutプラグインを作られているので、これをありがたく使わせてもらいます。
https://github.com/keijiro/KlakSpout
###SPOUT送信
使い方は簡単で、プロジェクション側のプロジェクトのカメラにSpoutSender
をくっつけるだけで送信します。
GameObjectの名前(↑ではProjectionCamera
)が重要で、この名前で映像送信されます。
なお、カメラ映像だけでなくRenderTextureに映した映像も送れるので、用途に応じて使い分けると良いです。
###SPOUT受信
VR側に空のGameObjectでも作って、そこにSpoutReciever
をくっつけます。
SourceName
が送信元の映像名になります。
送信元と一致している必要があるので、間違えずに入力するか、Select
でプルダウンから選択して下さい。
受け取った映像をRenderTextureに映す場合はTargetTexture
を、Rendererに映す場合はTargetRenderer
を指定します。
#PCも分離して処理負荷も分離する
そんな場合でも大丈夫。
SPOUTの代わりに、同一ネットワーク内のPC間の高速映像転送が行えるNDI(Network Device Interface)を使うと、プロジェクション用のPCとVR用のPCを分けることができます。
NDI(Network Device Interface)
https://www.ndi.tv/
###KlakNDI
UnityでNDIを使う場合ですが、同じく高橋啓治郎氏がKlakNDI
というUnity用NDIプラグインを作られているので、これも大変ありがたく使わせてもらいます。
https://github.com/keijiro/KlakNDI
(使い方はKlackSpoutとほぼ同じなので省略)
#センシングも確認したい
場所を使ったコンテンツでは測域センサーを使うなど、センサー利用のコンテンツも多いですね。
そんな場合でも現場同様につなぐことができます。
#複数人でも確認する
そんな場合はこうです。
NDIは一つのSenderを複数のRecieverで受け取ることができます。
そんな場合も、SPOUT・NDIのどちらかに対応していれば大丈夫です。
例えばTouchDesignerを使っていた場合はこんな感じ。
#SPOUTとNDIの連携
これも方法があります。
SPOUTとNDIは組み合わせることができます。
ありがたいことに、SPOUTが公式にSPOUT to NDI
とNDI to SPOUT
を用意しています。
これらを使うと、
SPOUT送信
→ SPOUT to NDI
→ (NDIで別PCに映像転送) → NDI to SPOUT
→ SPOUT受信
ということもできます。
これでSPOUTが使えるけどNDIが使えないアプリケーションでも、複数PCアプリケーション間の映像転送ができるようになります(TouchDesignerのNON-COMMERCIAL版とか、Pythonアプリケーションとか)。
http://spout.zeal.co/download-spout-to-ndi/
SPOUT to NDI
・NDI to SPOUT
の使い方は下記記事で紹介されていたので、ここでは割愛します。
Touch Designer 有料版を使わずにSPOUT&NDIで映像共有
#まとめ
場所を使ったコンテンツの場合、その場所ならではのサイズ感、見え感や体験感はとても重要になります。
それをVRを使って確認、関係者と共有しておくと、いざ現場に赴いた時に大変スムーズに進めることができるようになります。