【UE4】映像クリエーター視点な使い方とか。とりあえず映像を書き出そう！

どうも、映像クリエーターやってます。

基本的にはAfterEffects(以降AE)+AE用の素材作りにCinema4Dを使用って感じが多いかな。
そもそもがAE使いなので「**3Dって重い**」「**質感上げたいけどAOとか重い！**」「**GIだと見栄えすごい良いけど超重い！！！**」って感じで、あんまり気軽に3Dって導入出来ない感じだったり。
最近はAEのPluginで[Element3D](https://www.videocopilot.net/products/element2/)なんかが出てきてその辺はすごく解消されたんだけど。
そういう「**3D重い！**」から開放されたくてちょとUE4に手を出してみたりしてます。


実際に手を付けてみてドキュメントやチュートリアル等を見ながら一通りシーンを組んだりは出来た。
で、これを3Dソフト感覚で使おうと思ったところで「**？？？**」ってなることが発生するわけです…

・映像として書きだすのってどうするの？
・そもそもマルチパス(デプスとか)書き出せるの？
・アンチエイリアス…

とか。

この辺はやっぱりゲームエンジンなので、そういう使い方が間違っているというか想定されていないというか、まぁ違うジャンルのものだよなぁと。

前置きが長くなりましたがとりあえず順番に。
※OSはwindows


---
#映像として書き出すのってどうするの？

**MatineeActor**でカメラとか設定したら**詳細＞プレイ＞Plau onLevel Load**にチェックを入れて**マチネを開く**。
![MatineeLoad.png](https://qiita-image-store.s3.amazonaws.com/0/102588/b1a31ba4-69f6-4c10-02b9-e652eb535c4e.png)

で、**ムービー＞キャプチャオプションで適当に設定して「OK」**で新規でアプリ？が立ち上がって書き出し開始します。
![render.png](https://qiita-image-store.s3.amazonaws.com/0/102588/08e199a4-de58-63b7-39ee-57bfabd1d2a0.png)
書き出し先は「**\Saved\Screenshots\Windows**」

で、永遠に書き出し続けてるんだけど…
映像ソフトって書き出し範囲設定すれば自動で終わるんだけど…ってなる。

で、**レベルBP**で書き出し終了の設定。
**レベルBP**開いてアウトライナで**MatineeActor**選択しつつ**Create a Matinee Controller～**でMatineeActorを配置。
![CreateMatinee.png](https://qiita-image-store.s3.amazonaws.com/0/102588/260e19a9-9a64-7d7c-f64f-41609e63c265.png)
で**Execute Console Command**で**Command:quiet**
**Quiet Game**でもいけるんだけど**Quiet Game**の方がスマートなのかな？
その辺の細かいところは気にしない。
![Quiet-Exe.png](https://qiita-image-store.s3.amazonaws.com/0/102588/eb514ac4-4a8b-e87f-0fba-70bf946a467e.png)　![Quiet-QuietGame.png](https://qiita-image-store.s3.amazonaws.com/0/102588/b58f1401-1ec5-6c30-2819-910017abc299.png)
途中で止めたくなることもあるだろうからEscキーで終われるようにも仕込んであります。

ちなみに**Matineeエディタ**で**Eventトラック**にキーフレーム打つと、レベルBPに配置したMatineeActorにそれが追加されるので、指定した時間で終了することも可能。
![MatineeEvent.png](https://qiita-image-store.s3.amazonaws.com/0/102588/19def985-0cf0-dcc3-2890-7d3511bf610f.png)

![Quiet-Exe2.png](https://qiita-image-store.s3.amazonaws.com/0/102588/0e5ae53e-3091-0cc9-6404-2248787cd36d.png)

30秒のタイムライン作ったけどとりあえず5秒だけプレビュー書き出したいみたいなときに使うとか。

*※なんか頭数フレカメラがぶっ飛ぶけど、ちょっと余裕がなくて検証とか放置してます…*


---
#デプスマップを書き出したい

AEとかでコンポジットをするのが前提だと被写界深度はあとから弄りたくなるのでそれの書き出し方。

**PostProcessVolume**を配置して**ポスト処理ボリューム＞Blendables**にDepthMap用のマテリアルをセットする。
![depth03.png](https://qiita-image-store.s3.amazonaws.com/0/102588/cd569d5c-5756-6af0-3d03-c519fd3c7058.png)

セットするマテリアルはこんな感じに。
![depthBP.png](https://qiita-image-store.s3.amazonaws.com/0/102588/abfca3c2-17db-e22f-eee5-e7abe3cc401a.png)
(フォーカス距離がぶっ飛んだ数値になってるけど、この時はオープンワールド的な広さのもの作っちゃったのでこんな数値に…)

・オリジナル
<img width="600" alt="オリジナル" src="https://qiita-image-store.s3.amazonaws.com/0/102588/4b235316-4098-a5dc-e097-2675ab4bcf3c.jpeg">

・デプス
<img width="600" alt="デプス" src="https://qiita-image-store.s3.amazonaws.com/0/102588/b15c7d7c-5a7f-6160-9517-51b058399101.png">

マテリアルを**エンジンコンテンツ＞SceneDepth**にすると残念なことになってしまう…表示モードのシーン深度ですね
<img width="600" alt="デプス" src="https://qiita-image-store.s3.amazonaws.com/0/102588/f54dc8dd-669b-7fad-1659-93aaf5ce432a.jpeg">


---
#ワイヤーフレームを書き出したい

**レベルBP**で**Execute Console Command＞Command:viewmode wireframe**
![wire01.png](https://qiita-image-store.s3.amazonaws.com/0/102588/f05b2997-0f6a-709b-aef9-17b99622e976.png)
〼なテクスチャを貼るというのもありっちゃありなのでそのへんの使い分けは良きように。
ワイヤーフレーム以外もいけるので**[この辺](https://forums.unrealengine.com/showthread.php?65196-How-to-export-Matinee-movie-with-Buffer-Visualization-Modes-on)**を参考に。

ワイヤーフレームにした時にいろんなオブジェクトのワイヤーがごちゃごちゃしてうるさいことがあると思うけど、そういう場合はアクタ選択して**詳細＞レンダー＞Visible**のチェックを外していらないものを消すとか。
ただ、これやってると通常・ワイヤーの切り替えを頻繁にやるとミスが発生しやすいのでレベルBPでまとめちゃってもいいかも。

**レベルBP**で消したいもの全てに**Set Hidden in Game**を仕込む。
![wire02.png](https://qiita-image-store.s3.amazonaws.com/0/102588/b0ffd218-1a80-2757-23ca-6b0c36aa8e59.png)
ワイヤーフレーム表示解除するときはExecute Console Commandのリンク外しちゃえば以降のSet Hidden in Gameも動作しない配置にしておくとか。


---
#勝手に明るさ変わるんだけど…

**PostProcessVolume**の**Auto Exposure**をOFFる。
**Min Brightness**と**Max Brightness**の数値を同じに。
Brightnessの値は良きように。
![Auto Exposure.png](https://qiita-image-store.s3.amazonaws.com/0/102588/7924768d-0f0a-61e0-ae7a-c7b72b2f741a.png)


--- 
#オブジェクトを個別に書き出したい

**詳細＞レンダー＞Visible**で適当に。

ただこれだとフォリッジがどうにもならないという…
フォリッジを非表示にしたい場合は、**フォリッジ＞instance Sttings＞Cull Distance**の最大を100に。
![foliage.png](https://qiita-image-store.s3.amazonaws.com/0/102588/60fbca8c-8ca0-f90c-f3a3-a6dbd4ac322a.png)


---
#アンチエイリアスがなんかなぁ…

解像度2倍で書き出してコンポジット時に縮小しましょう。。。

---

とりあえずこの辺りを抑えておけば映像用のツールとしてUE4を使うことが出来るんじゃないかなぁって思います。
まだ弄り出してそんなに経ってないので、他にいい方法あるよ！とか、これも出来ないとまずくない？ってこともあると思いますが、その辺りは追々。