そうだ、ゲームを作ろう

現状や学んだことなど記録するブログ。間違ってたらごめんね

ぷちコン映像編2nd「灯台島」振り返り

お久しぶりです!

ヒストリア様主催のぷちコン映像編2ndに参加させていただきました。

テーマは「ぬくもり」でした。今回その振り返りをさせていただきます。

作品はこちら

 

今回はモデル、アニメーションなど、天球、音素材以外はすべてオリジナルのものとなっています。

お品書き

・作成前に見ていたものなど

・音楽

レイトレーシング

・海

・PostProcess

灯台のマテリアル

・モデル作成

・アニメーション

・編集について

・ちょっとした反省点

 

・作成前に見ていたものなど

これは全くの偶然ですが、作成前に見ていた記事が今回の作品に大きく関わっています。それがこれらの記事です。

sundaysundae.co

sundaysundae.co

sundaysundae.co

いずれもPontyPantsという方が書いた記事で、ローポリアート(とそのキャラクター)などを魅力的に見せるコツなどが記載されています。

特に最初の記事では

・Specularを高く設定する

・色はSaturationを低く設定する

・Depthを強調する(Fogを使用する、DoFを強くかける)

など今回の作品でも多用しているテクニックが出てきます。ちなみに今回殆ど全てのマテリアルのSpecularは1です。

ところで見てみれば分かると思いますが…

Low Poly art by Jeremy Edelblut

これ、まんますぎるよなぁ。(笑)

それから男性キャラクターは

lonelymountains.com

これのキャラクターからインスピレーションを受けています。

というか当時はこれぐらいのポリゴン数でちゃんとキャラクターが表現できるんだなぁ、と衝撃でした。

 

・音楽

今回音楽は「PIANO FLAVA」様の「Piano Improvisation #1」という曲を使用させていただいています。

www.youtube.com

実はこれの使用を決めた瞬間にかなり作品の方向性やイメージが決まったと個人的には思っています。音楽の決定を早めにするのは本当に重要で、動画ができてから音楽を探しても、たいてい合うものがなく冗談抜きで詰むことが多いです。

PIANO FLAVA様、素晴らしい楽曲をありがとうございました!

 

レイトレーシング

ところでローポリ作品は殆どがBlenderにおけるCyclesのようなレイトレーシング技術を使用したレンダリングエンジンを使用しています。これは独特の温かみを持つ表現がローポリと相性がいいから(というかEeveeやUE4標準のようなレンダリングエンジンだとローポリは安っぽく見える場合が多い)ですが…

じゃあ使おうぜ!レイトレ!

ということでレイトレーシングを使用することに決定しました。

UE4におけるレイトレを使う準備は簡単で、ProjectSetting->Platforms->Windows->DefaultRHIをDirectX12にし、

f:id:wvigler:20210115003308p:plain

ProjectSetting->Engine->Rendering->RayTracing->RayTracingにチェックを入れて再起動するだけです。もちろんプロジェクトを作成時にRayTracingをEnableにするとこれらの設定を自動でやってくれます。

f:id:wvigler:20210115004029p:plain

とはいえこれだけではまだ準備が整っただけです。特にGlobalIlluminationについてはまだ使用できないため、これを設定するためにはPostProcessVolumeが必要です。

PostProcessVolumeではRayTracingについて色々な設定ができますが、それについてはこちらを参考にしました。

www.slideshare.net

今回の場合一番重要なのはRTGI(RayTracingGlobalIllumination)です。先程も言った通りRayTracingの設定をしただけではRTGIはオンになりません。環境によってはあまりに重すぎるからです。今回、天球がVolumetricCloudを使用しておりただでさえかなり重いため、RTGIをオンにしたが途端とてつもない重さで作業がほとんどできなくなる…ならまだいい方で、最悪UE4が耐えきれず落ちます。

なのでこういう場合は作業中はワイヤーフレーム表示にするといい、というのはよく言われるのですが、とはいえ色味を確認したい場合も結構あるので今回はPostProcessVolumeを小さめに作ってInfiniteExtentのチェックを付けたり外したりすることも併用してやっていました。(そして設定を戻し忘れてレンダリングし直しになったことが何回か…)

ちなみにレンダリング時のRTGIの設定はBruteForceで現在シーン(灯台島がある方)はサンプル数12、過去シーン(街の方)は16です。残念ですが僕のグラボではこれより設定上げるとクラッシュの危険性がかなり上がります。もしかしたらFinalGatherでレンダリングした方が綺麗にできたかもしれませんが…これはこれでチラついてる気がするんだよなあ。

それからRTGIの副作用?なのかもしれませんが、画面全体が明るくなります。それが狙いでやってるので、影のシャープな感じがなくなるのは嬉しいんですが、これをBloomの強さとかで調整しようとすると今度はノイズが目立ってきて…みたいな悩ましい問題が起こります。結果的にちょっと陽光が眩しい感じになりましたが、違和感ないかな?

 

・海

海の作成に関してはこちらの動画を参考にしています。

www.youtube.com

