ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【ゼロからアンリアルエンジン5】㉔モン●ンラ●ズのようなキャラとカメラの間の障害物を半透明にしよう

目次

 

はじめに

注意

UE5Preview2の現在の情報です。

今後のアップデートによりUIや機能が変更される可能性があることをあらかじめご理解ください。

 

キャラクターが障害物で見えなくなる対策として障害物を半透明にする技術があります。モン●ンラ●ズなど

半透明にもトランスルーセントやマスクでディザをかけたりなど方法がありますが、今回は軽量なディザで行きたいと思います。

 

f:id:namiton:20220331122812p:plain

▲この記事を読むとできること

 

解説

①SM_ChamferCubeがカメラをブロックしないようにする

ThirdPersonMapにあるSM_ChamferCube。

これ自体にカメラをブロックするコリジョン応答をしているため、キャラクターでこれを押すとカメラがべこべこして気持ち悪い動きになります。

f:id:namiton:20220331114908p:plain

いきなりドアップになるグレイマンの股

f:id:namiton:20220331115023p:plain


そのためレベル上のSM_ChamferCubeの3つを選択してコリジョン応答を変更しましょう。

f:id:namiton:20220331115142p:plain

 

コリジョンプリセットをCustomにします。

f:id:namiton:20220331115236p:plain

 

カメラのトレース応答をオーバーラップに変更します。

f:id:namiton:20220331115322p:plain

 

これでこのオブジェクトにカメラが近づけるようになりました。

f:id:namiton:20220331115420p:plain

ただしこれだと非常に見づらいのでカメラに応じてこのアクタのマテリアルを半透明にしようと思います。

 

②マテリアル関数を作成する

どのマテリアルでもこの機能を使えるようにマテリアル関数という機能を使います。

 

コンテンツ右クリックからマテリアル関数を作成します。

名前はMaterialFunctionの頭文字をとって、

MF_DistaneDitherにしましょう。

f:id:namiton:20220331120606p:plain

 

③マテリアル関数の編集

作成したMF_DistaneDitherを開き以下のように接続します。

カメラの位置とアクタの位置に応じてDitherをかける組み方です。

f:id:namiton:20220331123222p:plain

 

Input系はマテリアル関数の引数です。ディザのかかり具合を調整する用です。

f:id:namiton:20220331121343p:plain

詳細からscalarを選択して名前を編集しておきましょう。

f:id:namiton:20220331121448p:plain

コンパイルを必ずしましょう!

 

④マテリアル関数の利用

この青いマテリアルはLevelPrototyping/Materials/M_Solid.M_Solid'のマテリアルインスタンスなのでM_Solidを編集していきます。

f:id:namiton:20220331121801p:plain

 

M_Solidを開きMF_DistaneDitherをノード内にドラッグアンドドロップします。

f:id:namiton:20220331122014p:plain


M_Solidノードを選択して詳細からBlendModeをMaskedに変更します。

f:id:namiton:20220331122136p:plain

 

するとオパシティマスクが使用できるので接続します。

f:id:namiton:20220331122240p:plain

 

インプットが無いとエラーが出るのでそれぞれのピンをパラメータに昇格します。

f:id:namiton:20220331122322p:plain

それぞれデフォルト値を150、0.02にしておきましょう。

f:id:namiton:20220331123321p:plainコンパイルして準備完了です。

実行するとこのようにDistanceの値に応じた距離で半透明のようなディザがかかります。

f:id:namiton:20220331122512p:plain

 

ディザのかかり具合などはMI_Solid_Blueからランタイムで変更できるので変化を試してみましょう。

f:id:namiton:20220331123455p:plain



 

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。