Endless Runner 2 - Spawning the Course

# Endless Runner
## 2 - Spawning the Course

[![2 - Spawning the Course](http://img.youtube.com/vi/3om6yJiYMcg/0.jpg)](https://www.youtube.com/watch?v=3om6yJiYMcg)


### BP_FloorTileを作成する

|名前  |親クラス  |
|---|---|
|BP_FloorTile |Actor |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/c545366c-5c95-e779-06f3-089fd274b03b.png)

#### コンポーネントの追加

|名前  |追加するコンポーネント  |
|---|---|
|Floor |Cube |


Floorの詳細を変更

Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|ロケーション  |500.0  |0.0  |0.0  |
|ローテーション  |0.0  |0.0 |0.0 |
|スケール  |10.0  |10.0  |0.1  |

Materials

|項目名  |値  |
|---|---|
|Element0  |M_Brick_Clay_New |

FloorをDuplicateしてWall1,Wall2を作成

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/3b6a9cfa-5185-cffe-c8f5-8ab6253aa999.png)

Wall1 Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|ロケーション  |500.0  |-500.0  |80.0  |
|ローテーション  |0.0  |0.0 |0.0 |
|スケール  |10.0  |0.1  |2.0  |

Wall2 Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|ロケーション  |500.0  |500.0  |80.0  |
|ローテーション  |0.0  |0.0 |0.0 |
|スケール  |10.0  |0.1  |2.0  |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/6def3aac-0735-522e-3105-abfc41d22aac.png)

#### コンポーネントの追加

|名前  |追加するコンポーネント  |
|---|---|
|AttachPoint |Arror |

Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|ロケーション  |1000.0  |0.0  |0.0  |
|ローテーション  |0.0  |0.0 |0.0 |
|スケール  |1.0  |1.0  |1.0  |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/e4b24bd2-764b-ea52-65e4-6e337d4b4a5b.png)


#### Funcation:GetAttachTransformの作成

GetAttachTransformを作成する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/62a430f8-e382-0a66-8d0c-296fc4dc2e31.png)

**GetAttachTransform**

**Output**

|変数名  |変数の型  |
|---|---|
|AttachTransform |Transform |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/35f70e5e-f18d-287d-f9bc-1ae805645b65.png)

**処理の実装**
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/e724551e-0ecc-82a5-8014-51b3860c647c.png)

### 新規レベルの作成

File -> New Level
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/ee02c0cf-f20f-586e-060f-ff1e12b8cdc9.png)

Defaultを選択
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/7a7f78a6-69e4-1280-b449-9e5fdc5087a3.png)

#### RunGameModeの編集 1
ThirdPersonGameModeをRunGameModeにリネーム
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/12d87f2f-0c4e-ad55-4120-33072fe1eaa7.png)

RunGameModeを開く
Open Full Blueprint Editorをクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/306e775f-ef29-73bd-d227-b9d05c385d26.png)

**AddFloorTileの作成**

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/9e8c9e2b-927a-2e76-ac77-b16d481b7b35.png)


|変数名  |変数の型  |
|---|---|
|NextSpawnPoint |Transform |

**処理の実装**
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/2bd4e389-50af-6b0c-9846-32ee06122770.png)

BeginPlayを実装
開始時にAddFloorTileを呼び出す
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/ce17bc4f-0891-796a-5750-a61d5a159abc.png)

WorldSettingsのGameModeを変更する

**GameMode**

|項目名  |値  |
|---|---|
|GameModeOverride |RunGameMode |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/588d628b-b94b-c6e2-5b8a-0878fa33f362.png)


初期に配置されているFloorオブジェクトを削除する
Slimulateで実行する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/ebd9a540-0b64-6957-c3e7-5e91a5d37fe2.png)

BP_FloorTileは表示される
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/3dc39271-85c0-4cd1-1d61-7d428d78798b.png)

#### BP_FloorTileを連結するように修正する

##### BP_FloorTile：AddFloorTileの変更

**処理の変更**
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/b6f70ad1-1273-a8be-7d3a-1c01cac06719.png)

##### BeginePlayの処理を変更する
開始時に9つ分AddFloorTileを呼び出す
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/1774c5f2-1c11-f422-923d-9996e2aad5c8.png)

##### プレイして確認する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/13f8fd3e-07ce-b9cc-73fd-c999ffd1657c.png)


#### BP_FloorTileを通り過ぎたら消す

##### BP_FloorTileにEndTriggerを追加する

|名前  |追加するコンポーネント  |
|---|---|
|EndTrigger |Box Collision |


EndTriggerの詳細を編集する

Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Location  |1000.0  |0.0  |190.0  |
|Rotation  |0.0  |0.0 |0.0 |
|Scale  |1.0  |1.0  |1.0  |

Shape:Box Exient

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Location  |32.0  |500.0  |200.0  |

Collision

|項目名  |値  |
|---|---|
|Collision Presets |OverlapOnlyPawn |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/2f61e268-8b33-6351-eba7-4cb56b05a92a.png)

##### EndTriggerのOn Component Begin Overlapを編集する

On Component Begin Overlapを追加する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/bd2e7daa-2f7c-1004-eceb-2b51c1db93e8.png)

**処理の実装**
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/496510e7-6ce7-27b9-af3d-26e82df9f648.png)

プレイして確認する

プレイ中にカメラを話して確認する方法
[ゲーム中に視点を切り替えてオブジェクトの状況を確認する](http://qiita.com/gansaibow/items/e1b2633c26e535ff3823)
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/1e56c9a4-841c-1f83-6fb1-a1a05dc78e46.png)

EndlessRunnerでLevelを保存する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/3195142b-5be2-af99-b3f7-5b39790fbde1.png)