[Unreal_블루프린트]#10_Collision, Damage
Unreal 블루프린트 개발 중 "Collision"에 대해 알아보겠습니다.
"블루 프린트" 활용에 대한 내용입니다.
Weapon의 Collision 구현
1. BeginPlay 구현
1. Begin Play 이벤트 생성
2. Set Collision Enabled 이벤트 생성
3. 충돌 처리는 "Capsule Component(Scene Component)"가 담당하므로, Capsule을 연결
4. Type 설정에서 No Collision 설정
* 공격 중이 아닐 경우 Collision이 발생해선 안되기 때문에, Collision을 끕니다.
2. Animation Notify State 생성
1. 우 클릭 -> 블루프린트 클래스 생성
2. 모든 클래스 -> *AnimNotifyState 생성
* Anim Notify State?
Notify와 기능은 동일하지만, 단순히 "Begin"과 "End"를 지정해 시작과 끝 지점 안에서만 발동됩니다.
Animation의 플레이 도중 "Begin ~ End" 구간에 도달하면 이벤트 그래프가 발동됩니다!
3. Anim Notify State 구현
1. Get Owner 노드와 BP_Player 형변환 노드를 통해 Player 객체의 참조를 얻어옵니다.
2. Character 블루프린트에서 미리 생성한 "Sword" 객체의 "Capsule" 컴포넌트를 얻어옵니다.
3. "Set Collision Enabled"를 켜고 끔으로써 Notify State의 Event Graph를 구현합니다.
* 공격 시작 시점에 Collision을 켜고, 공격이 끝나는 시점에 Collision을 꺼야겠죠!
4. Animation 몽타주에 Anim Notify State 추가
Damage
1. Apply Damage 이벤트 구현
1. Capsule Component가 갖고 있는 Begin Overlap 이벤트 생성
2. Get Owner -> 형 변환을 통해 Sword를 소유하는 Character는 대미지 구현에서 제외
3. Apply Damage 함수 생성
4. Apply Damage 함수 입력에 알맞는 노드들 연결
* Event Instigator는 Damage를 입히는 주체를 컨트롤하는 즉 칼을 소유하고 있는 캐릭터를 의미!
2. Any Damage 구현
1. Any Damage 이벤트 생성
2. 전달 받은 Damage 양과 Damage Causer를 알 수 있습니다.
'게임개발 > Unreal 블루프린트' 카테고리의 다른 글
[Unreal_블루프린트]#12_Look At Attacker (0) | 2022.09.07 |
---|---|
[Unreal_블루프린트]#11_Health Bar 위젯 (0) | 2022.09.07 |
[Unreal_블루프린트]#9_Animation Blending, 애니메이션 상, 하체 분리 (0) | 2022.09.06 |
[Unreal_블루프린트]#8_Attack, EndAttack (0) | 2022.09.06 |
[Unreal_블루프린트]#7_무기 장착, Armor (0) | 2022.09.06 |