0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【非公式】某会社設立記念ゲリラAdvent Calendar 2016

Day 7

【ゲリラアドカレ】UE4ゲーム実装 進捗報告 4日目(クエスト選択からクエスト画面表示)

Posted at

【非公式】C&M GAMESゲリラ Advent Calendar 2016 7日目の記事です。

FlashゲームをUE4で再実装するゲリラアドカレです。

クエスト選択画面から、クエスト画面を表示するようにします。
ついでにクエスト画面の背景を選択ごとに変えてしまいます。

・注意
許可を取ってないので通常業務の空いた時間を利用して作成するため、作成中のゲーム、及びアドカレは完成保証がなければ、ゲーム自体もリリースされる保証も皆無なので、あんまり期待しないでください。

#レベル切り替え

タイトル画面とクエスト画面は別のレベルで作成されているため、レベル切り替えを実装します。
また、ついでにステージごとに背景を変えたいので、レベル間で共通の値を参照するようにします。

というわけで、GameInstanceに値を保存して参照するようにします。
GameInstanceについてはalweiさんのLet's Enjoy Unreal Engine レベルを跨いで値を保持するGameInstanceについてを見ると分かると思います。

##GameInstance

とりあえずGameInstanceを継承したブループリントクラスを作ってしまいましょう。
ブループリント作成時にGameInstanceと検索すれば出てきます。
GameInstance2.png

作成したら変数を追加します。
GameInstance.png

最後にプロジェクト設定↑マップ&モードの一番下にGameInstanceという項目があるので、先ほど作ったGameInstanceをセットします。
GameInstance3.png

##背景修正

レベル間の移動を実装する前に背景の画像を切り替えられるようにします。
まずActorを継承したブループリントクラスを作成します。
BG.png

コンポーネントにPaperSpriteを追加、変数にPaperSpriteのArrayを作成します。
最後にGameInstanceから該当の変数を呼び出して、配列にセットしたSpriteをSetSpriteでセットするだけです。
BG2.png

エディタからSpriteの配列をセットします。これで背景の切り替え準備が出来ました。
BG4.png

PaperSpriteを継承してしまうと、SetSpriteを呼んでもSpriteが切り替えられないので注意が必要です。

##クエスト選択のUI修正

クエスト選択のスクリプトを修正します。

まずは各ボタンからOnClickのイベントを追加します。
UI3.png

レベル移動は6つとも、渡す数値が違う以外はほぼ共通の処理なので、関数化してしまいます。
UI2.png
StageIDはGameInstanceで作成した変数に保管します。

最後にイベントから先ほど作成した関数を呼び出します。
UI.png

以上で終わりです。

#クエスト選択からクエスト画面が呼び出せるようになった

切り替えが出来るようになりました!

クエストのプロトタイプとしては十分な実装といえます。

次はバトル画面かエンカウント演出入れるか迷ってます。
どちらにしても時間がないので、さっさと決めて実装してアドカレをバンバン書いていきます!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?