2017/03/31

(UE4) Dead Tree Forest 制作過程


UE4で製作中の背景について技術的な部分で書けることを残しておこうと思います。
アップしてある画像は完成品ではないです。追加したい物がまだいっぱいあります。
完成してから書くべきだと思いますが、興味がある人は見てみてください。



  • 自分の紹介
独学からCG学生にジョブチェンジした人間です。
CG歴は2年ちょい。その前は1年くらいSkyrimのMODを制作していました。ライティング調整MOD、景観を変えるMOD、武器MODなど。
やりたいことをやり続けるために学生になることにしました。今年からです。

プレイするゲームはSteamで売っているものが中心。基本的に洋ゲーです。エロゲーもやります。

お気に入りのゲームはDota 2、ベセスダのゲーム、Witcher 3、Overwatch等。
国内のゲームだとソウルシリーズ、ニーアシリーズが好きです。

amazarashiのファンです。音源はほとんど買ってます。
好きな曲3つ挙げるなら、「爆弾の作り方」「終わりで始まり」「ライフイズビューティフル」

好きなイラストレーター 狗神煌大先生 しらたま大先生 八宝備仁大先生

好きなエロゲ声優 澤田なつさん 桐谷華さん 秋野花さん 青葉りんごさん

ツイッター
ArtStation



  • 使用しているツール
UE4 ・・・ 背景エディタとして使っています。リアルタイムは面白い。
Blender ・・・ メインのモデル制作ツールです。昔は学生でもなかったのでこれ一択でした。ハイポリローポリUV展開等モデル制作は基本的にこれです。
Substance Designer ・・・ メインのテクスチャ制作ツールです。タイリング出来るテクスチャを作るときに使う場合が多いです。
Substance Painter ・・・ 同じくテクスチャ制作ツールです。こっちはどっちかというとプロップ制作に使う場合が多いです。
Xnormal ・・・ ベイクはXnormalで行っています。Substanceにもベイクツールはあるんですが、経験上こちらのほうが質がいいと思っているのでこちらを使っています。
Photoshop ・・・ そこまで使用頻度は高くないです。用途はリサイズしたり、ちょっとした加工くらいで大体はSDでテクスチャを作っています。
Zbrush  ・・・ 安い方です。ポリゴンモデリングだと面倒なモデルの制作、ハイポリモデルのディテール追加等に使っています。




  • コンセプト
廃墟と自然を融合させた背景を作りたいと思って制作をはじめました。
イメージとして近いのはHorizon Zero Dawn、Crysis 3、Falloutなどだと思います。
枯れた森の中に錆びついた建物の廃墟がある雰囲気を目指しています。
現在はまだLandscape関係のアセットを作っている段階です。
残念ながらメインの廃墟はまだ手を付けられていません。

