본문 바로가기
공부/Unreal Engine 5

[언리얼5] FootStep개선(피직스머티리얼&노티파이블루프린트)

by MY블로그 2024. 2. 2.

기존의 플레이어의 발소리와 이펙트는 단순하게 애니메이션 에셋에서 노티파이 알림을 통하여 재생시킬 뿐이었습니다.

하지만 플레이어의 바닥의 재질에 따라 좀더 다채로운 사운드와 이펙트를 연출 하고자 개선을 해보기로 합니다.

기존의 플레이어 FootStep

단순한 Sound & Effect Notify

1. 피지컬 표면(Physical Surface) 생성

프로젝트 세팅에서 Physical Surface 메뉴를 통하여 다양한 표면의 종류를 지정할 수 있습니다.

기본(Default)설정을 포함한 총 63개의 설정이 가능합니다.

 

2. 피지컬 머티리얼(Physical Material) 생성

컨텐츠 브라우저 우클릭 > 피직스 > 피지컬 머티리얼을 생성합니다. 클래스는 PhysicalMaterial 입니다.

 

생성된 머티리얼의 디테일에서 다양한 설정이 가능하지만 단순히 플레이어의 위의 머티리얼을 판단하기위해 사용하므로 추가적으로 설정하지는 않습니다.

다만 피지컬 프로퍼티 카테고리의 표면 타입은 프로젝트 세팅에서 생성한 이름과 일치시키도록 설정합니다.

생성한 피지컬 머티리얼의 표면타입을 피지컬 표면의 이름과 일치하도록
좌 : 프로젝트 세팅 / 우 : 생성한 피지컬 머티리얼

3. 피직스 머티리얼 오버라이드 설정

생성한 다양한 Test Floor 들에 피직스 머티리얼 오버라이드를 설정 합니다.

표면의 재질과 일치하게하여 지정합니다.

 

4. 애니메이션 노티파이 블루프린트 생성하기

플레이어의 FootStep 에서 호출 할 수 있는 AnimNotify 타입의 블루프린트를 생성합니다.

생성직후 아무것도 없기때문에 ReceivedNotify를 오버라이드하여 생성합니다.

이후 블루프린트의 로직을 생성합니다.

로직의 순서는 아래와 같습니다.

1. 해당 노티파이를 호출하는 오너를 기준으로 라인트레이스를 진행합니다.

2. 라인트레이스의 결과에따라 설정한 표면의 종류를  판단합니다.

3. 판단된 타입에 따라 생성한 사운드 에셋을 재생 시킵니다.

 

이후 필요한 애니메이션에서 노티파이 블루프린트를 호출 하도록 합니다.

 

테스트 영상

추가적으로 사운드 뿐만이아닌 이펙트도 동시에 스폰 시키도록 한다면 더욱 좋을듯 합니다.

 

테스트 영상2 

바닥의 종류에 따른 이펙트 추가작업 및 라인트레이스 드로우OFF

 

댓글