What problem does it solve? Unreal Engine material work involves a deep class hierarchy (UMaterial, MIC, MID), domain/blend/shading-model choices, and runtime parameter APIs where mistakes silently no-op or cause shader recompile hitches. This Skill provides grounded guidance on the material class hierarchy, parameter workflows, and the C++ API so you avoid common pitfalls like typos in parameter names, garbage-collected MIDs, and shader permutation explosions. ## Core Features & Use Cases - Master material and instance authoring: Build one parameterized base UMaterial, create UMaterialInstanceConstant variants in the editor, and spawn UMaterialInstanceDynamic copies at runtime via CreateDynamicMaterialInstance. - Runtime parameter control in C++: Set scalar, vector, and texture parameters with SetScalarParameterValue, SetVectorParameterValue, and SetTextureParameterValue, plus index-cache optimization for high-frequency updates. - Global parameters via collections: Drive world-state values like wetness or time-of-day through UMaterialParameterCollection and UKismetMaterialLibrary. - Performance and domain guidance: Choose material domain, blend mode, and shading model correctly, reduce shader permutations, and avoid translucency overdraw. - Use Case: A character takes damage in a Battle Royale game and you need a red damage tint to pulse on their mesh. Use this Skill to create a MID in BeginPlay, cache it in a UPROPERTY, and drive a DamageAmount scalar parameter from gameplay code. ## Quick Start Ask the assistant to create a dynamic material instance on a mesh component and change a scalar parameter at runtime in Unreal Engine C++.