C++ ときどき ごはん、わりとてぃーぶれいく☆

Wonder Rabbit Projectのなかのひとのブログ。主にC++。

UProceduralMeshComponent などの UMeshComponent のマテリアルを実行時にC++で変更する方法

特に UProceduralMeshComponent を使う場合など UMeshComponent 系のメッシュ mesh のマテリアルを実行時に変更したい場合は以下のようにする。

mesh->SetMaterial
( 0 // Note: マテリアルをセットしたいメッシュ内のセクション番号
, Cast<UMaterial> // Note: 今回はスターターコンテントの草原っぽいマテリアルをロードして与えている
  ( StaticLoadObject
    ( UMaterial::StaticClass()
    , nullptr
    , TEXT( "/Game/StarterContent/Materials/M_Ground_Grass.M_Ground_Grass" )
    )
  )
);

参考

  1. UMeshComponent::SetMaterial | Unreal Engine API Reference
  2. UMaterial | Unreal Engine API Reference