0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity カメラに映したくないものがある場合の対応

Posted at

Render Textureを設定したときに、「余計なものが映り込んでる!どうなってるの!(ヒス)」と慌てたことがあります。

結論、ただカメラ描画範囲にRender Textureを設定したオブジェクトが映り込んでいるだけです(初めて遭遇して先輩に指摘された時はほんとお恥ずかしい思いでした。。)

回避策は2点、カメラに映り込まないようにするか、Culling Maskを設定するか。

おそらく後者の方がメジャーだと思うので、備忘録として書いていきます。

なお、本記事の環境は以下です。
・MacOS Sequoia 15.1.1
・Unity 6000.0.23f1 URP

※前提として、カメラにRenderTextureが追加されていること、RenderTexture付きマテリアルがオブジェクトにアタッチされていることとします。要するに以下の状況。
image(1).png

PlaneにRenderTexture付きマテリアルをアタッチしていますが、カプセルの奥にまたPlaneが描画(無限ミラーリング)されていますね。まるでGoogle Meetで画面共有した時みたいに。
それでは細かく見ていきます。

手順

  1. 描画しないオブジェクト用のLayer追加

    RenderTextureを設定しているカメラにて、Layer > Add Layer…を選択する。

    Layersリスト内の空いている箇所に、描画しないためのLayerを追加。今回はNoRenderと設定する。

image(2).png
image(3).png

  1. 描画しないオブジェクトでLayer変更

    今回はPlaneをカメラで描画したくないので、PlaneのLayerに1.で作成した”NoRender”を設定する。

image(4).png

  1. CullingMaskで描画する対象を変更

    カメラコンポーネントのRendering > CullingMask > NoRender(1.で追加したLayer)のチェックを外します。

image(5).png

以上の作業で、冒頭述べたような無限ミラーリングは起きていないはずです。
image(6).png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?