3Dのゲームを作る際、部屋内のオブジェクトとして鏡を設置したいなんて場合がよくあると思います。鏡の表現方法はいくつかありますが、この記事ではReflectionProbe(リフレクションプローブ)を使用した鏡の作り方を簡単にまとめていこうと思います。
作成方法
1.鏡となるマテリアルの作成
任意のプロジェクトを開いたら、まず始めに鏡となるマテリアルを作成します。
なお、記事内で使用するUnityの環境は以下の通りです。
・Unity 2022.3.31f1
・URP
鏡マテリアルの作成
エディタ上部のタブから[Assets]⇒[Create]⇒[Material]を選択し新しくマテリアルを作成します。マテリアルの名前は任意で。記事では「Mirror」としました。
なお、MirrorのShaderは[Universal Render Pipeline]⇒[Lit]に設定してください。(マテリアル作成時はデフォルトでLitシェーダーに設定されているので問題ないと思いますが…)
鏡オブジェクトの用意
マテリアルの作成が終わったら、今度は鏡となるオブジェクトを用意します。今回記事では「Plane」を作成して使います。「Plane」の追加は
・[GameObject]⇒[3D Object]⇒[Plane]
・ヒエラルキー上で右クリック⇒[3D Object]⇒[Plane]
…で行うことができます。
鏡となるオブジェクトを用意または作成したら、最初に作ったマテリアルを鏡オブジェクトに適用します。
見づらいですが、作成したマテリアルを適用すると画像のようになります。
ちなみにマテリアルの適用方法はScene内の「Plane」オブジェクトに作成したマテリアルをドラッグ&ドロップするか、「Plane」オブジェクトのインスペクタにある「Mesh Renderer」コンポーネントの「Materials」の項目に作成したマテリアルを設定すればOKです。
2.ReflectionProbeの作成・配置・設定
Reflection Probeの作成
いよいよメインとなる作業に入っていきます。まずはReflection Probeの作成からです。[GameObject]⇒[Light]⇒[Reflection Probe]と選択することでReflection Probeが作成できます。
作成すると、空間内に黄色いキューブ状のフレームとキューブの中心に球体が現れると思います。
Reflection Probeの配置・設定
作成が終了したら、Reflection Probeの位置を調整します。
Reflection Probeの位置は鏡となるオブジェクトと同じ位置に配置しましょう。(今回の場合はPlaneと同じ位置にする)
Reflection Probeの「Position」を鏡オブジェクトと一緒の値にすればOKです。
位置の調整が終わったら、今度はReflection Probeの各種設定を行います。
ヒエラルキーから作成したReflection Probeを選択したら、インスペクタにある「Reflection Probe」コンポーネントを以下のように設定します。
Box ProjectionのチェックボックスをONにし、Box Sizeを調整したら設定完了。ちなみにBox Sizeは用意した鏡オブジェクトに応じて適宜調整してください。今回の場合では、
こんな感じにサイズを調整しました。
3.鏡に映りこませるオブジェクトの用意・設定
鏡に映したいオブジェクトを用意
現状では鏡に映すオブジェクトがないので、映したいオブジェクトを用意しましょう。
記事では「Cube」「Capsule」を作成して以下のように配置しました。
Reflection Probe Staticを設定する
映したいオブジェクトを用意・配置したら、それらのオブジェクトに「Reflection Probe Static」を設定していきます。後述するベイク作業時に、映すオブジェクトに対してこの設定をしていないと鏡にオブジェクトが映らないので、忘れずに設定しましょう。
設定方法は鏡に映したいオブジェクトのインスペクタから「Static」横にある▼マークをクリックします。すると画像のように項目が表示されるので、「Reflection Probe Static」をクリックしてチェックを入れます。
この操作を鏡に映るオブジェクト全てに適用していきます。(記事の場合はCubeとCapsuleに適用)
4.Reflection Probeのベイク
ベイク作業
これで一通りの作業が終わりました。あとは、Reflection Probeのベイク作業をして終了です。
Reflection Probeのベイクは簡単で、「Reflection Probe」コンポーネントの一番下にあるBakeボタンをクリックしたらOK。
ベイクができたら鏡オブジェクトに映りこませたいオブジェクトが反映されていると思います。
簡易的ではありますが、Reflection Probeを使用した鏡作成のおおよその流れはこんな感じです。
終わりに
ここまで最低限の鏡の作成手順を紹介してきました。しかし実際は、なかなか思った通りの結果にならない場合がほとんどです。その場合はReflection Probeの各種設定項目をいじって、都度ベイクを行ってください。筆者自身もまだ機能を十分に理解できてるわけではないので、今回はここで終わりますが、今後理解が深まったらいずれ追記していこうかと思います。
コメント