본문 바로가기

블루프린팅/6. 플레이어 어빌리티

[CH6 어빌리티강화] 사운드및 파티클 이펙트 추가

현재 실린더는 타격시 색상이 변하는데 파괴되는 효과를 더해보겠다

분기를 통한 대상의 상태 변경

실린더가 이미 총알에 맞았는지를 확인하는 Branch노드를 추가한다.

0. Blueprints폴더의 BP_CylinderTarget을 연다

1. 내 블루프린트 패널에서 변수+를 눌러 Primed라는 새변수를 추가하고 Bool로 세팅한다.

2. 블루프린트를 컴파일하고 저장한다. 대상이 처음 히트하기 전에 Primed 상태가 되는 것을 원치 않기 때문에 변수의 기본값을 False로 유지한다. 언체크한 상태로 놔두면 

3. Primed 부울 변수를 그리드 빈곳에 끌어다 놓고 Get옵션으로 배치한다.

4. 노드의 출력핀을 끌어 컨텍스트메뉴에서 Branch 노드를 검색해 추가한다.

5. Hit이벤트그룹내 Cast 형변환과 Set Material 노드사이의 선을 ALT를 누르고 클릭해 끊는다.

6. 그 사이를 Branch노드를 위치시키고   False출력핀을 연결한다.  Set Material 뒤쪽에 Primed 변수를 끌어다 SET으로 배치하고 Primed를 체크한다.

7. 총알과 Hit Event가 충돌하면 Branch노드 입력되는데 Primed가 처음에는 False이므로 Set Material을 빨갛게 만들고 출력되 연결된 SET이 체크된다. 다시한번 충돌이 일어나면 Branch의 조건인 primed가 True이므로 True출력핀이 실행될것이다. 실행될 액션은 다음 단계에서 정의 할 것이다.

 

사운드 효과

1. 비어있는 Branch-True핀을 끌어서 Play Sound at Location노드를 검색 추가한다. 추가된 노드의 Sound의 드롭다운 메뉴에서 Explosion01을 선택한다.

2. 폭발음의 위치를 컴포넌트 CylinderTarget의 StaticMeshComponent를 가져와 location값을 추출한후  연결해줘도 되지만 HitEvent 노드의 출력핀중 Hit Location을 이용하자. 발사체와 충돌하는 위치정보이다. 이 핀을 Play Sound노드의 Location고 연결한다.

3. 컴파일 세이브후 레벨에디터에서 플레이 해본다. 실린더에 한번 쏘면 빨간색으로 변하고 두번째 폭발사운드가 생성된다.

폭발 그리고 파괴의 트리거

0.실린더를 선택하고 오른쪽 Outliner에서 Edit BP_CylinderTarget을 선택해도 쉽게 블루프린트에디터로 들어갈 수 있다.

1. Play Sound 노드의 출력핀에서 와이어를 끌어 Spawn Emitter at Location노드를 검색하고 추가한다. Emitter Template 드롭다운메뉴에서 P_Explosioin을 선택한다. 

 

2. Location은 HitEvent의 Location을 끌어다 연결해준다.

3. 마지막으로 실린더를 파괴할 처리를 추가할것이다. Spawn Emitter at Location 노드의 출력 핀을 끌어 Destroy Actor를 추가한다. 기본값 self를 그대로 사용한다.

4. 커맨트를 적당히수정한다.

5. 세이브 컴파일후 나가 레벨플레이에서 플레이 해본다.