LoginSignup
2
2

More than 5 years have passed since last update.

Endless Runner #UE4Study

Last updated at Posted at 2017-02-16

Endless Runnner

確認バージョン

4.14.3

公式ドキュメント

Youtubeのチュートリアル動画を自動翻訳字幕を表示させる

1 - Introduction & Player Control

1 - Introduction & Player Control

Projectの作成

項目 選択内容
BP or C++ ブループリント
テンプレート ThirdPerson
ターゲット デスクトップ/コンソール
クオリティ ハイエンド
スターターコンテンツ有無 スターターコンテンツ有り
フォルダパス 他のクラスが使用しないフォルダを選択する(ない場合は作成する)
プロジェクト名 EndlessRunner

image

キャラクターセットアップ 1

ThirdPersonCharacterをRunCharacterに名前を変更
image

RunCharacterを開いて初期設定を削除する
image

CameraBoomのSocket Offsetを変更
Z: 100
image

前に進む処理をEvent Tickに置き換える
image

開始地点を後ろに下げて、プレイして確認する
image

前に自動的に進む
左右には動くことが出来る
image

キャラクターセットアップ 2 A,Dで向きを変える

変数名 変数の型
CanTurn Boolean
DesiredRotation Rotator

image

image

image

image

image

設定を戻す
Scale Valueを1
image

CanTurnをfalse
image

Inter Speedを10に設定
向きを変えるスピードが速くなる
image

image

向きを変えられるエリアに入ったら向きを変えられるようにする

image

image

エリアに入ったらCanTurnをTrueに設定する
image

向きを変更したら、向きを変えられないようにCanTurnにFalseを設定する
image

Trigger BoxのActor Hidden In Gameのチェックを外す
image

エリアに入った後にAorDで進行方向の向きを変える。
image

2 - Spawning the Course

2 - Spawning the Course

BP_FloorTileを作成する

名前 親クラス
BP_FloorTile Actor

image

コンポーネントの追加

名前 追加するコンポーネント
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

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

コンポーネントの追加

名前 追加するコンポーネント
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

Funcation:GetAttachTransformの作成

GetAttachTransformを作成する
image

GetAttachTransform

Output

変数名 変数の型
AttachTransform Transform

image

処理の実装
image

新規レベルの作成

File -> New Level
image

Defaultを選択
image

RunGameModeの編集 1

ThirdPersonGameModeをRunGameModeにリネーム
image

RunGameModeを開く
Open Full Blueprint Editorをクリック
image

AddFloorTileの作成

image

変数名 変数の型
NextSpawnPoint Transform

処理の実装
image

BeginPlayを実装
開始時にAddFloorTileを呼び出す
image

WorldSettingsのGameModeを変更する

GameMode

項目名
GameModeOverride RunGameMode

image

初期に配置されているFloorオブジェクトを削除する
Slimulateで実行する
image

BP_FloorTileは表示される
image

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

BP_FloorTile:AddFloorTileの変更

処理の変更
image

BeginePlayの処理を変更する

開始時に9つ分AddFloorTileを呼び出す
image

プレイして確認する

image

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

EndTriggerのOn Component Begin Overlapを編集する

On Component Begin Overlapを追加する
image

処理の実装
image

プレイして確認する

プレイ中にカメラを話して確認する方法
ゲーム中に視点を切り替えてオブジェクトの状況を確認する
image

EndlessRunnerでLevelを保存する
image

3 - Creating Obstacles

3 - Creating Obstacles

BP_Blockerを作成する

BP_Blockerを作成する

名前 親クラス
BP_Blocker Actor

ブロック用の岩のStaticMeshを追加する

名前 追加するコンポーネント
Rock StaticMesh

Rockの詳細を設定する

Static Mesh: Static Mesh

項目名
Static Mesh M_Rock

BP_FloorTileを編集する

SpawnPointL,SpawnPointC,SpawnPointRの追加

名前 追加するコンポーネント
SpawnPointL Arrow
SpawnPointC Arrow
SpawnPointR Arrow

SpawnPointL Transform

項目 X Y Z
Location 890.0 -290.0 30.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

SpawnPointC Transform

項目 X Y Z
Location 890.0 0.0 30.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

SpawnPointR Transform

項目 X Y Z
Location 890.0 290.0 30.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

image

Function:SetSpawnPointsを作成する

image

変数SpawnPointsの追加

変数名 変数の型
SpawnPoints Transform(配列)

Function:SpawnBlockerを作成する

image

Addd Child Actor ComponentノードのChild Actor Classを[BP_Blocker]に設定する
image

処理の実装
image

Construction Scriptを編集する

処理の実装
image

