Lab元シリコンバレー在住のおっさん技術者、モバイルVRアプリ開発に挑戦中この広告は、90日以上更新していないブログに表示しています。Tokyoに出展したVR撮影システムについて、360度立体視CGのプリレンダリングのやり方について書きました。今回は、その360度立体視CGと、カメラ(魚眼レンズを付けたiPhone2台)入力画像を重畳し、mp4動画ファイルとしてエンコードする方法について書きたいと思います。基本的なやり方は、Theta二台から立体視用Equirectangular映像をつくるにて書いた内容と同じです。Packをそのまま利用することはできません。iPhoneからのカメラ入力映像は確かにFisheye形式なのですが、Thetaからの入力映像と異なり、左右が欠けてしまっています。Area時のカメラ入力映像の取り込み・変換の仕組みです。Packを利用してEquirectanguler形式に変換する、という方法をとっていました。Tokyoでのカメラ入力映像の取り込み・変換の仕組みは以下のとおりです。iPhoneには魚眼レンズが取り付けられているため、カメラ入力映像はFisheyeのように歪んだ状態となっています。iPhone縦持ちで撮影する際、縦方向と比較して横方向の画角は狭くなってしまいます。Gizcamの場合、図の緑の破線(画角180度を示す)がカメラ入力映像からはみ出してしまいます。iPhoneからのカメラ入力映像の中にはThetaのように完全なFisheye形式の画像は含まれません。Packの要領でEquirectanguler形式に変換すると図のように、ひょうたん(?)のような形になります。Packの処理のままで良いのですが、はみ出ている部分は透明にするFisheye部の径を適切な値とする2点の修正が必要となります。Areaでは、ffmpegでリアルタイムエンコードするスクリプトを生成し、それを使用しました。GeForce970の力を生かしたハイパフォーマンスなエンコードをできるようにしたいと思っていました。HDサイズのRenderテクスチャを同時に60fpsでエンコードできるスグレモノです。本アセットの利用手順は次の通りです。DX11環境かつ、NVIDIAのHWエンコーダ(nvenc)が利用できる環境でのみ動作します。"RightTex"とする。"Right"とする)。Titleにはそれぞれ生成するファイルのパスと名称を設定するあとは、エンコードを開始したいタイミングで、MovieRecordCamera#StartMovieRecord()を、終了したいタイミングでMovieRecordCamera#EndMovieRecord()を呼ぶだけです。rightCamに設定しておき、開始・終了のタイミング(以下の例ではRキー押下)でそれぞれのメソッドを呼び出します。();}}}}すると、左右それぞれ用の.h264ファイルが、それぞれ指定したパス・ファイル名にて生成されます。このファイルをffmpegにてmp4に変換すれば、完成です。movieLeft.mp4左目用・右目用の撮影映像を縦に並べる次に上記生成した、左目用・右目用のmp4ファイルを縦に並べたmp4ファイルを生成します。以下のコマンド一発で変換可能です。movie.mp4プリレンダリングの360度立体視CGとカメラ入力映像を重畳し、エンコードする最後に、上記縦に並べた左右眼用の撮影映像と、前回生成したプリレンダリングの360度立体視CGを重畳します。これもffmpegのコマンド一発でオッケーです。out.mp4"t"オプションには作成する映像の時間(秒)を設定します"movie=..."部分は重畳する360度立体視CG映像についての設定です。TB)"とすることで、360度立体視CG映像の再生時間が-tで指定した時間より短い場合、これをループ再生します"filter_complex"オプションには、クロマキーと映像重畳を設定します。colorkeyに緑色(0x00ff00)を指定することで緑色が透過します。":"で句切られた他の2つの数値は、クロマキーする範囲について指定しています。この2つの数字は試行錯誤で設定したものであり、数値とクロマキーの度合いの関係はいまいちわかっておりません。Tokyoに出展した「スマホ2台を利用したVR映像作成システム」について書きました。記載量が莫大になってしまうため、実装詳細については触れませんでしたが、ご興味おありの方はその旨いろいろご質問いただけると嬉しいです。Reality向けヘッドセットが来ましたMFT2017に出展したVRコンテンツ月別アーカイブ参加グループプログラミングはてなブログをはじめよう!tuti107さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。