概要
今回実装するのはカメラからプレイヤー間のメッシュがカプセル形状にマスクして、
プレイヤーを見えるようにします、図にすると以下のようになります。
実装
マテリアルパラメータコレクションを作成(MPC)
次に作成するマテリアル関数内でプレイヤーの位置と半径が必要なのでMPC「MPC_Player」作成します。
カプセル形状にオブジェクトをクリップする関数を作成
マテリアル関数「MF_CapsuleShape」を作成して以下のようにノードを組みます。
マスク用マテリアル作成
マスク用のマテリアルを作成します。
まずは、「Blend Mode」を「Masked」して以下のようにノードを組みます(テクスチャは適当です)。
「Shadow Pass Switch」は影の不具合がでる&負荷軽減のため影には反映させないようにしています。
作成したら、対象のスタティックメッシュに割当ましょう。
オーバーレイマテリアルを作成
そのままだと中から外が見えるので、中から見えないようにするマテリアルを作成します。
まずは「Two Side」にチェックを入れ「Blend Mode」を「Masked」に「Shading Mode」は「Unit」にします。
作成できたら対象のスタティックメッシュのオーバーレイマテリアルに割当ましょう。
MPCにプレイヤー中心位置を格納
「BP_ThirdPersonCharacter」のTickイベントでプレイヤーの中心位置をMPCに入れます。
丁度「Camera Boom」の座標がいい位置にあるので利用します。
結果
まとめ
カプセル形状にメッシュをマスク抜きできました。
これでゲーム中のプレイヤーの視認性が上がるといいですね。
参考