you1208
(you1208)
1
皆様初めまして。
今回あまりにも初歩的かもしれませんが、質問をさせてください。
まず作りたい内容は以下です。
①メインメニューの画面、ボタンが一つ
②メインメニューのボタンを押すと別のレベルに飛んで一定時間経過後にまたメインメニューへと帰って来る
という一連の繰り返しをするだけの簡単なものをまずは作ってみたいと思っております。
二つのレベルとブループリントが必要だろうということまではわかったのですが…参考にと買ってみた学習書はゲームの作り方であってそのあたりを理解することができませんでした。
もしよろしければどなたか教えてください。
もし可能であればサンプルシーンのようなものを見せてもらえると有難いです。
よろしくお願いいたします!
nullponull
(nullponull)
2
OpenLevelノードを使います。
移動したいLevel名を指定してあげてください。
ノードを使うタイミングはメニュー画面ではボタンをおした時で戻ってくる時はbeginplayとDelayで遅延させて実行すれば良いと思います。
malony
(malony)
3
出先の為ブループリントのサンプルなどが出せませんが…
コンテンツ上必要なものとしては、仰る様に
1.レベルがメインメニューと移動先の2つ
2.ボタンを表示するウィジェット(UI)ブループリント(以下BP)
3.(追加で)ゲーム進行を管理するゲームモードBP
になると思います。
レベルのオープンはBP内でOpen levelノードを使用すれば可能です。
レベルが持つレベルBPから行えますが、レベル変更後にUIを追加したり等の拡張を考えゲームモードBPから
呼んでもいいでしょう。
一定時間のカウントをスタートするタイミングはレベルが開始されたタイミングであれば、レベルブループリント内でBegin playイベントからカウント開始の処理を行い、Set Timer( https://docs.unrealengine.com/latest/JPN/Gameplay/HowTo/UseTimers/Blueprints/index.html )を使用するかTickイベントでタイマーに常に加算する等のタイマー処理を行うといいと思います。
ゲームモードBPを使う場合は、タイマー開始と終了をレベルからゲームモードに伝えるために、ゲームモードBPにカスタムイベントを作成しレベルBPから呼び出すといいでしょう。
タイマー終了後先ほどの様にOpen levelを使用しましょう。
UIの表示は、BPを用意してから、レベルやゲームモードBP内などでCreateWidgetノード→AddToViewportノードを使用する事によって可能です。CreateWidgetからの戻り値を変数化しておくとUIのイベントを呼べたりしますので便利です。そしてこれだけではカーソルやキーで操作ができないためSetInputModeUIOnlyノードやSetInputModeGameAndUIノードを使用する事により操作可能になります。UIを操作不可にするにはSetInputModeGameOnlyノードを使います。
これでとりあえず一連の処理は可能になると思います。
malony
(malony)
4
ゲームモードでなくゲームインスタンスBPかもしれません、記憶違いでしたらごめんなさい
you1208
(you1208)
5
お二方、早速対応いただきまして本当にありがとうございます!!
ブループリントもレベルのブループリントとウィジェットブループリントで使い分けが必要なのですね…!
まずは教えていただいた通り実践してみます!
you1208
(you1208)
6
お二人とも回答していただいてありがとうございました!
とりあえず思っていた動きができましたのでこれから手を加えていきたいと思います!
特には質問で出してはいませんでしたがボタンをゲームレベルに表示させるのにも困っていたものでそこまで
教えていただきありがとうございました。
またわからないことがあるときにはこちらで質問させていただきますのでどうぞよろしくお願いします!!