Unreal Engine 4 のお勉強②Landscape作成時の設定項目

この記事はアドベントカレンダー[谷ゼミの落書き帳 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/drawing_pad_from_tani_seminar)の3日目の記事です。
空いてるので埋めます。
頑張ります。

# はじめに
本記事は[こっちの記事](https://qiita.com/kotarotaro_A/items/12ed50cd5a56157ebbe8)を読んでからお楽しみください。

大前提として執筆者の僕もまだまだ勉強中の身なので、ここには誤った情報が記載されている可能性があります。
その辺を考慮した上でこの記事は生暖かく見ていただき、ご指摘等コメントいただけると非常に助かります。
よろしくお願いします。

# 本題
さて、前回記事の[ここ](https://qiita.com/kotarotaro_A/items/12ed50cd5a56157ebbe8#landscape)ですっ飛ばした設定項目についてこの記事では記述していきます。

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/146275da-a37f-634d-fed8-343f06828fda.png)

では上から説明していきます。

- 新規作成
そのままです。これから新規でlandscapeを作成するときにチェックを入れます。

- ファイルからインポート
こちらもそのままです。ファイルからインポートします。
というのも、UE4では外部ツールで作成したLandscapeをインポートすることができます。
詳しい説明は[公式ページ](https://docs.unrealengine.com/ja/Engine/Landscape/Custom/index.html)に投げますが、画像データをインポートすると白が最高地点、黒が最低地点というように高低差のあるLandscapeを作成することができます。

- Location,Rotation,Scale
この辺は説明しなくてもわかると思います。
位置、回転、倍率です。言わずもがなxyzの3軸でそれぞれ設定が可能です。

## 次の3つはややこしいので、画像を1枚貼っておきます

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/63da63de-8163-d9f8-235f-f62c84db83a9.png)

- Section size
単位：クワッド
上記画像の青で塗りつぶされている部分のことをセクションと呼びます。
そのセクション内をいくつのクワッドで埋めるかという設定になります。
上記の画像だと7*7の設定にしたことになってます。
クワッドはlandscapeが持つポリゴン数に影響します。
1つのクワッドを三角ポリゴン2つで描画することになります。
そのため、1セクションの中に7*7クワッド存在する場合、1セクションは98ポリゴン持つことになります。

- Section Per Component
単位：セクション
上記画像の緑で塗りつぶされている部分のことをコンポーネントと呼びます。
コンポーネントの中にいくつのセクションを含むかの設定になります。
上記の画像だと2*2の設定になってます。
セクションはLODを計算する単位になります。
(LODについてはまた別の記事で。。)
(簡単に説明すると、カメラから遠くにあるものはどうせ見えないから詳細度下げて表示すること)

- Number of Component
そのまま、コンポーネントの数という意味です。
作成するLandscapeをいくつのコンポーネントで分割するかという設定になります。
上記の画像だとこれも2*2の設定です。
コンポーネントは、レンダリングおよびビジビリティの計算、コリジョンにおいて、「Unreal」の基本単位となります。（だそうです。公式サイトからそのまま抜粋しました）

- 全体の解像度
これは上記までの設定により自動で決定します。
Landscapeが持つ全頂点数です。
頂点はクワッドの4隅に1つずつあります。（当然重複は数えません）
そのため、少し考えるとわかりますが、Landscapeの一辺が持つ頂点数はクワッド数＋1になります。

上記の例で計算してみましょう。
コンポーネント数：2*2
コンポーネント内のセクション数：2*2
セクション内のクワッド数：7*7
ですので、一辺のクワッド数を計算すると
2*2*7で28個なので、頂点数は+1して29になります。
つまり29*29が全体の解像度になります。

もう一つ[前回の記事](https://qiita.com/kotarotaro_A/items/12ed50cd5a56157ebbe8#landscape)の例だと
コンポーネント数：25*25
コンポーネント内のセクション数：1*1
セクション内のクワッド数：63*63
ですので、計算式も一応書くと
一片のクワッド数は
25*1*63となるので、+1して1576となります。
つまり、1576*1576が全体の解像度です。

- 合計コンポーネント<br>
まあこれは、そのままです。
Number of Componentの計算結果になります。

# パフォーマンスについて
さて、Landscapeですが馬鹿でかい地面を作成する機能です。
そのため、昨今流行りのオープンワールドゲームなどで使われることが多いです。
そこで問題になってくるのが描画負荷、つまりパフォーマンスへの影響です。
ただ広い地面をひと固まりでポンと置くだけだと、近くも遠くも同じクオリティで描画することになってしまい、非常に非効率です。
そのため、細かい単位で分割して表示することで、負荷を分散することができます。
また、分割されている単位であるクワッド、セクション、コンポーネントはそれぞれ意味が異なるので、なにをどの数に分割すると最大限のパフォーマンスが発揮されるかが変わってきます。

僕自身はこの辺が全くの勉強不足で、正直まだ全然理解できておりません。
そのため、この章でも書けることはこれだけになります。
（申し訳ないです。）

# おわり
この辺を理解して、最高のパフォーマンスを発揮できるよう設計できる人がTA（テクニカルアーティスト）と呼ばれる最強の人なんだろうなあと憧れています。
頑張ろう。

冒頭にも書きましたが、僕が調査・勉強していることを書いているので、間違ってる情報があるかもしれませんので、気づかれた方はご指摘いただけると非常に助かります。

公式のガイドページを張っておきます。
日本語と英語で説明違ったりすること多いので両方読むことおすすめです。
（時間がない人はむしろ英語ページだけ読んでください）
https://docs.unrealengine.com/ja/Engine/Landscape/TechnicalGuide/index.html
https://docs.unrealengine.com/en-US/Engine/Landscape/TechnicalGuide/index.html
https://docs.unrealengine.com/ja/Engine/Landscape/Creation/index.html
https://docs.unrealengine.com/en-US/Engine/Landscape/Creation/index.html