denshi-kogei’s blog

技術ログであったり思いつきであったり、内向きなお話

VR向け3DシーンをAfterEffectsで”高速”で書き出す手順

前回の記事でAEからVR映像を書き出す経緯を書きましたが

実際はたくさんの壁にぶつかりながら右往左往していました

大変だったことも含めて覚書を残しておこうと思います

 

 

 

 

Cinema4DからVR素材を書き出す方法

Cinema4DはR19からスフィリカルカメラという

360°映像を書き出せる機能が使えるようになりました

 

これは非常に簡単で、普通のカメラの機能として追加されています

「スフィリカル」を有効にするだけで設定完了!

f:id:denshi-kogei:20171228213927p:plain

スフィリカルカメラ設定

 

 

これでプレビューしてみるとちゃんと360°素材になっていますね

f:id:denshi-kogei:20171228010800j:plain

スフィリカルカメラでプレビュー

 

とっても簡単です

しかし

Cinema4DでVR素材を直接書き出すのはオススメしません!

 

なぜならVRコンテンツはいわゆる「VR酔い」を防ぐため

高解像度・高リフレッシュレートの必要性があり

通常の映像作成よりも長時間のレンダリングを覚悟しなければなりません

※最低でも4K・60fpsは必要と言われています

 

大規模なレンダーファームが使える環境でもない限り

小規模チームでVR映像を制作するのは現実的では無いと思われます

 

もちろん静止画だったらアリです

1枚ですし…

 

 

 

前置きが長くなってしまいましたがここからが本題

電視工芸では断然こちらの手法をオススメします

Cinema4D→Element3Dを使ってVRで書き出す方法

制作からレンダリングまでを期間内に収めるならば

圧倒的にElement3Dを使ったほうが早いです

つまり最も現実的な選択肢ということ

 

Cinema4D側では事前に

モデリング

・オブジェクトのアニメーション※

・カメラモーション

・ライティング

を作って汎用変換用(Melange)で保存しておきます

※Element3Dへオブジェクトを読み込むにはいくつもルールがあります

動きも制限が多いためElement3Dを使う場合は

あらかじめラフモデルで再現性を検証しましょう

オブジェクトに動きがある場合はアニメーションベイクも忘れずに!

 

カメラはCinema4Dの方が圧倒的に使いやすいので

複雑なカメラワークならなおさらC4Dで作ったほうがいいでしょう

 

また、ライティングもC4Dで設定する方が早いので

カメラとライトはC4D側で全て完結できるくらい作り込んでもいいと思います

※ライトはCineware経由で読み込みましょう

 

aecフォーマットでC4DのカメラをAEに読み込む

C4Dのカメラはaecというフォーマットで書き出すと

AfterEffectsで読み込むことができます

Cinema4Dのレンダリング設定→保存→コンポジット用プロジェクトファイル

「保存」と「3Dデータを含む」にチェック→対象アプリケーションをAEにして

「プロジェクトファイルを保存」します

※事前に出力設定でサイズや尺を指定しておきましょう

f:id:denshi-kogei:20171228213922p:plain

aec書き出し設定


AfterEffectsに読み込む際はドラッグ&ドロップで大丈夫です

カメラの読み込みはCinewareを使ってもいいのですが

aecを使えばカメラのモーションをベイクしなくてもいいですし

スプラインで描いた軌跡がそのまま流用できるため

柔軟性の高いカメラワークが実現できます

 

 

 

オブジェクトをElement3Dで読み込み

C4DでMelange保存するとElement3Dでc4dファイルを読み込むことができます

特別なことをしなくてもINPORTで読み込めるので簡単ですね

ただし全ての情報を持ってこれるわけではないのでご注意下さい

 

 

Element3Dへのオブジェクト読み込みはまだまだ未完成な感じが漂っていますが

意外と手間取ってしまったのが「サイズ」の違いです!

これにはだいぶ時間を削られました…

 

Cinema4D上で作ったオブジェクトは条件を満たせば

Element3D経由でAfterEffectsへ持ってこれるのは周知の通りですが

特に変な設定をしたわけではないのにサイズが違います…

f:id:denshi-kogei:20171228221331p:plain

カメラが動かない場合は手動でもなんとかなりそうですが

Cinema4Dでカメラワークを付けて、カメラが動くことを前提とした場合

このサイズの違いは致命的です

(カメラが動いて自分がどこにいるのかわからなくなったりします)

 

結論から言いますと

レプリケータの位置を00にして

サイズを10から4に縮小するとぴったり合う

ということでした。

理由はわかりません汗

 

サイズの違いを無理やり手動で合わせようとしてしまいがちですが

VRではちょっとしたズレが原因で視点がポリゴンにめり込んだりするため

きっちり合わせておいたほうがいいでしょう

 

 

 

AfterEffectsでVR展開するには

Element3Dを使用していますのでVRへ変換する際も条件を設定しなくてはなりません

コンポジション→VR→VR環境を作成

 

カメラ設定:

  • 2ノードカメラを使用
  • 3Dヌルカメラコントロール

詳細設定:

で作成しましょう

 

ここで新しくデフォルトのカメラが生成されますが

aecで用意したカメラとは別なので動きが追随しません

ちょっと面倒ですが「VR マスターカメラコントローラー」という

3Dヌルレイヤーの位置へaecカメラの位置をリンクさせます

f:id:denshi-kogei:20171229013239p:plain

親となるヌルレイヤーからピックウィップでaecカメラの位置をリンク

 

ちなみに目標点を追随させたい場合は親のヌルレイヤーではなく

VRマスターカメラへaecカメラの目標点をリンクさせて下さい

 

 

※カラー変換などのエフェクトは事前にかけておきましょう

