Help us understand the problem. What is going on with this article?

現場が無いならVRで見ればいいじゃない

UnityはPC・スマホのゲーム制作用に限らず、プロジェクションや大型モニターを使ったインスタレーション、体験コンテンツにもよく使われます。

その場に行かないとできない体験は、その場所ならではの特別感にも繋がります。

でも、それ故に製作中に用意することが難しいのが、現場環境です。
genbacat_s.jpg

サンプルケース

例えばこういうケースがあったとします。
doshite_1.png

鳥居がどのくらいの大きさになるのか、プロジェクションの広さはどのくらいになるのか。そもそもどんな見え感になるのか。
本番直前の現場施工のタイミングになって思ったより小さかったこの大きさならもっと違う案ができたのになんてことにならないように関係者で認識合わせをしたいものです。

ただ、現場と同じ開発環境が用意できる場合は問題ないですが、オフィス内で製作進める時に鳥居を持ち込むわけにもいきません。

そんな時に便利なのがVR
現実に用意できないものはバーチャルで用意してしまえという発想です。

そして忘れてはならないのが、UnityはVRが得意であること。

映像を転送してVRで見る

UnityはVRが得意でも、今回のケースで作りたいものはプロジェクションであって、VRではありません。
VR用のシーンやVR用のアセットを、プロジェクション用のプロジェクトに組み込むのは得策ではありません。

そこで、プロジェクションのプロジェクトとVRのプロジェクトを別々で用意します。

プロジェクションのプロジェクトは通常通りに進めておき、VRのプロジェクトでは現場の雰囲気・サイズ感が把握できるVR空間を用意しておきます。

VR空間の中にプロジェクションの映像だけを転送して見ることができれば、本来のプロジェクション用のプロジェクトを乱すことなくVR空間を作れるようになります。

つまりはこうです。

SPOUT

Unityにはアプリケーション間の映像転送の仕組みはありませんが、それを可能にする技術の一つとしてSPOUTがあります。
SPOUTは、同一PC内のアプリ間で高速映像共有を可能にするスグレモノ。
(Windows用。Macには同等技術にSyphonというのがあります)

SPOUT
http://spout.zeal.co/

SPOUTをこんな風に組み合わせることで、プロジェクションのVR確認ができるようになります。
UnityVR_1.png

KlakSpout

UnityでSPOUTを使う場合ですが、高橋啓治郎氏がKlakSpoutというUnity用Spoutプラグインを作られているので、これをありがたく使わせてもらいます。
https://github.com/keijiro/KlakSpout

SPOUT送信

使い方は簡単で、プロジェクション側のプロジェクトのカメラにSpoutSenderをくっつけるだけで送信します。
2019-12-20_15h47_01.png
GameObjectの名前(↑ではProjectionCamera)が重要で、この名前で映像送信されます。

なお、カメラ映像だけでなくRenderTextureに映した映像も送れるので、用途に応じて使い分けると良いです。

SPOUT受信

VR側に空のGameObjectでも作って、そこにSpoutRecieverをくっつけます。
2019-12-20_18h07_59.png
SourceNameが送信元の映像名になります。
送信元と一致している必要があるので、間違えずに入力するか、Selectでプルダウンから選択して下さい。

受け取った映像をRenderTextureに映す場合はTargetTextureを、Rendererに映す場合はTargetRendererを指定します。

PCも分離して処理負荷も分離する

doshite_2.png
そんな場合でも大丈夫。
SPOUTの代わりに、同一ネットワーク内のPC間の高速映像転送が行えるNDI(Network Device Interface)を使うと、プロジェクション用のPCとVR用のPCを分けることができます。

NDI(Network Device Interface)
https://www.ndi.tv/

NDIを組み合わせるとこんな感じ。
UnityVR_2.png

KlakNDI

UnityでNDIを使う場合ですが、同じく高橋啓治郎氏がKlakNDIというUnity用NDIプラグインを作られているので、これも大変ありがたく使わせてもらいます。
https://github.com/keijiro/KlakNDI

(使い方はKlackSpoutとほぼ同じなので省略)

センシングも確認したい

doshite_3.png
場所を使ったコンテンツでは測域センサーを使うなど、センサー利用のコンテンツも多いですね。
そんな場合でも現場同様につなぐことができます。
UnityVR_3.png

複数人でも確認する

doshite_4.png
そんな場合はこうです。
NDIは一つのSenderを複数のRecieverで受け取ることができます。
UnityVR_4.png

Unity以外との連携

doshite_5.png

そんな場合も、SPOUT・NDIのどちらかに対応していれば大丈夫です。
例えばTouchDesignerを使っていた場合はこんな感じ。
UnityVR_5.png

SPOUTとNDIの連携

doshite_6.png
これも方法があります。
SPOUTとNDIは組み合わせることができます。

ありがたいことに、SPOUTが公式にSPOUT to NDINDI 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 NDINDI to SPOUTの使い方は下記記事で紹介されていたので、ここでは割愛します。
Touch Designer 有料版を使わずにSPOUT&NDIで映像共有

まとめ

場所を使ったコンテンツの場合、その場所ならではのサイズ感、見え感や体験感はとても重要になります。
それをVRを使って確認、関係者と共有しておくと、いざ現場に赴いた時に大変スムーズに進めることができるようになります。

現場が掴み切れなくて不安な点があったら、ぜひVRでご確認を。
genbacat.jpg

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした