몸 부위별 다른 데미지 적용하기

Ryan Ham·2024년 8월 12일
4

Unreal Engine

목록 보기
18/27
post-thumbnail

Physics Asset

Unreal Engine에는 Physics Asset이라는 것이 존재한다. 생긴것은 Skeletal Mesh와 비슷하게 생겼는데 한가지 다른 점이 있다면 여기서는 bone이 아닌 body로 최소 기능을 담당하게 된다. 각각의 body에 특정 Physical Material을 적용하면 Line Trace로 해당 부위를 때렸을때 Physical Material 안의 Surface 타입으로 해당 부위를 알 수 있다. 이에 대한 자세한 내용을 밑에서 계속 알아보자!

Physical Material

Mesh가 Material로 재질을 결정한다면 Physical Asset은 Physical Material로 해당 부위의 특징이 결정된다고 생각해보자. Physical Material을 만드는 방법은 콘텐츠 브라우저->피직스->피지컬 머티리얼로 들어가면 된다.

Physical Material안에는 Surface Type을 정하는 부분이 있다.

Surface Type은 Unreal Engine Editor의 Project Settings->Physics에 들어가면 manual하게 추가가 가능하다. 나는 머리에 해당하는 Head, 몸통 부분에 해당되는 Body Center, 팔다리 부분인Body Rear 총 3가지 구역으로 Surface Type을 잡았다.

마지막으로 BP에서 피격된 Surface Type별로 다른 데미지를 구현하는 부분이다. LineTrace By Channel에서 Out Hit으로 나온 값을 Break Hit Result로 받는다. 그런 다음, Break Hit Result에서 핀을 분할하면 정말 다양한(하지만 중요한!!) 결과 값들을 볼 수 있는데 여기에 깜찍하게도 PhysMat가 있는 것을 볼 수 있다. 이 값을 받아서 switch로 분할하게 되면 편리하게도 우리가 위에서 설정한 Surface Type이 모두 포함된 노드가 Switch on EPhysicalSurface라는 이름으로 생성되게 된다. 그러면, 각각의 Surface Type에 대해서 다른 데미지를 부여하면 모든 일이 마무리되게 된다.


최종 화면

불쌍한 1번째 마네퀸은 다리를 몇방 맞고 그다음에 몸통을 맞은 다음에 전사하게 되었다. 작지만 왼쪽 위에서 마네퀸이 받은 데미지를 알 수 있다. 데미지는 Body Rear에 10, Body Center에 20, Head에 100으로 설정하였다.(맞은 데미지가 100 이상이면 마네퀸 사망.)

2번째 마네퀸은 Head를 맞고 1번에 즉사하는 모습이다.

profile
🏦KAIST EE | 🏦SNU AI(빅데이터 핀테크 전문가 과정) | 📙CryptoHipsters 저자

0개의 댓글