Unreal Engine 4 のお勉強①Landscapeで山でも登ろうか

お疲れ様です。
今年もやってきました。
[アドベントカレンダー](https://qiita.com/advent-calendar/2019/drawing_pad_from_tani_seminar)です。
初日です。頑張ります。
大急ぎで書くので内容うっすいです。

自己紹介

- 谷ゼミOB
- ゲームエンジニア

以上

#はじめに
実は[昨年のカレンダー](https://qiita.com/advent-calendar/2018/drawing_pad_from_tani_seminar)の初日記事も僕でした。
[そしてUnreal Engine 4のネタでした。](https://qiita.com/kotarotaro_A/items/ea2b6666ff70c5957060)

この記事で適当にチュートリアルだけやってその後頑張って勉強して記事書きますとか言って書きませんでした。
でも実は勉強してました。
なので今年こそ勉強した内容をそこそこ記事にしていけたらいいなと思います。

# 目標
急に寒くなってきて家から出るのが億劫になってきました。
そんなときでもUnreal Engine 4があれば山登りだってできちゃうんだから。
ってことで山登りします。

# マシンスペック
昨年の記事はMacBookで頑張ってUnreal Engine 4を動かしてましたが、今年の僕は一味違います。
マシンを購入しました。

- OS : Windows 10 home
- CPU : Ryzen 5 2600
- GPU : GeForce RTX 2060
- Memory : 16GB
- Storage : 500GB(SSD),4TB(HDD)

僕はこのマシンでFortniteを頑張っています。

# インストールからプロジェクト作成まで
[ここ](https://www.unrealengine.com/ja/what-is-unreal-engine-4)からEpic Games Launcherをダウンロードしてください。
そしたらLauncherを起動してUnreal Engine 4をインストールしてください。
この辺は[昨年の記事](https://qiita.com/kotarotaro_A/items/ea2b6666ff70c5957060)を参考にしてください。

Unreal Engine 4を起動したら、
新規プロジェクトのタブ　→　ブループリントのタブ　→　サードパーソンを選択
プロジェクトの保存先とプロジェクト名を決めたら、プロジェクト作成ボタンをぽちー
（プロジェクト名はしっかりと考えてつけましょう）
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/9eace3ef-ff05-68af-80b1-0da0701d13e6.png)

# サードパーソンプロジェクト
プロジェクトを作成するとUnreal Editorが立ち上がります。
もう何も考えずにプレイボタンを押してみてください。
（僕はレイアウトをいじってるので若干画面がことなりますが気にしないでください）
（あ、マウス操作とか持ってかれますが、Escキーで戻ってこれるんで安心してください）
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/30277181-e262-50a9-bd18-208adf6696b7.png)
するとどうでしょう。
プロジェクトを作成しただけだというのに、TPSゲームのようにマウスとキーでキャラクター操作が可能です。
WASDキーで移動、スペースキーでジャンプ、マウスで視点を変更、カメラの追従、壁や階段のコリジョン、などなど。
そうなんです。ある程度のことなら何もせずに完成しています。それがUnreal Engineです。
（動画載せるのめんどくさいので載せません。。。）

もうこれでこの記事の目標の90％は達成されました。
あとは山があればOKです。

# 山づくり
さてあと10％を頑張ります。

## 新規レベル作成
ファイル　→　新規レベル　→　Default
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/4a123825-4afb-79c1-63e7-7a81f81da9e0.png)
すると先ほどとは違う画面になります。
この時点で一度ツールバーの「現在のレベルを保存」ボタンを押して保存しておきましょう。
保存先とレベルの名前を問われるので、適当に新規フォルダ作って、適当に名前つけて保存しておいてください。
僕はYAMAフォルダを作ってyama_noboruって名前で保存しました。

Unreal Engineでは世界をレベルという単位で管理します。
プロジェクト生成時にいた世界は
コンテンツ　→　ThirdPersonBP　→　Mapsの中にある、ThirdPersonExampleMapこいつです。
試しにダブルクリックしてください。さっきの世界に戻れますので。

## Landscape
それでは先ほど作成したyama_noboruレベルに戻りまして、プレイボタンを押してみましょう。
するとThirdPersonExampleMapこれと同様に、パーソン君が歩き回れます。
違いはオブジェクトが配置されていないことと壁がないことくらいです。
Escキーでプレイを停止したら、パーソン君が歩いてた床を消してしまいましょう。
エディタ上から床をクリックする、もしくはアウトライナからFloorをクリックして、選択しておきます。
そして右クリックから削除、もしくはDeleteキーで削除できます。
試しにここでプレイボタンを押してみてください。
床がないのでひたすら落下し続けるパーソン君を眺めることができます。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/eea0bcd3-1bdd-6bfa-51cc-2e2c63dca76c.png)
かわいいですね。

かわいそうなので新しく地面を与えてあげましょう。
せっかくなのでそこそこ広い地面を与えます。
モードタブから真ん中の山のタブをクリックしてください。
何も考えずに下記画像のように設定して作成ボタンを押してください。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/e00178b5-aad3-5220-1a58-1951f5d4beaf.png)

