UMassProcessor::ProcessorRequirements が依存関係に反映されない件の現状(UE5.7.3)

お世話になっております。

Mass Framework の UMassProcessor::ProcessorRequirementsについて確認させてください。

UDNにてこちらの過去スレッドを拝見しました。

[Content removed]

スレッドの内容について、以下のように理解・認識しています。

UMassProcessor::ExportRequirements が OwnedQueries の要求のみをエクスポートしており、

ProcessorRequirements に設定したサブシステム要求が依存関係グラフに反映されないため、

ReadOnly と ReadWrite が想定外に並走し得る。

こちらの現状に関して質問があります。

  1. UE5.7.3時点でも本件は未修正でしょうか?
  2. 今後修正の予定はありますでしょうか?(もしあれば予定バージョンや目安)
  3. プロジェクト暫定対応する場合の推奨はどれになりますでしょうか?
  • A.ExportRequirements()でProcessorRequirementsも出力するようにエンジンコードを修正(スレッド内で質問者の方が提案してるものと同様の修正)
  • B.ProessorRequirementsは利用せずOwnedQueriesに含まれるようにする(ただしこの場合、EntityQuery外でのSignal送信や、ProcessorRequirementsを利用しているエンジン側のプロセッサに対応できない?)
  • C.その他

ご確認、ご回答よろしくお願いいたします。

[Attachment Removed]

お世話になっております。

詳細な情報をお知らせ頂きありがとうございます。現在社内で関連スレッドを含めた情報を確認しておりますので今暫くおまちください。

[Attachment Removed]

こちら最新の状況を確認しましたところ、

UE5.7.3 には修正は反映されておりませんが、Mainには CL#46745032 で修正が入っております。もし先んじて必要でしたらこちらの修正を取り込んでいただけますと幸いです。ご不便お掛けしまして申し訳ございませんが、どうぞよろしくお願いします。

[Attachment Removed]

お世話になっております。

ご確認ありがとうございます。

UE5.7.3 には未反映で、Main に CL#46745032 で修正済みとのこと、承知しました。

本プロジェクトでは 5.8 への更新可否がまだ未定のため、まずは 5.7 ベース(現在は5.7.4に更新済み)での対応を検討したく、追加で3点確認させてください。

  1. CL#46745032 は、今回の processor-level subsystem access の修正以外にも、関連する広い範囲の変更を含んでいる認識でよいでしょうか。
  2. 5.7.4 に反映する場合、この CL だけをそのまま適用すればよいでしょうか。それとも、あわせて必要な修正や注意点がありますでしょうか。
  3. もしこの CL をそのまま適用するのが難しい場合、5.7 系での最小限の暫定対応としては、UMassProcessor::ExportRequirements() で ProcessorRequirements も export する修正が適切でしょうか。ほかに最低限必要な修正があれば教えていただけますと助かります。

あわせて、適用時に特に確認すべき観点があればご教示いただけますと幸いです。

お手数をおかけしますが、どうぞよろしくお願いいたします。

[Attachment Removed]

お世話になっております。

ご確認頂きありがとうございます。

1-3: はい、これは複数の修正を含んでいます。そのためご質問頂いた問題だけをUE5.7.4へ適用する場合、/Main/Engine/Source/Runtime/MassEntity/Private/MassProcessor.cpp の UMassProcessor::ExportRequirements に ProcessorRequirements.ExportRequirements(OutRequirements); を追加する以下の変更だけを適用することで問題ございません。

void UMassProcessor::ExportRequirements(FMassExecutionRequirements& OutRequirements) const
{
	ProcessorRequirements.ExportRequirements(OutRequirements);
 
	for (FMassEntityQuery* Query : OwnedQueries)
	{
		CA_ASSUME(Query);
		Query->ExportRequirements(OutRequirements);
	}
}

[Attachment Removed]

ご確認・ご回答いただきありがとうございます!

記載いただいたコードのように、UMassProcessor::ExportRequirements()への処理追加で対応したいと思います。

[Attachment Removed]