※ 알아 두자
Static Mesh ↔ Skeletal Mesh 변환
Skeletal Mesh → Static Mesh
스켈레탈 메시에서 스태틱 메시 만들기 눌러서 저장 (스켈레탈메시에 적용 되어있는 머티리얼도 따로 뺄수 있는 듯하다)

Static Mesh → Skeletal Mesh
export로 추출시킨 후 다시 임포트 시킬 때 스켈레탈 메시에 체크 해주면 된다.
하지만 이런방식으로는 본을 따로 추가 할수없다. 애니메이션 제작하는 외부프로그램으로 만들어서 가져와야한다.


프리셋(Preset)

OverlapAll이라던가 BlockAll이라던가 저장되있는 프리셋으로 바꿔 오브젝트들 끼리 Overlap 시킬지 Block 시킬지 정해줬는데 사용자 지정 또한 Custom으로 가능하다.
또한 오브젝트, 트레이스 , 프리셋을 '편집 - 프로젝트 세팅 - 콜리전' 에서 추가 할 수 있다.
Player, Npc 오브젝트를 만들어 마을에서 플레이어들끼리는 부딪히는 상황에도 무시로 설정하여 통과하게 플레이어와 NPC는 블록 시킬 수 있다.
Collision Enabled옵션 에서는
No Collision : 충돌 없음
Query only : 레이캐스트, 스윕, 오버랩 같은 공간쿼리 충돌만 가능
Physics only : 리지드바디 같은 물리 시뮬레이션 충돌만 가능
Collision Enabled : Query + Physics
데미지 적용( Apply Damage )
충돌의 정의에 대해 배웠으니 공격을 구현해본다.
공격을 받은 상대는 무기공격력 만큼 데미지를 받아야 하는데 그 과정을 언리얼에서는 Apply Damage 노드로 편하게 구현 가능하다.

Damaged Actor : 공격받은 액터 = 무기랑 접촉한 Other Actor
Base Damage : 적용시킬 대미지 수치 = 무기의 공격력 Damage 변수
Event Instigator : 대미지를 가하는 플레이어 받는값이 Controller 오브젝트 레퍼런스라서 Get Instigator Controller로 가져온다. Get Instigator + Get Controller 합쳐진것.
변수로도 가져올수 있지만 예외상황이 있을수 있으니 무조건 함수로 가져올것
Damage Causer : 실제로 대미지를 가하는 액터 (수류탄이 터지면 수류탄, 여기서는 무기자체니까 Self)
Damage Type Class : 데미지의 종류( 속성,독뎀 등)
Apply Damage 노드 오른쪽 위를 보면 데스크탑 같은게 있는데 이건 서버로 데이터를 보내는건데 서버가없는 경우에는 로컬에서 알아서 작동한다.

Apply Damage에서 보낸 대미지는 공격받는 BP_Character에서 오버라이드 함수 AnyDamage를 사용하여 받을수 있다.

'언리얼 BluePrint 정리' 카테고리의 다른 글
| 06/13 학습 정리(SetContainer, Sequence, Hashing, 피격 보수) (0) | 2023.06.13 |
|---|---|
| 06/09 학습 정리( Attack 보수) (0) | 2023.06.11 |
| 06/07 학습 정리(Hit, Physics, Delta Time) (0) | 2023.06.08 |
| 06/02 학습 정리(Material Instance, Collision, Sweep) (1) | 2023.06.07 |
| 06/01 학습 정리( 8Way Move Animation, Calculate Direction) (0) | 2023.06.02 |