BLOGブログ

2020.06.20UE4UE/ Blueprint

【UE4】Actor Foliageでインタラクトできる草を大量に生やす

執筆バージョン: Unreal Engine 4.25

こんにちは、エンジニアの小倉です。
今回は、任意のアクターをFoliage Typeとして使用することができる「Actor Foliage」という機能を使って、キー入力によってインタラクトできる草を大量に生やす方法を紹介します。

プロジェクトの準備

今回はThirdPersonテンプレートから始めます。
また、インタラクトできる草にはMegascansのアセットを使用します。

インタラクトできる草を作成する

インタラクトできる草のアクターを作成します。
ここではActorクラスを継承した新しいBlueprintとして、BP_PickableGrassを作成しました。
BP_PickableGrassはMegascansの草アセットを設定したStaticMeshComponentのみ持ち、プレイヤーが近づいているときにEnterキーを押すと自身を非表示にするというアクターにしました。※ 今回は説明用に設計を簡略化してます。本来であれば大量に配置されることを考慮する必要があります。

レベルにBP_PickableGrassを配置して動作を確認します。
プレイヤーを草に近づけてEnterキーを押すことで、Print Stringによる出力と、BP_PickableGrassが非表示になることを確認できました。

Actor Foliageを使用して草をペイントする

最後に、BP_PickableGrassをFoliage Toolで配置するためにActor Foliageを作成します。

作成したActor Foliageを開き、Actor Classに「BP_PickableGrass」を設定します。

Foliage Toolを起動し、Foliage Typeに作成したActor Foliageを追加してからペイントします。

これを実行して動作を確認します。
Foliage Toolで配置した草に近づいてEnterを押すと、草が非表示になることを確認できました。

Foliage Toolで草を配置すると狙った場所に草を出すことは難しいため、そのような場合はFoliage Toolで配置するよりもActorを一つ一つ手作業で配置する方が良いかもしれません(描画負荷を考慮しながら大量のActorを配置したい場合はInstanced Static Mesh Componentを使うといった方法もあります)。