UMGのスライダー入力値(new parm)の変化をプラスしてすでに回転している(kaiten Speed)回転体の回転速度を早くしたり遅くしたりさせてその速度のまま回転を継続できるようにしたいです。
UMGスライダーから入力は出来ているのですが、その瞬間だけの反応で終わってしまい、回転速度を維持することができません。セットしたRotationRateのノードを触っても、詳細ウィンドウがグレーアウトして触れない状態になってしまうのも気になっています。この状態は言った何がおこっているのでしょうか?回転体のRotation Rateの値にうまく入力できていないことが原因なのはわかるのですが、、、。
回転体はsute-ji というBpの中にkaitennというBPをいれてあります。回転BPにはスタティックメッシュとrotating movementのみの構成です。問題点をご指摘いただける方、ご教授をお願いします。
SetChildActorClass
ノードですが、これはChildActorComponentのTemplateClassを指定するものです
このノードの実行結果ですが、呼ばれるたびに新しいChildActorのインスタンスが作られるようになっています
つまり、 kaitenn_N
イベントが呼ばれるたびに初期値にリセットしているに等しい状態になっています
なお、変数がグレーアウトになっている理由ですが、実行前にはその変数が存在しないからです
RotationMovementの持ち主はActorです
そしてLevelBlueprintはそのActorの Reference(参照) を所持しています
参照とはわかりやすく言えばただの住所であり、データそのものではありません
住所を知っていても、そこに目的のデータがあるかどうかは動かすまでわかりませんので、この段階で初期値を渡すことは不可能なのです
個人的に気になる点があります
LevelBlueprintの変数に確保している Kaiten
ですが、これはどこのものでしょうか?
初期化タイミングが把握できませんが、辻褄が合わない原因の一つになっています。
おそらく別のイベントで sute-ji_Blueprint
から参照を引っ張ってCastしたものを保持しているのだろうと予測しています。
ですがそれならChildActorとして持たずに直接参照を持ったほうがシンプルに収まるのではないでしょうか?
ご回答ありがとうございます。解説ありがとうございます、状態は理解できました。しかし、正直なところクラスの関連についてはよく理解できていません。
setchildactorclassに関しては、kaitenのactor関連の何かだろうといろいろやっていたらたまたま動くようになったので、、、。つないでいるだけで、なぜ動くのかに関してはわかっていないです。
LevelBlueprintの変数に確保している Kaitenは、変数型のぶぶんで検索をかけて出てきたオブジェクトリファレンスです。CASTノードは使っていません。kaitenBPの中身にアクセスできたので使ってましたが、、、。