ただし動画では半透明を使用していますが、今回は海に半透明は使用していません。理由としてはDoFを使用したい関係上、半透明を多用するわけにいかなかったからです。海を全部半透明にするなどとんでもない、DoFで問題が起きるに決まっています。

…じゃあ今回半透明とDoFで問題は起きてないんだね、というとさにあらず。炎は半透明を使用しているので…

f:id:wvigler:20210115022058p:plain

このシーンが一番酷いんですがDoFのかかった物体を半透明マテリアルの手前に置くと、本来ボケるはずのエッジがシャープになってしまいます。ここだけはシーン的にも本当にどうしようもなかった箇所で、他のシーンではなるべく半透明の手前にDoFのかかったものを置かない(そういう角度から撮らない)という解決法でなんとかしています。

海にはもう一つ罠がありまして、RayTracingの環境下でマテリアルのWorldPositionOffsetを使用する場合、Details->Rendering->RayTracing->EvaluateWorldPositionOffsetをチェックしないと表示が変になります。

f:id:wvigler:20210115054138p:plain

おそらくRayTracingの処理はWPOとか終わった後にPostProcessとして処理されるから…なんだと思います。

しかしながら上記の解決法でOKなのはUE4.25までの仕様のようで、UE4.26からは距離が一定以上離れるとまた変な表示に戻ってしまいます。これを防ぐために今回は水のマテリアルにはRayTracingを適用しないようにしました。これはMeshエディターにあるLOD設定のマテリアル欄にあるVisibleInRayTracingをオフにすることで設定できます。

f:id:wvigler:20210115054502p:plain

どこかの設定でRayTracingを適用したまま正常な表示にできないかなー、と探してみましたが、今回は時間もなかったし、そこまで目立つわけでもないのでこの形で行くことにしました。

 

・PostProcess

過去のシーンを作るにあたり、PostProcessで画面をセピアにするというのはとてもスタンダードな方法論だとは思います。ただ今回セピア調にしつつも色をちゃんと認識させたかったので、それに加えて少し工夫を入れています。

f:id:wvigler:20210115015823p:plain

左下の部分は一般的なセピアカラーを作成している箇所です。ここではそれに加えて自乗したカラーを掛け、更に明るさの調整を入れています。これによってカラーを残したままセピア調にすることができました。

 

灯台のマテリアル

f:id:wvigler:20210115031149p:plain

f:id:wvigler:20210115031243p:plain

 

・モデル作成

モデルの作成、及びアニメーションの作成にはBlenderを使用しています。ローポリの場合、BlenderにはDecimateという便利なModifierがありまして…これに全面的に頼ればOKなのかというとそういうわけではありませんが、スカルプトしたモデルをとりあえずこれでポリ数を減らして最後に手作業で手直し…という感じで使えます。ポリゴンは四角がいい!という人はShrinkWrapを使用してもいいですし…凹んでいるモデルはちょっと面倒ですが…

・アニメーション

3Dアニメーションのノウハウについてはある程度「アニメーションエイド」様の動画を参考にしています。

www.youtube.com

まあ今回作成したアニメーションの半分ぐらいは最終的な作品には残っていません。だって入りきらないんだもん!

アニメーションは今回かなり成長したと同時に反省点がある箇所でもありまして、AutoRigProのIKのオンオフ、回転のEulerとQuarternionを場当たり的に設定していった結果Export時に本当に大変なことになりました。

いちいちアニメーション毎に設定を探してExportしてReimportするなーんてハメになるので、良い子は絶対真似しちゃダメだぞ!(^_-)-☆

 

・編集について

レギュレーション的に大丈夫かなあ?と思ったことが一つだけあって、今回複数の時系列やライティング環境をまたぐ関係上、UE4上でのカット編集が難しくなりました。

一応MediaTrackを使用すればできなくはないんですが、画質が悪くなる上にUE4ってそういう目的で使うものなの?という疑問が湧いてきます。

そこで編集についてはAEを使用することにしました。編集したのはカット及びフェード、それから音なんですが、レギュレーションにはフェードと音に関しては認められているんですが、カットについては含まれてないんですよね。エフェクトやカラーはおろか速度変更すらしてないし大丈夫だとは思うんですが…

で思ったんですが、レギュレーション的に認められるならぶっちゃけバリバリ動画編集ソフトでカット編集したいなあ、と。理由は色々あるんですが、一言でいうとやっぱりUE4はそういうソフトではないから、ですね。向いてないことやる必要ないじゃん、と。

 

・ちょっとした反省点

音楽が始まってからはいいのだが、最初の効果音のみのパートが薄っぺらい。効果音については要研究、というか最低でもいくつか組み合わせないと安っぽい感じが出てしまうみたい。

 

というわけで「灯台島」の振り返りでした。12日になっても撮影が一部完了してなかったりしたので、終えられたことが本当に嬉しい!最後アップするときは「ここで誤操作で全部消えたらどうしよう」という緊張のし過ぎて吐きそうになってました。それだけに今はヤッター!って感じです!

それではまた!