[Unreal]10.액터 심화과정 #3 - 충돌처리

안녕하세요 유랑입니다.



오늘은 충돌처리를 이용해 캐릭터가 횃불에 접근하면 색깔이 바뀌도록 해보겠습니다.




1. 충돌처리



1-1) 충돌처리 - ㉠와이어 프레임



캐릭터 블루프린트 클래스에 있는 뷰포트로 가시면 라이팅포함이라는 항목이 있습니다.

클릭하셔서 와이어 프레임으로 변경해 주세요.







1-2) 충돌처리 - ㉡Capsule Collision



캐릭터의 폴리곤을 이용해 충돌처리를 하면 너무 비효율적입니다.

Collision을 이용하면 적은 연산처리로도 충돌처리를 할 수 있습니다.

유니티, 언리얼, 코커스 등 다양한 엔진에서 사용하는 방법이에요.






Collision은 박스와 캡슐 그리고 스페어 모양이 있는데 상황에 맞게 넣어주시면 됩니다.






1-3) 충돌처리 - ㉢Sphere Collision



캐릭터에는 캡슐 컬리젼이 생겼으니 횃불에도 만들어 줘야겠죠?

스페어 컬리젼을 생성해 주세요.







1-4) 충돌처리 - ㉣ActorBeginOverlap 이벤트



횃불에서 캐릭터와 충돌했는지 검사해 주도록 하겟습니다.

ActorBeginOverlap은 충돌이 일어났을 때 알려주는 이벤트입니다.







1-5) 충돌처리 - ㉤형변환



Other Actor는 부딪친 상대방을 의미하며, 해당 액터로 형변환을 시켜줍니다.

ThirdPersonCharacter 액터와 부딪쳤으면 형변환이 성공하게 됩니다.







1-6) 충돌처리 - ㉥데미지 적용



형변환이 성공하면 데미지를 적용하겠습니다.

Applay Damage는 데미지를 주는 함수입니다.

데미지 값을 0이 아닌 다른 값을 주어야 최종적으로 적용이 됩니다.







1-7) 충돌처리 - ㉦색변경



이제 데미지를 받았을 때 색깔을 변경해 보겠습니다.

캐릭터 블루 프린트를 실행시켜 주세요.

디테일 창에서 외형을 결정하는 머티리얼을 건들여 줄텐데요.

돋보기를 통해서 해당 머티리얼을 찾고 실행시켜 주세요.








머티리얼에는 수많은 노드들이 있을텐데요.

여기서 BodyColor를 조절하면 색깔을 변경할 수 있습니다.






1-8) 충돌처리 - ㉧Construction Script



다시 캐릭터 블루프린트로 돌아가주세요.

Construction Script는 클래스가 인스턴스화 될 때 딱 한번 실행되는 생성자입니다.






Mesh를 드래그 해주세요.

메쉬 안에 있는 머티리얼을 다루겠습니다.





이미 설정되어 있는 머티리얼은 변경할 수 없습니다.

Create Dynamic Material Instance를 이용해서 기존에 있는 머티리얼을 복사해 값을 변경할 수 있습니다.





Return Value를 통해서 머티리얼 정보를 받을 수 있으며 변수로 승격을 통해서 값을 변수로 변경해 줄게요.

그리고 변수 이름을 MID_body로 변경해 줍니다.

추후 이 변수를 이용해서 머티리얼 색깔을 변경해 주겠습니다.





메쉬를 또 드래그 하여 옮겨주세요.





최종적으로 메쉬에 있는 머티리얼에 변경한 값을 복사한 머티리얼로 변경해 주게됩니다.

여기까지는 머티리얼만 변경되고 변화는 없습니다.





이벤트 그래프로 가셔서 MID_body를 드래그하여 옮겨주신다음 Set Vector Parameter Value를 연결해 주세요.

파라미터 네임과 밸류값을 이용해 해당 머티리얼 색깔을 변경할 수 있습니다.





마지막으로 AnyDamage 이벤트와 연결해 주세요.

AnyDamage 이벤트는 데미지를 받았을 때 실행되는 이벤트입니다.(Apply Damage 호출)





짜잔 횃불이랑 충돌처리가 일어나면 색깔이 변경된걸 확인할 수 있습니다!!!





잠깐 여기서 문제가 색깔이 변하고 원래의 색으로 돌아오지 않습니다.

그러면 Delay를 주어서 다시 원상태로 돌아오게 할 수 있겠죠?

밑에 있는 그림과 같이 구현하면 데미지를 입으면 빨간색으로 변하고 1초 뒤에 다시 흰색으로 돌아오게 됩니다.








2. 마무리



오늘은 횃불과 캐릭터간의 충돌처리에 대해서 알아보았습니다.

그리고 머티리얼과 함수를 통해서 색 변경까지 해보았네요.

오늘도 고생하셨습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unreal---Basic






댓글

Designed by JB FACTORY