いつもお世話になっております。
表題の件、MovingHeadなど、ColorWheel_Componentを保持しているアクターのライトが実行中意図せず不定期に点滅する事があります。
原因を調べたところ、非アクティブにしているはずのColorWheel_Componentから不定なパラメータが来ているようでした。
添付画像のようにUpdateComponent内でIsActiveの判定を入れた所、意図しない点滅は発生しなくなりました。
こちら対応としてほかに適切な物があればご指摘頂ければ幸いです。[Image Removed]
[Image Removed]
はじめにフィクスチャコンポーネントの「有効化済みである」(IsEnabled)フラグはDMXの入力に反応するかどうかに影響し、ColorWheelComponentのUpdateComponentが呼ばれるかどうかには関与していません。(ColorWheelComponent::UpdateComponentはBP_MovingHeadアクターなどの更新処理から呼び出されます)
次にColorWheel_Componentは入力された値によりモードが切り替わり動作が変ります。そのうちUpdateColorRotationで値が変化し続けるのは値が128以上の値の場合のみです。(ColorWheel_Tableアセット内の最後の要素をご確認ください)
IsEnabledがfalseである場合には設定値はデフォルト値で初期化されたままのはずなので、対象のアクターのColorWheel_Componentの DMXChannel >Default Value がなんらかの操作により128以上に設定されている可能性が高そうです。こちらをご確認いただけますでしょうか。
[Image Removed]なおActorComponent::IsActiveはColorWheelComponentなどでは常にfalseになっているので、恐らく追加された判定式はRotationCWモードの動作を妨害してしまいます。
デフォルト値に意図しない値が設定されたものが無いとのこと承知いたしました。
となると初期化処理が適切に動作しないような問題があるか、IsEnabledがfalseなのに関わらず外部から意図しない設定が適用されているようです。
モード切替が起こっているようならColorWheel_ComponentのStartColorRotationがRotationCWモードの初期化コードなのでここにブレイクポイントを配置したり、ログを仕込むなどの方法で特定できると安心かとおもいます。
> したがってBP_MovingHeadをコピーしてColorWheelComponentを外したバージョンを作る事で、意図しない受信などが発生しないよう対処しようと思います。
承知しました。ColorWheel_Componentの利用しないのであれば、確実な対処になると思います
回答ありがとうございます。
こちらの勘違いもあったようで失礼いたしました。
ただ、デフォルト値は0のままでした。
ColorWheelComponentはフィクスチャにも割り当てておらず、使用していないので、とにかく無効にしたい意図があります。
したがってBP_MovingHeadをコピーしてColorWheelComponentを外したバージョンを作る事で、意図しない受信などが発生しないよう対処しようと思います。
お世話になっております。こちらクローズして頂いて構いません。ご回答ありがとうございました。