後で色調整しようとしても展開後のコンポジションには何故か反映されません

 

 

カメラの数値設定はやや面倒ですが

AEのカメラのメリットは被写界深度を使っても

レンダリング速度への影響が少ないということにあります

 

 

ようやくレンダリング。でもちょっと待って

VR変換後は環境マップ状の展開図がコンポジションに表示されますが

このままレンダリングするのはちょっと待って下さい

 

実はVR映像は「メタデータ」を設定する必要があります

これはプレイヤー側が360°コンテンツと認識するために必要な「名札」と考えて下さい

この名札を付けてようやくVR用の再生形式で視聴することができます

 

メタデータを付加するにはいくつか方法があり

フリーソフトを使ってH264のデータに付加する方法

レンダリング時に付加する方法があります

 

 Adobe creative cloudを使っているなら後者の

レンダリング時に付加する方法」が簡単でオススメです

 

その方法は

AfterEffectsから直接レンダリングするのではなく

Media Encoder CC経由でレンダリングするというもの

f:id:denshi-kogei:20171228221725p:plain

 

Media Encoder CCはVRコンテンツ向きのプリセットが揃っており

メタデータを含むH264の書き出しができるため

一回のレンダリングでVRコンテンツを作成することができます

 

f:id:denshi-kogei:20171229015322p:plain

見つからなければ検索窓に「VR」と打ち込んでみてください


プリセットは4種類ありますが上記のプリセットでOKです

 

 

 

これでようやく完成

普通の映像制作とは勝手が違うため最初は戸惑うでしょうが

今後はもっと簡略化されていくかもしれませんね

 

 

2017年の終わりごろになって初めてVRに取り組む

VRに参入します!

今年も残すところあとわずかなのですが

2017年の最後でようやく弊社にもVRの波がやってきました!

 

それまではあんまり興味持ってなくて

ネットのニュースを横目で眺める程度だったので

中途半端な知識はあったんですが

なんだか勝手にハードルが高いと勘違いしてたんですよね

時間と手間がかかりそうだったし…

 

 

 

Adobeでの出会い

きっかけとなったのは先日横浜で行われた

Adobe MAX JAPAN 2017に参加した時のことです

f:id:denshi-kogei:20171227234614j:plain

adobe max japan 2017

 

 

実はMAXチャレンジという、MAXのロゴを使ったアレンジのコンテストがあって

アニメーション部門で応募したら、まさかのファイナリスト選出され

せっかくなので現地に行ってみようということになりました

f:id:denshi-kogei:20171227231850g:plain

こちらが応募作品のアニメーション。惜しくも入賞を逃してしまいました笑

 

 

この場所ではAdobe製品のいろいろなデモンストレーションがあって

たまたま空いていたVRのブースでVRゴーグルを試させてもらったのです

 

デモンストレーションで使われていたゴーグルは確かHTCのViveだったかな?

 

ハイスペックなゴーグルなので首振りの遅延を感じさせず

ラッキングも完璧で違和感のないVR体験ができました

 

デモンストレーターのお兄さんに話を聞いてみると

Premireでの利用が大きく取り上げられているけど

AEの方が使えるらしく、サードパーティの3Dプラグイン

Cinema4Dを使ったCinewareが力を発揮するのだとか…

 

Cinema4Dは数年前から利用頻度が増えてきていたので

これはもしかするとベストな参入タイミングなのでは?と思い至りました

 

 

 

試してみる

さっそく翌日からいろいろ情報収集を始め、

何度もつまづきながら数日かけて

AfterEffectsからVR映像を作る方法だとか

VRのメタデータ付加とか

Youtubeへのアップロード方法などを試してみました

 


VR映像サンプル

 

これはもともとCinema4Dの独習で作った

トンネル内を駆け回る映像のワークを流用しています

 

 

当初はスフィリカルカメラという機能を使って

C4Dから直接書き出そうとしていたのですが

4Kでしかも60fpsというのは非常に重く

予想されるレンダリング終了時間が1週間後とかになっていたため

途中で断念しました。

 

グローバルイルミネーションでやりたかったのですが

1週間はさすがに待てません…

 

 

時間をかけないやり方

もし仕事でVRを請け負うとなった場合

1カットレンダリングするのに1週間は現実味がないため

もっと早く書き出す必要があります

 

そこで考えたのはElement3Dを使ってAEだけで完結させる方法でした

Element3Dを使えば反射やGIなどは厳密ではありませんが

レンダリングだけはめっちゃ早いのです!

※詳細な手順は次回書きます

 

 

そんなわけでレンダリング時間は1週間→3時間へと短くなりました

 

Element3D経由なのでいろいろ制限はありますが

4k60fpsの3Dアニメーション出力が3時間で済むのはかなりの進歩です

十分実用の範囲内です

 

 

結論:VRはけっこう簡単に作れる!

細かい縛りはあるものの、AE使いがVR映像を作ることは容易であると思います

見過ごしていたアップデートでVR向けの機能がいろいろ実装されており

ちょっとした手順を追加するだけでVRコンテストが作れてしまうのは

非常に驚きました!

 

アップロードまでは上に書ききれないほどいろいろ苦労したのですが

手順と合わせて次回報告します

 

ブログはじめました

はじめまして

映像とか3DCGとか作ったりする小さな会社、電視工芸(デンシコウゲイ)です

 

このブログでは業務で取り組んだことを振り返ってみたり

気になっている業界の動向や

海外チュートリアルの解説などを中心に紹介していきます

 

ブログはプライベートでは継続することに何度も挫折してまして

今回は法人としての再チャレンジです

 

仕事での失敗談や反省点など、書ける限りのことを記録していきたいと思います