Unity から YouTube で 360度ライブ配信をしたときに調べてやったまとめ
YouTube でライブ配信をするために
360度ライブ配信に関するYouTube のヘルプページ
- https://support.google.com/youtube/answer/6396222?hl=ja
- 「現在、YouTube でサポートされている 360° 動画は正距円筒図法によるものだけです」
- 「360° ライブでは 2160p または 1440p の解像度が推奨されます。」
- 「最適な動画品質を提供するために 16:9 のアスペクト比を選択します。詳しくは、アスペクト比についての記事をご覧ください。」
- 手持ちのモニタでは 1920x1080 が限界だったので、フルスクリーンでアプリ起動して、1080p で送った
- 四方八方の映像を送るので、解像度的にはたぶんこれくらいが限界かもしれない
- それでもカメラに近寄るとジャギジャギしてしまっていた
- 4K とかで送れるならそれがベストなのに越したことはない
Unity で正距円筒図法にする
正距円筒図法 = Equirectangular
- Unity 2018 のバージョンから RenderTexture.ConvertToEquirect が使えるようになったらしい(よくわかってない)
- なのでまずは気合で Unity 2018 までバージョンアップします(しました)
Recorder を使う
- Unity Recorder - Asset Store
- 「360 view」を選択して横と縦を 2:1 にすれば、プレイ内容が 360度動画になる
- なので、動画用には使えるけど、ライブ配信には使えなかった
Facebook のライブラリを使う
- GitHub - facebook/360-Capture-SDK
- Unity から直接 YouTube ライブ配信に必要な設定(ストリームキーとか)もできる、なんかすごそうなやつ
- OBS などを挟まないので、「ちょっと待ってね」シーンとかに切り替えできないのと、後述の資料でちょっと不安な感じだったので、今回はやめておいた
Unity の機能を直接使う
- xR Tech Tokyo #14 で INSPIX の方が発表していた資料
- EquirectRenderer.cs をカメラにつけて、EquirectTexture を通して RawImage に映し出す
- (SteamVR と同時に使用したためか、「Using a render mode of ScreenSpaceOverlay while VR is enabled will cause the Canvas to continue to incur a rendering cost, even though the Canvas will not be visible on VR.」と警告してくれたけど、仕方ない。パソコンがんばって)
- あとは出力した 1920x1080 の映像を OBS 経由で YouTube に流した
実際に 360度ライブ配信をやってみて、気になったところ
そのほか
- なんか新しい演出を入れたいなと思って、パーティクルを入れてみた
- Particle Collection SKJ 2016_Free samples - Asset Store
- magic_ring ってやつ
- サイズが大きかったので Scaling Mode を Hierarchy にして普通にサイズ調整して、Play() と Stop() しかやりかた分かんなかったけど
- Unity のパーティクルシステムは Shuriken っていうの、初めて知った
- 360 度の世界を見せるのに何かできないかなと考えて、赤いキューブを回転させて、その上にねこを置いた
- ねこ自体を回転させようとしたら謎の動きを見せたので素直に gameObject.transform.Rotate(0, 2.0f, 0); だけした
- まぐろなちゃんねるの動画を見てこれをやった