1. 개요
이번 포스팅에서는
격발시 탄창이 줄어드는 연출을
구현한 것에 대해 정리해 보았다.
2. 기능 요구 사항
- 발사 시 탄창 감소
3. 머티리얼 인스턴스 다이나믹

기능 구현 전 머터리얼에서
파라미터 수정을 통해 탄창이 줄어드는 효과를 줄 수 있음을 확인하였다.
머티리얼을 수정을 위해 코드 상에서 머티리얼 인스턴스를 사용해야 한다.
언리얼 엔진에서는 두 가지 타입의 머티리얼 인스턴스를 제공하는데 (링크)
- 머티리얼 인스턴스 상수
- 머티리얼 인스턴스 다이나믹
이 중 머티리얼 인스턴스 다이나믹은 런타임에서 계산, 편집이 가능하다.
게임플레이 중 머터리얼 파라미터 변경으로 탄창 소모 연출을 줄 예정이기에
코드 상에서 머티리얼 인스턴스 다이나믹을 사용할 예정이다.
4. 구현
4.1 머터리얼 인스턴스 다이나믹 생성 및 교체
// "머티리얼 인스턴스 다이나믹" 생성
if (UMaterialInstanceDynamic* LiquidTankMaterial = UMaterialInstanceDynamic::Create(GetMesh()->GetMaterial(LiquidTankMaterialIndex), this))
{
// 생성된 "머티리얼 인스턴스 다이나믹" 덮어쓰기
GetMesh()->SetMaterial(LiquidTankMaterialIndex, LiquidTankMaterial);
LiquidTank->Init(LiquidTankMaterial);
}
4.2 머터리얼 인스턴스 다이나믹 파라미터 수정
if (LiquidMaterial)
{
// "머티리얼 인스턴스 다이나믹"의 프로퍼티 값 변경하기
LiquidMaterial->SetScalarParameterValue(FName("BulletCount"), Percent);
}
5. 테스트

✅ 기대 결과:
- 격발 시 탄창 소모 연출
⚠️ 이슈:
- "원본 머티리얼"으로 생성된 머티리얼 인스턴스은 수정해도 원본에 적용되지 않는다.
- 해결 : 메시의 원본 머티리얼을 머티리얼 인스턴스 다이나믹으로 교체해줘야 한다.
'Unrael > Implement' 카테고리의 다른 글
| [UE/Implement] 피격 이펙트 구현 (0) | 2025.02.26 |
|---|---|
| [UE/Implement] 바라보는 방향으로 총알 발사 (0) | 2025.02.24 |
| [UE/Implement] 미니 프로젝트 회고 (0) | 2025.02.13 |
| [UE/Basic] 치트 매니저 (Cheat Manager) (0) | 2025.02.12 |
| [UE/Implement] 트랩 구현 (0) | 2025.02.11 |