본문 바로가기
UnrealEngine5/SFX System

바닥 재질에 따라 발소리 변화주는 방법(UnrealEngine5)

by 개발의 묘미(GaeMyo) 2022. 7. 12.
SMALL

일단 이 경우에는 두 가지 경우가 있어.

 

  1. 1인칭 시점일 때(Firstperson)
  2. 3인칭 시점일 때(Thirdperson)

이게 은근히 너무 다른 것 같아.

지금의 나한텐 3인칭 시점인게 훨씬 편하지만 그건 아무래도 내가 캐릭터 애니메이션에 대한 부분을 먼저 파 놓고 시작했기 때문일 거라고 생각해.

 

간단하게 3인칭 시점일 땐 캐릭터의 움직이는 동작(애님 시퀀스)에 들어가서 VFX나이아가라 이펙트효과를 넣어준 것처럼 노티파이를 넣어주는 거랑 비슷하게 해주면 돼.

 

물론 1인칭과 3인칭 모두 동일하게 피지컬 머터리얼(또는 피직스 머터리얼)을 생성해 줘야 해.

그걸 생성하면 들어가보면 피지컬 프로퍼티 부분에 Surface type(표면 타입)이 있는데 그건 프로젝트 세팅에서 Physical Surface로 들어가면 개인적으로 하나하나 이름을 추가해 넣을 수 있어.

거기서 추가한 표면 이름을 아까 생성한 피지컬 머터리얼의 서페이스 타입에 주면 돼.

 

물론 이것만 한다고 되는 건 아니지만 말이야.

따로 캐릭터 블루프린트에서 앞 뒤로 움직이거나 방향 전환하며 움직일때의 Add movement input 노드들을 끌어와서 시퀀스로 연결해 끌어온 걸 Line Trace By Channel이라는 노드에 연결해 줘.

그리고 Start 부분에는 우선 Get Actor Location을 가져와서 연결해주고 Get actor Location에서 벡터Z값만 144를 Substract해준걸 End에 연결해 줘.

이 다음 설명부터는 너무 길어질 것 같으니 사진으로 대체할게 ㅎㅎ.

 

 

 

이렇게 만들어준 커스텀 이벤트를 처음에 말했던 이동 관련 축 값 추가 부분에서 아래 사진처럼 연결해주면 돼.

 

 

 

하지만 여기서 정말 중요한건 따로 있어.

위 과정도 여기저기 해외 분들이 올려주신 자료들도 참고하고 해가면서 만든거지만 저 상태로는 예상치 못한 오류가 많이 나.

예를 들어 하나의 오브젝트로 엮어진 건물 안에 들어갈 때라거나 이럴땐 그 바닥부분의 머터리얼을 피직스 머터리얼을 할당해 주었다 하더라도 발소리가 나지 않아 ㅋㅋㅋ.

그럴 땐 묶여진 해당 오브젝트의 디테일 패널에서 기본 피지컬 머터리얼 또는 피지컬 머터리얼 오버라이드를 설정해주면 해결 돼.

 

하지만 여기까지 와도 방심하면 큰일나기 마련이야.

보통 이렇게 해 두면 이번엔 그 건물에서 나왔을 때의 발소리가 건물 내부의 발소리에서 변하지 않을 거야ㅋㅋㅋㅋㅋ.

 

이것 또한 건물에서 나왔을 때의 표면에 해당하는(랜드스케이프라던가) 오브젝트의 기본 피지컬 머터리얼을 설정해주면 해결돼 ㅎㅎ.

여기까지 알아낸다고 정말 개고생한 것 같아.

하루종일 걸리긴 했지만 결국 될 때까지 포기않고 하기만 하면 항상 가장 최악의 손해는 면하는 것 같아.

 

진정으로 최악의 손해가 생길 땐 시간은 시간대로 투자하고 결과는 결과대로 못 건지고 포기하는게 찐 최악의 손해지 ㅎㅎ.

반응형
SMALL