【Unity】【FPS】壁などにオブジェクトがめり込まなくなる方法

Unity

FPSを作っていると、壁に近づいたり、床を向いたときに武器や所持したアイテムがめり込んでしまうことがあると思います。

こんな感じ↓

こいつのせいでゲームが安っぽく見えてしまいますので、「クリッピング」という方法で直していきます。

注意:この記事ではURPを使用していますので、人によってはカメラの項目がなかったり設定ができなかったりします。描画やゲームの見た目の面でもオススメなのでURPで新しいプロジェクトを作ってみてください。

準備

FPS用のプレイヤーを用意します。

めり込まないようにする

まずは、新しいレイヤーを作っていきます。

Layerの「Default」>「Add layer」をします。

ここで新しく「Weapon」というレイヤーを追加します。

武器に先ほど作った「Weapon」レイヤーを設定しましょう。

次に、Main Cameraの中に武器だけを描画するカメラを作ります。

Main Cameraで右クリック>cameraで作りましょう。(名前をWeaponCameraとします)

それでは次に、「Main Camera」と「Weapon Camera」をそれぞれ描画させるものを設定していきます。

まずは「Weapon camera」の中の項目をこのように変更しましょう。

Rendere Type:カメラの描画タイプを「Overlay」にする。

Clipping Planes:描画できる範囲を「0.01」にする。

Culling Mask:描画させるマスク(レイヤー)を「Weapon」だけにする。

次に「Main Camera」の設定をしていきましょう。

このように中の項目を変えましょう。

Clipping Planes:描画できる範囲を「0.01」にする。

Culling Mask:描画させるマスク(レイヤー)を「Weapon」以外すべて有効にする。

そして「Stack」を開き「Cameras」の右下にある「+」を押して「WeaponCamera」を追加します。

これで完成です!

実行してみましょう。

まとめ

意外とこういう小さなことでゲームの品質って変わったりすると思います。

細かなところもちゃんと作っていきたいですね。

コメント

タイトルとURLをコピーしました