언어:
페이지 정보

5. 베이스 대미지 블루프린트 생성

이번 단계에서는 GrenadeGunPistol 이 무언가에 충돌하면 대미지를 입히도록 하는 기본 블루프린트 제작에 대해 다루겠습니다.

이전 단계에서 노드를 만드는 방법을 배웠으니, 여기서부터는 노드 생성 부분을 청크로 묶어 빠르게 진행하도록 하겠습니다. 이벤트 그래프우클릭 하기만 하면 블루프린트에서 사용할 수 있는 모든 노드를 찾을 수 있다는 점, 핀을 끌어 놓으면 노드 컨텍스트에 따라 그 핀 유형에만 작동하는 대상으로 검색 범위를 좁힐 수 있다는 점만 기억하시면 됩니다.

단계

  1. Hit 이벤트 노드를 생성합니다.

    image alt text

  2. Other 핀을 끌어 놓고 != 를 검색하여 Not Equals (같지 않음) 노드를 생성합니다.

    image alt text

  3. Not Equals 노드의 두 번째 입력 핀을 shell 로 설정합니다. 스크롤을 조금 내려야 이름이 그냥 shell 인 블루프린트를 찾을 수 있을 것입니다.

    image alt text

  4. 다음 And 노드, Branch 노드, bCanExplode 변수를 사용하여 약간의 로직을 짜 줘야 합니다.

    image alt text

    이벤트 그래프 에서 쓸 수 있는 키보드 단축키가 여럿 있는데, 그 중에서 B + 좌클릭Branch 노드 생성입니다. 블루프린트 에서 가장 많이 사용되는 로직 노드 중 하나일 것입니다.

  5. 이제 GrenadeGun 이 얼마만큼의 대미지를 입힐 것인지, 총의 Ammo Remaining 을 구해 1000 을 곱하고 다시 1000 을 더해 정합니다.

    image alt text

    Ammo Remaining 은 기본 피스톨 클래스와는 별도의 변수로, Get Ammo Remaining 를 검색해서 찾을 수 있습니다. Multiply 노드는 실제로는 Int * Float 노드이며, Int * Float 를 검색하면 됩니다. 마지막으로 Addition 노드는 Float + Float 를 검색해서 찾을 수 있습니다.

  6. 총은 한 번만 폭발하도록 했으면 하므로, Do Once 노드를 Branch 노드의 True 핀에 연결합니다.

    image alt text

  7. Self 노드와 Get Player Controller 노드가 필요할 것입니다.

    image alt text

  8. 마지막으로 대미지를 입히기 위해서는 Apply Radial Damage 노드가 필요한데, 이미 생성한 것에서 입력을 여러 개 받으며, 일부 세팅 변경이 필요합니다. 아래와 같이 연결합니다. Apply Radial Damage 노드에 세 가지 세팅을 변경해야 합니다: Damage Radius, Damage Type Class, Do Full Damage.

    • Damage Radius400 으로 설정합니다.

    • Damage Type ClassOdin Damage Type 으로 설정합니다.

    • Do Full DamageTrue 로 설정합니다.

    Copy Node Graph

    이 이미지 좌상단 구석의 아이콘을 클릭하여 블루프린트 그래프를 복사하고 프로젝트에 붙여넣으면 됩니다.

    연결되어 있는 선 아무데나 더블클릭 하면 Reroute (경유) 노드가 추가되어 그래프 정리를 깔끔히 할 수 있습니다. 위에서 Hit Location 에서 Origin 으로 가는 노랑 선에서 볼 수 있습니다.

  9. 블루프린트 에디터 툴바에서 컴파일 버튼을 클릭하여 블루프린트를 업데이트하고, 저장 버튼을 눌러 변경사항을 저장합니다.

결과

이번 단계 이후, 월드에 던지면 폭발하는 무기가 생깁니다. 탄창에 남은 탄환 수에 따라 더 많은 대미지를 입히며, 탄창이 가득 찬 피스톨은 특수한 봇이 아닌 경우 즉사시키기에 충분한 대미지를 입힐 것입니다. 다음 단계에서는 사운드, VFX, 물리 충격을 추가하고, 폭발 후 총을 청소하는 작업을 하겠습니다.