28
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【unityプロ技②】Advent Calendar 2019

Day 21

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

Last updated at Posted at 2019-12-20

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

28
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?