WidgetComponentのSpaceをScreenに指定するとリッスンサーバ側のリモートキャラクタに表示されない

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

CharacterにWidgetComponentを追加してキャラクタの頭上にプレイヤー名を表示しようとしています。

WidgetComponentの “Space” を"Screen" に指定、PIEから Number of Players を 2、Net Mode を Play As ListenServer でゲームをプレイすると、Widgetがサーバ側のリモートキャラクタに表示されません。​(画像)

("Screen"ではなくデフォルトの"World"では表示される)

クライアント側​は自キャラ、リモートキャラクタともに表示されます。

非プレイヤーキャラクもサーバ、クライアントともに表示されます。

ThirdPersonのサンプルを作成しましたのでご確認いただけないでしょうか?

よろしくお願いします。

再現手順

  1. 添付のプロジェクトを開く
  2. Number of Players を 2、Net Mode を Play As ListenServer に設定
  3. ゲームをプレイ
  4. サーバとクライアントの2つのウインドウを確認
  5. TextBlockという文字がキャラクタ頭上に表示される
  6. ​サーバ側のリモートキャラクタ(クライアントが操作するキャラクタ)にTextBlockという文字が表示されないことを確認

​​

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

非常に再現しやすい再現プロジェクトのご提供、誠にありがとうございます。

ご報告いただいた現象ですが、 //UE5/Main CL40686163 にて修正されておりました。当方でも当該CLを5.5.4に適用し、問題をFixできることを確認できました。

簡易な修正ですので、参考までに以下に差分を掲載いたします。

Engine\Source\Runtime\UMG\Private\Components\WidgetComponent.cppWidgetComponent.cpp 1721行目あたり

`ULocalPlayer* UWidgetComponent::GetOwnerPlayer() const
{
if (OwnerPlayer)
{
return OwnerPlayer;
}

if (APawn* OwningPawn = Cast(GetOwner()))
{
if (APlayerController* OwningController = Cast(OwningPawn->GetController()))
{

  • if (ULocalPlayer* OwningLocalPlayer = OwningController->GetLocalPlayer())
  • {
  • return OwningLocalPlayer;
  • }
  • return OwningController->GetLocalPlayer();
    }`一度ご確認いただけますと幸いです。

以上、よろしくお願いいたします。

ランチャーからの起動でしたので、ご案内いただいた該当CLの更新を取り込んでの確認はできていないのですが、リリースされたUE5.6で修正されているのが確認できました。

ご回答ありがとうございました!

よろしくお願いします。

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

それでは本件は回答済みとして、Closeさせていただきます。

また何かありましたら、お気軽にご相談ください。

以上、よろしくお願いいたします。