Simulationボタンを押すとランダムにRockが配置されることが確認することが出来る
image

プレイするとランダムにRockが配置されることを確認することが出来る
image

キャラクターのスピードが遅いので、Max Walk Speedの数値を大きくする
1. RunCharacterを開く
2. CharacterMovement(Inherited)を選択する
3. Max Walk Speedを1500に変更する
image

SP_Blokerに衝突するようにSM_RockにCollisionを作成する

BP_FoorTileを開いてSM_Rockを開く
image

image

ApplyをクリックするとMeshの形状に近いCollisionが作成される
image

Save
image

プレイするとRockにぶつかるとキャラクターが止まるようになる
image

SP_Blokerに衝突したら爆発するようにする

RunCharacterにCustomEvent: Deathを追加する

RunCharacterを開き、CustomEventを追加する
CustomEventの名前をDeathに設定する
image

処理を実装する
image

BP_BlockerのRockにOn Component Hitを追加する

Rockを選択して、On Component Hitを追加する
image

処理を実装する
image

プレイしてBP_Blockerに衝突すると、爆発する
ただし、爆発し続けてしまう
image

一度だけ爆発するように修正する

変数を追加する

変数名 変数の型
IsDead Boolean

Deathイベントが発生したらIsDeadをTrueに設定する
image

前に移動する処理にDeathイベントが発生した際に前に進まないように判定文を追加する
image

プレイして確認する
1度しか爆発しない
image

リスタートを実装する

Deathイベントの末尾にリスタート処理を実装する
image

プレイして確認する
BP_Blockerに衝突後、最初から再開する

image

4 - Adding Pickup Items

4 - Adding Pickup Items

BP_Itemを作成する

BP_Itemを作成する

名前 親クラス
BP_Item Actor

コンポーネントを追加する

名前 追加するコンポーネント
Coin Static Mesh
PointLight Point Light
RotatingMovement Rotating Movement

Coinの詳細を設定する

Static Mesh: Static Mesh

項目名
Static Mesh Shape_Torus

Transform

項目 X Y Z
Location 0.0 14.0 0.0
Rotation -90.0 0.0 0.0
Scale 1.0 1.0 1.0

Materials

項目名
Elements 0 M_Material_Gold

image

PointLightの詳細を設定する

Transform

項目 X Y Z
Location 0.0 0.0 -60.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

Light

項目名
Intensity 2000

image

SimulationボタンをクリックするとRingが回転する

image

BP_FloorTileにBP_Itemを発生するエリアを作成する

コンポーネントを追加する

名前 追加するコンポーネント
CoinArea Box Collision

CoinAreaの詳細を設定する

Transform

項目 X Y Z
Location 500.0 0.0 85.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

Shape

項目 X Y Z
Box Extent 460.0 460.0 2.0

image

Function:SpawnCoinsを追加する

image

Add Child Actor ComponentのChild Actor ClassにBP_Itemを設定する
image

処理を実装
image

Construction Scriptを編集する

SpawnCoinsを追加する
image

ViewPortでSimulationボタンをクリックするとBP_ItemがCoinAreaのどこかに発生する
image

BP_Itemを複数個発生するようにSpawnCoinを修正する

SpawnCoinにForLoopを追加する
image

ViewPortでSimulationボタンをクリックするとBP_Itemが6つCoinAreaのどこかに発生する
image

BP_ItemかBP_Blockerが発生するようにConstruction Scriptを修正する

ランダムでSpawnBlockerかSpownCoinsが呼ばれるように修正する
image

SimulationをクリックしてランダムにBP_BlockerかBP_Itemが発生することを確認する
image

プレイして確認する
image

取得したBP_Itemの合計を保持するように修正する

RunCharacterを修正する

変数を追加する
変数名 変数の型
TotalCoins Integer

Funcion:AddCoinを追加する

Function AddCoinを追加する
image

処理を実装する
image

BP_Itemを修正する

コインを取得した時の音をインポートする

コインの取得音をダウンロードする
https://1drv.ms/u/s!AsyaT0uIFWqQgY5DvES-sWbYrlJXUA

Audioフォルダを作成して、ダウンロードしたcoin_get.wavをインポートする
Sound_Cueを作成する
image

CoinのCollisionを修正し、On Component Begin Overlapを追加する

image

処理を実装する
image

プレイして確認する
image

取得したBP_Itemの合計を表示するように修正する

WidgetBlueprint: RunHUDを作成する

UMGフォルダを作成する
WidgetBlueprintを作成する
名前はRunHUDに設定する
image

Textのfont sizeは50に設定
image

image

image

RunGameModeのBeginPlayを修正する

