Brueprintアクタの使い回し

初心者な質問失礼します。

レベルに1種類のBlueprintアクタを複数配置してそれぞれ並列に処理したいのですが、どうすればいいのでしょうか?


具体的には上の動画の様にメニュー用のアクタを用意して、3秒見たら次の処理へ、途中で視線を外すと徐々に0になっていくものです。

このプログレッシブバーはDynamicMaterialInstanceノードを使ってマテリアルのマスクを回転させて実装したものです。

この動画ではレベルブループリントに2つのタイムラインノードを設置して実装していますが、数が増えると大変なことになるのでタイムラインノードはBlueprintアクタに設置して、レベルのBlueprintアクタにそれぞれタグをつけて処理の分岐をさせたいのですが、どうすればいいのでしょうか?

御指南頂ければと思います。

Actor にプログレッシブバーの処理やタイムラインの処理を包括して
一つの Blueprint 内で処理を完結して、
Level には配置する Actor は複製したものを配置していくので
質問の回答になりますでしょうか?

一つの Actor で処理をまとめておけば変更時もその Blueprint を変更するだけになりますので
Level Blueprint では Get All Actors of Class ノードで Actor を検索して
該当 Actor に対して、タイムラインの時間調整などは
Actor 内にある変数などで設定できるようにして処理を走らせると調整なども簡単になるかなと思います。

ご返事ありがとうございます。

Actor にプログレッシブバーの処理やタイムラインの処理を包括して
一つの Blueprint 内で処理を完結して、
Level には配置する Actor は複製したものを配置していくので
質問の回答になりますでしょうか?

はい、その通りです。

ただ下記の実装方法が思いつきませんでした。

一つの Actor で処理をまとめておけば変更時もその Blueprint
を変更するだけになりますので Level Blueprint では Get
All Actors of Class ノードで Actor を検索して
該当 Actor に対して、タイムラインの時間調整などは Actor
内にある変数などで設定できるようにして処理を走らせると調整なども簡単になるかなと思います。

やってみた結果は下記になります。

link text

プログレッシブバーのBlueprintノードはこのようになっています。

link text

Player_StartをBlueprintアクタにしてLineTraceを飛ばしています。

link text

惜しい気がするのですが、ここで手が詰まってしまいました。

2番目のリンク画像ですが、現状は、 Event Tick の Player_Start_Blueprint のキャスト以降の処理が Players 配列の一番目要素しかタイムライン処理をしていないようです。そのため、プログレッシブバーのアニメーションが動作していないのかなと思われます

修正方法としましては、 Event Tick でも Event Begin Play で行っているように Players の配列を ForEachLoop を行いLevel 上にある Actor 全要素を、Player_Start_Blueprint へキャストして処理させてみてはいかがでしょうか?

御指南ありがとうございます。

やり方は違いましたが、なんとか狙い通りの動作するBlueprintが組めました!

動作テスト

Blueprint全容

1点気になるのはlook_Blueprint(プログレッシブバー)へのキャストで黄色の警告が出ていることですが、こちらはPlayしないとSelfが不明だからという解釈でよろしいのでしょうか?

動作できて良かったです!
警告の件ですが、基本的には実行前までは不明だからというのは自分の環境では確認したことが無いです。
警告自体は、メッセージログウィンドウに警告内容が書かれていると思いますので、そちらから警告内容を調査してみると良いと思います。