そしてプレイボタンをぽちー
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/298d8f2b-2390-4100-8b93-603baf6e1c2f.png)
これでもかってくらい広い草原を走り回ることができます。
（ここで黒い線が入ってたり、左上に赤文字の警告出て気になる人は、ツールバーのビルドボタンを押すと幸せになれます。）

このでかい地面ですがLandscapeという機能になります。
さきほど説明を飛ばした作成時の設定もろもろですが、今回の記事での説明は省きます。
けっこう長くなりますので、別記事のネタにしたいかなあと。
だだっ広い地面を作る機能だと思っててください。

## スカルプト
それではLandscapeに手を加えて山を作成します。
モードタブ　→　ランドスケープ　→　スカルプトを選択。
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/655109fa-e1e2-fa2d-a3fe-89b16ae69ddc.png)
これで配置したLandscapeの形状を変更することができます。
試しに上記の画像と同じ設定のままLandscapeをマウスで長押ししてみてください。
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/e4348437-9f90-26a3-4433-e558f6d9f4a7.png)
このようににゅーんと盛り上がって山ができたと思います。

このように選択している編集設定によって、マウスのクリックでLandscapeの形状をいじることができます。

- Landscape Editor：どのような形状でどのような影響を加えて変更するかの設定
- Tool Setting：マウス長押し時の効果の強さの設定
- Brush Settings：マウスで選択される範囲の大きさの設定

大まかな説明ですがこのような設定ができます。
自分でいろいろ変更してみてあれこれやってみると面白いと思います。
Let's try!!

## 操作のコツ
エディタ操作について少し説明しておきます。
カメラの操作がややこしいです。

- 左クリックかつ前後：カメラが前後に動きます
- 左クリックかつ左右：カメラが左右に首を振ります
- 右クリックかつ前後左右：カメラの角度を変更できます
- 両クリックかつ前後：カメラが上下に移動します
- 両クリックかつ左右：カメラが左右に移動します

慣れるしかありませんが、慣れると楽です。
頑張ろう。

そしてでかい地面を配置したので通常の移動距離だとだいぶしんどいです
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/2e97e523-f219-8cd0-f25e-2bf78cce8ed1.png)
ここでカメラ速度を変更できますので、8にしとくといいです。

# 僕の山完成
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/ce20589f-164b-5441-d415-95da70f5fc13.png)
こんな感じになりました。
ではさっそくプレイボタンを押してみます。

・・・
あれ？
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/b1175efc-830d-b1bd-c20c-5bdf0ba70e21.png)
落下するパーソン君
かわいいですね。

これはですね、山を作ったせいで、パーソン君のスポーン位置が地面より下になってしまいました。
そのため開始した瞬間にパーソン君は落下し始めます。
助けてあげましょう。

まずアウトライナから
PlayerStart　→　位置　→　Zの値を30000くらいにしてあげましょう。
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/2ed5d3b4-e9fb-92ba-ca12-d0c48d19522a.png)

あとはせっかくなので、浮島に立たせてあげましょう
モード　→　ジオメトリ　→　ボックスを選択してエディタ上にドラッグ＆ドロップします
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/53fbfc8e-dfc1-36d9-d1a1-9e0709273e97.png)
アウトライナから設定を画像のように変更
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/6dd76f0e-cdaf-8e51-6a62-8f881f00855b.png)
これでプレイボタンを押すと
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/0600672a-f46c-f19a-5cad-237eaba38f84.png)
このように浮島から下界を眺めることができます。

それではさくっと浮島から飛び降りて山でも登りましょう。
適当に作ったので登れない傾斜だらけですが楽しいですね。
うん。
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212804/aefeacf7-cb24-86ee-c294-ea17210e589b.png)

それでは「すべて保存」ボタンを押して作業は終了です。

# まとめ
目標達成したのでこれでこの記事は終わります。
Landscapeは当然もっとできることあるので、これについて今後また記事にします。

今回の記事で僕はコーディングを一度もしていません。
それでもこんなに遊べるのです。
Unreal Engineすごい。