BeginPlayでRunHUDを表示するように修正する
image

プレイして確認する
image

5 - Varying the Course

5 - Varying the Course

BP_FloorTileのChild Blueprint Class:BP_FloorTile_RampUpを作成する

BP_FloorTileを右クリック
Create Child Blueprint Classを選択し、Child Classを作成する
image

StaticMesh:Rampを追加する

名前 追加するコンポーネント
Ramp Static Mesh

Rampの詳細を設定する

Static Mesh: Static Mesh

項目名
Static Mesh Shape_Wedge_B

Transform

項目 X Y Z
Location 1250.0 0.0 0.0
Rotation 0.0 0.0 180.0
Scale 5.0 10.0 3.0

Materials

項目名
Elements 0 M_Tech_Hex_Tile_Pulse

image

AttachPointの位置をRampの上部中央に移動する

Transform

項目 X Y Z
Location 1500.0 0.0 280.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

image

EndTriggerの位置をRampの上部中央に移動する

Transform

項目 X Y Z
Location 1500.0 0.0 475.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

image

RunGameModeのAddFloorTileをBP_FloorTileかBP_FloorTile_RampUpのいずれかを追加するように変更する

変数:FloorTilesを追加する

変数名 変数の型
FloorTiles Actor(Class)(配列)

image

処理を実装
image

コンパイル -> 保存 -> Class Default

FloorTiles

インデックス
0 BP_FloorTile
1 BP_FloorTile_RampUp

image

プレイして確認する
image

BP_FloorTile_RampDownを作成する

BP_FloorTile_RampUpからDuplicate(複製)してBP_FloorTile_RampDownを作成する

BP_FloorTile_RampUpをDuplicateする
image

BP_FloorTile_RampDownに名前を設定する
image

Rampを下り坂になるように移動する

Transform

項目 X Y Z
Location 1250.0 0.0 -300.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

image

AttachPointを下り坂の終わりに移動する

Transform

項目 X Y Z
Location 1500.0 0.0 -300.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

image

EndTriggerを下り坂の終わりに移動する

Transform

項目 X Y Z
Location 1500.0 0.0 -135.0
Rotation 0.0 0.0 0.0
Scale 1.0 1.0 1.0

image

RunGameModeのFloorTilesにBP_FloorTile_RampDownを追加する。

FloorTiles

インデックス
0 BP_FloorTile
1 BP_FloorTile_RampUp
2 BP_FloorTile_RampDown

image

プレイして確認する

コースに直線、上り、下りが作成される
image

6 - Turning Corners

6 - Turning Corners

BP_FloorTile_RightCornerを作成する

BP_FloorTileからChild Blueprint Classを作成する
image

名前をBP_FloorTile_RightCornerに設定する
image

Parent:Construction Scriptを呼ばないようにする

image

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

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

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

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

Collision

項目名
Collision Presets OverlapOnlyPawn

On Component Begin Overlapを追加する
image

処理を実装する
image

BP_FloorTile_LeftCornerを作成する

BP_FloorTile_RightCornerからBP_FloorTile_LeftCornerを複製する

BP_FloorTile_LeftCornerをDuplicateする
image

名前をBP_FloorTile_LeftCornerに設定する
image

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

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

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

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

Function:AddFloorCurveを作成する

AddFloorTileをDuplicateする

image

名前をFloorCurvesに設定する
image

処理を実装する
image

変数:CurrentStraightを追加する

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

image

AddFloorTileを修正する

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

image

AddFloorCurveを修正する

CurrentStraigtを0に戻す
image

ClassDefault FloorCurvesの初期値を設定する

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

FloorCurves

インデックス
0 BP_FloorTile_LeftCorner
1 BP_FloorTile_RightCorner

image

プレイして確認する

コーナーが作成される
image

コーナーでAかDを押すと向きを変える
image

コーナーで行き詰ってしまったら身動きが取れなくなる
7 - Wrap Upで行き詰まりの際にキャラクターが死ぬように修正する
image

7 - Wrap Up

7 - Wrap Up

BP_FloorTileのWall1,Wall2に衝突したら死ぬように修正する

BP_FloorTileのWall1にOn Component Hitを追加する

BP_FloorTileを開き
Wall1にOnComponentHitを追加する

image

処理を実装する
動画ではNearlEqualのBの値が-1になっているが、1を設定する
image

BP_FloorTileのWall2にOn Component Hitを追加する

Wall2にOnComponentHitを追加する
image

処理を実装する
Wall1の処理と同じなので、Wall1の処理をコピーしてWall2の処理を実装する
image

プレイして確認する
image

コーナーの壁にぶつかった時だけ爆発する
image

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2