壁などの遮蔽物越しにUIを非表示にしたい

部屋ごとにアクタBP内のウィジェットコンポーネント(テクスチャ設定してる)を非表示にしたいのですがいい方法などありますでしょうか。

ご教授頂ければ幸いです。

I’m not sure i understand. But, you could try having an actor that has a ui widget component. So that the ui is in world space and gets occluded.
Otherwise you could use a post process effect, and use the custom stencil channel.

以下のように日本語に翻訳しました:

よくわかりませんが、UIウィジェットコンポーネントを持つアクタを使うのはどうでしょうか。そうすれば、UIがワールド空間にあり、遮蔽されるようになります。

それ以外にも、ポストプロセスエフェクトを使い、カスタムステンシルチャンネルを利用する方法もあります。

UIウィジェットコンポーネントを持つアクタを使うのはどうでしょうか。
image

↑アクタに追従するようにウィジェットを持たせています。これだと遮蔽されませんでした。

do you have an example of what you want to achieve? and a picture of what is happening currently?
is it a matter of just calling SetVisibility or SetHiddenInGame for the component?

Also have you tried playing around with the Space property of the widget component?
In world space it should get occluded by other objects.

If you need a more complex effect, you can also take a look at the Retainer widget, inside the widget itself. But i think that is not what you are looking for.

はい、ご質問ありがとうございます。

ご要望の内容をより詳しく教えていただけますでしょうか?具体的にどのような効果を得たいのかの例があれば、より適切なアドバイスができると思います。また、現在の状況を示す画像があれば、問題の把握がしやすくなります。

単純に SetVisibilitySetHiddenInGame を呼び出せば、ウィジェットコンポーネントの表示/非表示を切り替えられると思います。また、ウィジェットコンポーネントの Space プロパティを「World Space」に設定すれば、他のオブジェクトに遮蔽されるようになるかもしれません。

より複雑な効果が必要な場合は、Retainer ウィジェットの活用も検討できます。ただし、それが求めているものではないかもしれません。

ご不明な点がありましたら、さらに詳しい情報をお聞かせください。できる限りサポートさせていただきます。

リビングのUIが隣の部屋に移動しても常に見えてしまっています。
壁がある場合見えなくすることは可能でしょうか?

The living room UI is always visible even if I move to the next room.
Is it possible to make it invisible if there is a wall?

I’m pretty confident that if you change the Widget Component’s “Space” to “World” it should get occluded correctly.
The problem then will be that the Widget will not face the camera when you rotate around.
The usual fix for this is to add some logic on the Widget “Actor” to update the rotation to face the camera. Usually on “Tick”.
By the way, your scene looks beautiful.

Also note the alternative solution using “Was recently rendered”.
You can keep the widget in “Screen” space. but you’ll need an extra component with “Cast shadows” set to off. Maybe a sphere collision or mesh is ok.

以下は、ご要求の内容を日本語に翻訳したものです:

ウィジェットコンポーネントの「Space」を「World」に変更すれば、正しくオクルージョンされるはずだと私は確信しています。
その場合の問題は、ウィジェットがカメラの回転に合わせて向きを変えないことです。
この問題の一般的な解決策は、ウィジェットの「Actor」にカメラに向かって回転を更新するロジックを追加することです。通常は「Tick」で行います。
ところで、あなたのシーンはとてもきれいですね。

また、「最近レンダリングされた」を使った代替ソリューションにも注目してください。
ウィジェットを「Screen」スペースのままにしておくことができます。ただし、「キャストシャドウ」をオフに設定した追加のコンポーネントが必要になります。スフィアコリジョンやメッシュでも構いません。

Please see this link:
こちらのリンクをご覧ください:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.