【UE4】TimeOver

TimeOver

 

・IVGameState

timer (float)

OnTimeOver EventDispather

timeover

 

・OnTimeOverイベント受け取り

IVPlayerにバインド。DisableInputで動かないようにする。

bindtimeover

 

・OnTimerOverの受け取り(Enemy)

bindtimeoverenemy

SetActorTickEnabledでTickを止め動きを止める。

 

・GameOver画面作成(UI_gameover)

ユーザーインターフェース>ウィジェットプループリント

 

・stage1レベルブループリントにゲームオーバー画面追加

 カスタムイベントの作成

create widgetで、UI_gameover設定し、addToView

bindlevelbp

 

 

【UE4】UI (Widget)

 

・IVGameStateにscore変数を作成

・ユーザーインターフェース > ウィジェットブループリントから

UI_stage1を作成

bindscore_ui

 

変数をバインドする

bindscore

 

stage1のレベルBPに下記追加

・createwidgetで検索しウィジェットを作成。

classにUI_stage1を設定

addtoviewport

 

上にスコアを表示。

scoreui

 

button

・BP Widget作成

・buttonを配置し、イメージを設定

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a33

 

・onclickイベント追加

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a32

 

・event dispatcher 呼び出し%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a34

 

・Level BPで、event dispatcher bind。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3

 

 

【UE4】bullet

・create new BP Class form “Actor”.

 

add component

Sphere 0.2 x 0.2 x 0.2

・colliion > collision preset   OverlapAllDynamic

projectile movement

    ・Initial speed   1000

    ・prokectile gravity speed    0

bullet-damage

 

Player spawn bullet ( Spawn Actor)spawn_bullet

 

Enemy BP applied damage.

・life (default value = 3)

bullet_damage_enemy

 

 

 

 

 

【UE4】Timeline

  • rotate enemy timeline

create “BP_Enemy” Actor based BP Class.

 

timeline

rotate_enemy timeline

・3sec  0 to 360

・loop

・Linear curve

timeline_rotate

 

Lerpを使った場合(Reverse時に便利)

・timeline changes value 0.0 to 1.0 ,then lerp value change A to B.

・Lerp(Rotate)

・Lerp(Vector)

・Lerp(float)

timeline_lerp

 

timeline_lerp_graph

 

check timeline forward or reverse.

ETimelineDirection

timeline_switch

 

 

※注意点

・関数内ではTimelineは使えない。

・初期値(例えば0-50)から始めたいときは、Play from Startにつなぐこと。

 

 

 

【UE4】Preparation

空のプロジェクト作成

・light>directional light

・geometory > box  0,0,0位置に1000,1000,0

・基本>player start  0,0, 150に配置

 

・Player作成

ブループリント > Character > BP_IVPlayer

capsul component -Shapeにサイズ設定(50×50)

add component > Cube

 

・PlayerController作成

IV_PlayerController

 

・GameState作成

IV_GameState  点数、時間などのゲーム共通変数を持たせる

 

・Game Mode作成

詳細で下記設定

Default Player Pawn   IV_Player

Player controller   IV_PlayerController

GameState    IV_GameState

 

・GameInstance作成

IV_GameInstance

 

・プロジェクト設定> map&mode でGamemode,GameInstanceを設定

setting

 

・IV_Player

add component

1.Spring Arm

Target Length 500

2.Camera

drag&drop SpringArm, to become child.

change rotation of Spring Arm (with Camera)

springarm

 

 

playerの真上にカメラを設置して、カメラを傾ける例。

自分が写らないようにしたいときに役に立つ。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3

 

 

  ・Move player by Input

project setting > input

Axis Mapping  + Add “MoveL” “MoveR”  and set to keybord key  “->”  “<-”

input_axis

 

add Event to IV_PlayerController BP.

input_event

 

 

 

 

 

 

【UE4】OSC

http://qiita.com/gansaibow/items/bb8cb4f9cd24db02531f

・プロジェクト作成

新規プロジェクト

C++

 

・download from git

・(your project)/Pluginsを作成し、OSCフォルダをコピー

・IPとポートを変更

OscSetting.cpp

UOscSettings::UOscSettings()
:  ReceiveFrom(“50000”),
_sendSocket(FUdpSocketBuilder(TEXT(“OscSender”)).Build())
{
SendTargets.Add(TEXT(“192.168.100.102:50000”));
}

 

・プロジェクト(.uproject)起動するとRebuildするメッセージが出てくる。yes

出てこないときは、

設定>plugin でOSCをenabled

するとrebuildメッセージが出てくる。

 

・Blueprintを作成。

コンポーネントの追加で、OSC Receiver

イベントOnOscReceiverを追加

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3

 

 

送信

SendOSC

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3

 

 

 

【UE4】Save & Load

保存とロード

 

下記のブループリントを作る

・保存するデータ構造体 myData

変数+  float value, string name

・保存のためのクラス SaveGame > mySaveGame

変数+ myDataの配列とか

 

・外部BPと共有するためのゲームインスタンス GameInstance > myGameInstance

変数+ myData(アプリ内で利用するため)

関数 saveData, loadData

 

・プロジェクト設定

map&mode > Game Instance > GameInstance にmyGameInstanceを設定

%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e8%a8%ad%e5%ae%9a

 

 

loadData()

load

 

saveData()

save

 

Level BluePrint

level