Endless Runner 6 - Turning Corners

# Endless Runner
## 6 - Turning Corners

[![6 - Turning Corners](http://img.youtube.com/vi/E8D3TMvrYiM/0.jpg)](https://www.youtube.com/watch?v=E8D3TMvrYiM)


### BP_FloorTile_RightCornerを作成する

BP_FloorTileからChild Blueprint Classを作成する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/4391e944-025c-9a26-ecf4-1f501371113e.png)

名前をBP_FloorTile_RightCornerに設定する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/346bbb3f-dc62-06d9-6fce-df82ee7af957.png)

#### Parent:Construction Scriptを呼ばないようにする
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/4499b25f-d104-f0e9-70ae-2517b0f35c31.png)

#### Wall2を修正する

Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Location  |1000.0  |0.0  |80.0  |
|Rotation  |0.0  |0.0 |-90.0 |
|Scale  |10.0  |0.1  |2.0  |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/15705672-f0ef-432b-c554-036c4e7e56ac.png)

#### EndTriggerを修正する

Transform

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

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/ebd123a6-8370-ad33-4d5a-bcd3725ded9f.png)

#### AttachPointを修正する

Transform

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

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/5edab73c-667f-9e8c-effb-6f3313fc5350.png)


#### TurnZoneを追加する

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

Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Location  |500.0  |0 |110.0  |
|Rotation  |0.0  |0.0 |90.0 |
|Scale  |1.0  |1.0  |1.0  |

Shape

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Box Extent  |480.0  |480 |64.0  |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/eb0fcc11-699a-7cf0-ce61-3cd0ee6e5109.png)

Collision

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

On Component Begin Overlapを追加する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/4c93f02f-fad8-044d-1861-f31dcc940bca.png)

処理を実装する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/4ac99ea8-a08c-6eb4-a322-ed42eeafdd39.png)

### BP_FloorTile_LeftCornerを作成する

#### BP_FloorTile_RightCornerからBP_FloorTile_LeftCornerを複製する

BP_FloorTile_LeftCornerをDuplicateする
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/683ab7de-77b9-315e-6383-7a574c5a49dc.png)

名前をBP_FloorTile_LeftCornerに設定する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/97755a6e-dfe0-cfb8-58e1-e689fae4b8df.png)

#### Wall1を修正する

Transform

|項目  |X  |Y  |Z  |
|---|---|---|---|
|Location  |500.0  |500.0  |80.0  |
|Rotation  |0.0  |0.0 |0.0 |
|Scale  |10.0  |0.1  |2.0  |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/b7c943a4-05bf-27c2-b9f7-ce49d1d75997.png)

#### EndTriggerを修正する

Transform

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

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/a07fca96-b5f5-50d1-0b85-6c962f712dde.png)

#### AttachPointを修正する

Transform

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

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/b93e6715-2499-98fe-5f07-5054c1335a4e.png)

### RunGameModeを直線系、コーナー系の生成をするように修正する

#### Function:AddFloorCurveを作成する

AddFloorTileをDuplicateする

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/5e5bd871-8c26-034e-5466-743c9982ecbe.png)

名前をFloorCurvesに設定する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/4d7ba19e-a91e-e556-756e-4d2af47d2949.png)

処理を実装する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/de3d77f7-6d1e-8669-c3e4-7d22a32bcfe1.png)

#### 変数：CurrentStraightを追加する

|変数名  |変数の型  |デフォルト値 |
|---|---|---|
|CurrentStraight |Integer |0|
|StraightMax |Integer |7|

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/fef4df27-0666-da73-c04b-64a745dd9462.png)


#### AddFloorTileを修正する

直線を作成するごとにCurrentStraightをインクリメントし、
CurrentStraightがStraightMaxの最大値を越えたら、AddFloorCurveを呼びだすように修正する

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/a4f6948f-89f3-c198-e6cd-8010cd2b0ee4.png)



#### AddFloorCurveを修正する

CurrentStraigtを0に戻す
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/a7e0fd74-6f79-986d-d08a-b4630d80b3dd.png)

#### ClassDefault FloorCurvesの初期値を設定する

ClassDefaultをクリックし、FloorCurvesにコーナー系ブループリントを追加する

FloorCurves

|インデックス  |値  |
|---|---|
|0 |BP_FloorTile_LeftCorner |
|1 |BP_FloorTile_RightCorner |

![image](https://qiita-image-store.s3.amazonaws.com/0/111261/aef5dc39-9b5a-a985-3fd4-06a1cb1b0df8.png)

プレイして確認する

コーナーが作成される
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/2ff92b0b-be04-c11f-b6e1-a72b0ba9b430.png)

コーナーでAかDを押すと向きを変える
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/af335c67-7013-d724-f43f-a995a2b4f6d2.png)

コーナーで行き詰ってしまったら身動きが取れなくなる
7 - Wrap Upで行き詰まりの際にキャラクターが死ぬように修正する
![image](https://qiita-image-store.s3.amazonaws.com/0/111261/acfcf8e8-6add-febe-9de9-e3790eda4645.png)