ドラクエ風ターン制rpgの戦闘について

ターン制RPGの戦闘システムを作りたいのですが、BluePrintの組み方が分からず、困っています。
戦闘の処理を開始するとエディタが動かなくなります。
ゲームパッドで動かす予定です。C++でも大丈夫ですので、アドバイスよろしくお願いします。

エディタが動かなくなるということですが、エラーメッセージ等は出ていないでしょうか?

全体の構造がよくわかっていないのですが、見た感じで気になるところはPlayerAttackの末尾にあるDelayです。
WhileLoopのループ内にあるDelayは上手く動作せずに先へ進んでしまいます。
WhileLoopの中で呼び出した関数などでも同じです。
もしPlayerAttackがWhileLoop内から呼び出されているなら、想定と違う動作順になったり、無限ループに近い状態になっている可能性があります。

WhileLoop(で使われているシーケンス)でDelayが使えないことについての詳細はこのページにあります。

WhileLoopを例えばブランチに替えて、SpeedPorEの出力実行ピンから、線をぐるっと伸ばしてブランチの入力実行ピンにつないで、白い線で輪っかになるような感じにすれば、Delayが機能して、実行順も正しくなると思います。

すいません。画像を一つ忘れていました。

Whileをifに変えるとフリーズしなくなりましたが、DelayをつけてもPlaySoundが同時に鳴るのと、SetHealthR等のダメージ計算をしてくれません。

回答ありがとうございます。

このようなエラーが大量に出ました‥‥

遅くなってすみません。

音のタイミングについては、PlaySoundとDelayのノードが逆になっているので、その順番を入れ替えるといいと思います。

ダメージ計算が上手くいかない件ですが、AccessedNoneのエラーはC++でいうNullポインタエラーです。
Battle_UIの変数、"Player"と"LarveGumman"が空になっているようです。
レベル上に配置したキャラクターか、SpawnActorで作ったキャラクターか、どちらかを計算の前にSETしておく必要があります。
レベル上に配置している場合だと、添付画像のような感じで、レベルブループリントからSETしておけば良いと思います。

丁寧な回答ありがとうございます。
Delayの部分はおかげで解決しました。
ダメージ計算の件ですが、説明の通りにやっているつもりですが計算してくれせん。

Widget等少し変わった部分がありますが、仕様自体は変わっていません。
私の理解力の乏しさもあると思いますが、よろしくお願いします。

ue4rpgimage18.jpg のところですが、LarveGunman_UIの中のLarveGunmanという変数があって、Battle_UIの中にもLarveGunman変数があるということでしょうか?
見た感じだと、LarveGunman_UIのLarveGunmanはSETされていますが、Battle_UIの中のLarveGunmanは空のままではないでしょうか?

ue4rpgimage17.jpgに関してはLarveGunmanをLarveGunmanにセットして、意味のない動作になっているようです。

同じような名前が多いと混乱するので、いったん別の変数名に付け替えると、動作の流れやエラーメッセージがわかりやすくなると思います。1,2,3と数字をつけてもいいし、"Battle_UIのLarveGunman"とかでもいいです。デバッグが終わったらまた戻せばいいので。

もしプロジェクトデータのアップロードが可能であれば、それを見せてもらえるともう少し具体的な修正方法がわかるかもしれません。

ありがとうございます。Battle_UIのLarva Gunmanが空でした。
おかげ様で画像16のエラーは解決しました。しかし、このようなエラーが出てきて、解決方法が分かりません。

Playerが空なのでしょうか?質問ばかりですいません。毎度分かりにくい質問に回答していただきありがとうございます。

無知ですいませんが、GetPlayerCharacterというノードの戻り値をSETというのが少しわかりません。
GetPlayerCharacterをどこのBluePrintにSETするのですか?
ちなみに、自分で動かせないタイプのキャラクターで、編集中及びプレイ中にはレベルに存在しません。

Playerが空であっています。

自機がレベル上に配置されている場合は、敵キャラと同じ要領でBattle_UIのPlayerにSETすればOKです。

もし自分で動かせるタイプのキャラクターで、編集中にはレベルに存在してない場合は、GetPlayerCharacterというノードの戻り値をSETすればいいはずです。
(PlayerIndexのところはマルチプレイだといろいろありますが、1人用ゲームならデフォルト値の0でいいです)

SETノードを追加するのはue4rpgimage20.jpgのあたりです。

Player変数に中身を入れられれば手段はなんでもいいのですが、
開始時に作成されるプレイヤーキャラクターならGetPlayerCharacterで取得できます。

ただ今回はプレイ中にもレベル上に出ないということなので、SpawnActorで作ることになるかもしれません。
表示しないとしてもデータ自体は作らないといけないので。
非表示にする場合はSpawnActorのあとに、SetActorHiddenInGameノードなどを使えます。

66847-player2.png

本当にありがとうございます。全て解決しました。

ありがとうございます。すべて解決しました。