執筆バージョン: Unreal Engine 4.25
|
カメラを向けた時、何処を狙っているかわかりずらいですよね。
そんなときはDecalとLineTraceを活用して、カメラの動きに合わせてテクスチャを投影しましょう。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/Decal-1024x560.png)
※今回はFirstPersonのテンプレートを使用して作成します。
ー用意するものー
・FirstPersonのテンプレート
・お好きなテクスチャ
ー作成手順ー
①マテリアルの作成
②DecalBPの作成
③カメラからLineTraceを飛ばして、DecalBPを生成させる
①マテリアルの作成
好きなテクスチャをUE4にInportをします。(コンテンツブラウザを開いて、ドラック&ドロップ)
新しいマテリアルを作り、「DecalTexter」と名前を付けます。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/DecalTexter01-1024x557.png)
作ったマテリアルを開いて、詳細のMaterialDomainを「DeferredDecal」に
BlendModeを「Translucent」に変更します。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/DecalTexter02-1-1024x631.png)
Inportしたテクスチャをドラック&ドロップで入れ、ベースカラーにつないで保存します。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/DecalTexter03.png)
②デカールBPの作成
新しいブループリントを作成し、「DecalBP」と名前を付けます(クラスはActorで作成しました。)
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/DecalBP01.png)
コンポーネントウィンドウから、[Decal]と検索し作成します。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/DecalBP02.png)
DecalMaterialから、①で作成したマテリアルを選択します。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/DecalBP03-1024x557.png)
③カメラからLineTraceを飛ばして、デカールBPを生成させる
FirstPersonCharacterを開き、LineTraceByChannelを使って下記の様なノードを組みます。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/LineTrace01-1-1024x518.png)
SpawnActorで「DecalBP」を選択します。
SpawnActorをノードに出す時、日本語だと「クラスからアクターをスポーンします」と書かれていますので、注意してください。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/LineTrace02.png)
次に、Spawn Transformと書かれているオレンジピンを右クリック→「構造体ピンを分解」を選択して
下記画像ようにノードを繋げます。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/LineTrace03.png)
※薄青のピンRotationは、GetWorlRotationから繋げます
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/LineTrace04-1024x507.png)
最後にSetLifeSpanでスポーンさせたDecalBPを消します。
SetLifeSpanは、指定秒数経った後削除されるノードです。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/LineTrace05png.png)
これで、カメラの移動に合わせて
メッシュにテクスチャを投影することが出来ました。
![](https://historia.co.jp/wp/wp-content/uploads/2020/09/Decal-1024x560.png)