思った以上に時間がかかったりモチベーションが常にMaxでなかったり。
そもそもUE4を触り始めたのが4ヶ月前くらいなのでエンジンの検証にも時間を吸われています。 
明日から本気出す(;´Д`)・・・




  • マテリアル (UE4編)
UE4でのマテリアル制作に関しては茄子さんともんしょさんのマテリアルデザインの本に大変助けられました。
買って損はないです。むしろ得しかないです。おすすめです。(アフィリエイトではないです)
この本に書いてあるような基本的な事を理解している前提で書きます。



Landscapeのマテリアル

Landscapeのマテリアルは自作のマテリアルファンクション(以下MF)を混ぜてできるだけ単純にしています。今のところ3種類のマテリアルを使っています。

左側のDistance FadeのBox内で、遠近でテクスチャのタイリング数を変更しています。
本で紹介されているやつです。
自作したMFを使っています。ScalarParameterを付けるだけで完成です。


右側の方のノード群が各種マテリアルです。これも自作したMFを使っています。
これのおかげで各種マップのインプット、Roughness、Heightの調整、BaseColorの調整等が簡単になりました。
マテリアルごとに2枚同じテクスチャが置いてあるのは、遠近それぞれテクスチャを用意しないと動作しなかったためです。
UE4のマテリアルに関してはMFを作っておくと本当に重宝します。
一度作っておけばプロジェクトを跨いで使いまわしたりも出来ますしね。
 

Landscape Layer Blendの後にTessellation用の自作MFをはさんでいます。
Tessellationの強さ、距離減衰、減衰のコントラスト、ポリ割の細かさを調整できるようになっています。
僕のPCはGTX970を積んであるのでテッセレーションを使ってもそこまでパフォーマンスに響かないんですが、重いのは確かだと思います。


マテリアルインスタンス化すれば上で紹介したパラメータがこんな感じで出てくるのでエディタ内でいつでも変更できて即反映されます。楽しいです。
リアルタイムでいつでも変更できる事がたくさんあるのがUE4の一番の面白さですね。


岩のマテリアル





岩のマテリアルは、
ベイクしたノーマル岩マテリアル(WorldAlignTextureで貼り付け)+エッジを明るくするマスク(岩の上部のみ)
で構成されています。
上にある動画にある通り、ベイクしたノーマルでディテールを残しつつ、どんな角度や大きさで岩を置いてもマテリアルが綺麗にレンダリングされるようになっています。




  • マテリアル(SD編)





地面や草、木の枝等マテリアルはPBRに対応したSD6で制作しています。


Substance Designerは習得に相当の時間がいると思いますが、慣れてくると本当に便利で無限にテクスチャを生成できるので触ってみる価値ありです。

私が制作したマテリアルのギャラリー(ArtStation) 動画もありますので見てみてください。

ただ、作れるものには得手不得手があるように思います。
人工物(鉄、セラミック、プラスチック、コンクリート等)を作るのは比較的簡単ですが、自然物(地面、木の幹、葉、草)などは撮影した写真を使ったり外部テクスチャサイトで購入する方が手っ取り早いし質がいいものが出来ると思います。
場合によってはZbrush等でベースのタイリングメッシュを作成し、ベイクしたものをSDに持ち込んでって作業がいると思います。

Uncharted 4: Various Materials
Uncharted 4: City Chase Materials

アンチャーテッド4のようなほんの少しフォトリアルから外れた質感がSubstanceの一つの終着点なのかなと思います。
個人的な意見です。



結構古いものもあって、今作ったらもっとよく出来るだろうなってものもあるんですが、制作したSubstanceの一部を下の記事にまとめてあるので参考にしてみてください。SBSとSBSARどっちも入っています。
Googleドライブにあるものは簡単な解説をつけています。興味がある人はSubstance DesignerでSBSファイルを開いてみてください。

Substance関係の配布物まとめ





  • 植物関係

植物は基本的にBlenderでモデルを作って板ポリにベイクしています。




枝はBlenderのSaplingで作っています。便利なアドオンで最初から入ってます。
葉は枝をメッシュに変換した後に葉のモデルをParticle(Hair)で大量に発生させてそれっぽく作っています。



草も似たような手法で作っています。

シェーダー複雑度が軽くなるように、ギリギリのところを切り取ったものを使っています。
負荷を考えた上で、本当の板ポリ(真四角に近いもの)にしてポリゴン数を減らすべきなのかシェーダー複雑度を軽くするべきなのかまだちょっとわかりません。


テクスチャはSD6でノードを組みました。
ノーマルマップ、AOマップ、マスクマップ(アルファ抜き用)をXnormalでベイクしてインポートした後にパラメータをいじるだけでテクスチャが出来ます。
葉が付いている草のためにIDマップで任意の部分の色を変更できるようにもしてあります。
本当は一つ一つPhotoshop等でテクスチャを作るのがいいんでしょうけど、個人制作の時間の都合上、効率化しないと時間がいくらあっても足りないのでこういう小細工でごまかしています。





  • 木について


SpeedTreeはすごく気になってるんですけど、ツールのオペレータ化するのが怖いので手作りしています。
特別なことはしていません。
円柱に板ポリを貼り付けていくだけです。枯れたPineの木を参照しています。
Blenderでレンダリングした画像からBillboradも同時に作成しました。UE4内でカメラから離れたものはこっちのLODモデルに切り替えて負荷軽減しています。



葉の頂点ノーマルも編集しています。動画にある通り、編集しないのとしたのでは影の出方が全然違います。
PolycountのFoliageの項を見ていて見つけたテクニックです。
Foliage - polycount

ありがたいことにBlenderで頂点ノーマルの編集ができるアドオンがあったのでリンクを貼っておきます。
[Addon] Yet Another Vertex Normal Editor (Y.A.V.N.E.)


こんな感じで木にカプセルみたいにメッシュをかぶせて板ポリのノーマルを一括編集している感じです。
UE4では頂点ノーマルを編集した両面表示のメッシュの正確な表示のために、特殊なノードを挟む必要があります。例のマテリアル本を読みましょう。




葉のアニメーションは草のアニメーションに使われるSimpleGrassWindノードを使っています。
揺らしたくない場所(木で言えば幹の周辺、草で言えば根本)には頂点カラーを黒く設定して揺れないようにしてあります。UE4のマテリアルにも頂点カラー取得用のノードを足す必要があります。
頂点カラーは葉のパーツを作った段階で塗りましょう。完成してからでは塗るのが大変です。僕は後先考えない馬鹿だったので完成したあとで泣く泣くちまちま塗りました。





  • ライティング


エンジンに元々あるこれらを調整しています。
LUTも使用していません。
ライトマップは一切焼いていません。個人制作ですしライティングのベイクは面倒なので。
自分の環境(i5+GTX970+8GRAM)で60FPSは安定して出てるのでパフォーマンスはそこまで気にしてないです。
SkyLightはMovableにしてDFAOを使うと綺麗に環境光が出るのでおすすめです。

ArtStationやYouTubeのUE4作品動画等をみて、自分がどういうライティングやテイストが好きなのかを知って、それに近づけてみるのがいいのかなと思います。


あとは、Flickrという写真投稿サイトに、ゲーム(主に洋ゲー)のスクショ投稿コミュニティがあるので見てみるのもおすすめです。
昔は気に入った人をフォローして毎日チェックしてました。今はパスワードを紛失してしまってログインできずオワタ状態です(;´Д`)・・・
よく見ていたコミュニティやお気に入りだったユーザーのリンクを貼っておきます。ほんとうに綺麗です。
vgAtmosphere(コミュニティ)

Anthemiosさん
Berduuさん
Den7onさん
K puttさん






  • ランドスケープ

ランドスケープは今のところ手作業でスカルプトしています。今後はHeightMapを使った地形生成に挑戦してみたいです。そのほうが断然きれいに作れるので。
木や草はFoliageツールでペイントしています。
Landscape Grass Typeで半自動化も試してみたんですが、細かい調整が出来ないのが気に入らなかったので、ペイントは全て手作業で行っています。
大規模なオープンワールドを作っているわけではないので、今のところは手作業で問題ないです。
赤く囲った部分で草のカリングが出来るので設定しておくといいと思います。何も設定しないとカメラが引いても草がカリングされずに重くなるので。ちなみにLandscape Grass Typeを使わない場合各草ごとにこれを設定する必要があります。
背の低いものやあまり重要じゃないものはカリングの距離を縮めています。
木はカリングではなく、メッシュのEditでLODの設定をする必要があります。(もしLODを使う場合)





  • 今後の予定・課題
全体のクオリティアップ、アセットの追加、メインの建物の制作。
満足できるものが出来たらUE4の動画エディタで短い動画にしようと思っています。
先は長い。


見てくれてありがとうございます。

No comments:

Post a Comment

匿名希望の方はAnonymousを選択してください。