목차
- 총알 소모 및 발사
- 명중률 판정 및 Miss 처리
- 크리티컬 명중과 일반 명중 처리
- 장전 기능 구현
- 스킬 쿨타임 확인
- 체력 회복 조건 확인
- 체력 회복 처리
- 쿨타임 설정 및 해제
- 느낀 점과 배운 점
- 수정할 기능 및 추가할 기능
1. 첫 번째 이미지: 총알 소모 및 발사
설명 내용 추가:
"왼쪽 마우스 버튼 클릭 시 총알이 1개씩 소모되도록 설정했습니다. Branch 노드를 통해 총알이 0보다 클 때만 발사되도록 확인하고, 총알 수를 감소시킵니다."
2. 두 번째 이미지: 명중 확인 및 Miss 출력
설명 내용 추가:
"총알 발사 후 랜덤 숫자(1~10)를 생성해 명중 여부를 판정합니다. 명중 조건이 실패(3 이하)하면 'Miss'를 출력하고, 남은 총알 수를 함께 출력합니다."
3. 세 번째 이미지: 크리티컬과 일반 명중 처리
설명 내용 추가:
"**랜덤 숫자(1~10)**를 생성해 1이 나오면 크리티컬 명중으로 판정합니다. 크리티컬 성공 시 헤드샷 데미지를 계산하고 출력합니다. 크리티컬에 실패하면 일반 명중으로 데미지를 계산합니다."
4. 네 번째 이미지: R 키를 사용한 장전 로직
설명 내용 추가:
"R 키를 입력하면 총알 수를 확인하고 장전합니다. 총알이 29 이하일 때만 장전이 가능하며, 총알 수를 30으로 설정합니다."
5. 다섯 번째 이미지: 스킬 쿨타임 확인
설명 내용 추가:
"E 키를 입력하면 스킬의 쿨타임 여부를 확인합니다. 쿨타임 중일 경우 '쿨타임 중'이라는 메시지를 출력합니다."
6. 여섯 번째 이미지: HP 회복 여부 확인
설명 내용 추가:
"스킬 사용 시 체력이 100 이상이면 회복 불가로 설정하고, 'MaxHP'라는 메시지를 출력하며 종료합니다."
7. 일곱 번째 이미지: 체력 회복 처리
설명 내용 추가:
"스킬 사용 후 체력을 회복합니다. 체력이 100 이상이면 최대 체력(Max HP)로 설정하고, 100 미만이면 **회복량을 더해 체력(E HP)**을 증가시킵니다."
8. 여덟 번째 이미지: 쿨타임 설정
설명 내용 추가:
"스킬 사용 후 쿨타임을 설정합니다. Delay 노드를 사용해 2초 동안 쿨타임 상태로 만들고, 이후 쿨타임을 해제하여 스킬을 다시 사용할 수 있도록 합니다."
느낀 점과 배운 점
- 로직의 순서가 중요하다
- 기능을 추가할 때 로직의 순서가 엉키면 오류가 발생하거나 예상한 대로 작동하지 않을 수 있음을 배웠습니다.
- 특히 조건문(Branch), 변수 설정(Set), Delay 노드처럼 순차적으로 실행되어야 하는 로직은 정리와 이해가 필수적입니다.
- 블루프린트 정리가 필수다
- 기능을 확장하거나 수정할 때 노드의 흐름이 잘 정리되어 있어야 시간을 절약할 수 있다는 것을 느꼈습니다.
- 한눈에 이해하기 쉽도록 코멘트 추가나 카테고리별 그룹화를 하는 습관이 중요합니다.
- 변수의 활용과 관리
- 변수를 잘 관리하면 로직의 흐름을 간단하게 정리할 수 있다는 것을 배웠습니다.
- 기능 추가 시 변수 설정과 초기화를 신경 써야 버그를 방지하고 코드의 확장성을 높일 수 있습니다.
- 작은 단위부터 차근차근 구현하기
- 한 번에 복잡한 기능을 구현하려고 하면 로직이 꼬이기 쉬우므로, 기본 동작부터 단계적으로 구현하고 추가하는 것이 효과적이라는 점을 깨달았습니다.
- 예: 발사 → 총알 소모 → 장전 → 명중률 추가처럼 작은 단위로 나누어 작업하기.
- 랜덤 요소를 활용한 재미 추가
- 랜덤 숫자와 조건문을 사용해 명중률, 크리티컬 판정, 회피 시스템 등을 구현하면서 게임의 재미를 높일 수 있었습니다.
- 단순 반복이 아닌 다양한 결과가 나오도록 로직을 설정하는 것이 중요합니다.
- 확장 가능성을 고려한 설계
- 기능을 처음 설계할 때 확장 가능성을 고려해야 나중에 추가할 기능(예: 적의 움직임, 회피 시스템)을 쉽게 연결할 수 있다는 것을 느꼈습니다.
- 구조를 미리 나누고 변수와 기능을 정리하면 더 깔끔하게 구현 할 수 있습니다.
정리 및 적용 방법
- 로직 정리: 블루프린트를 작업할 때 코멘트를 달고, 기능별로 그룹화하여 정리.
- 작업 순서: 기본 기능부터 차근차근 구현하고 테스트한 후, 확장 기능을 추가.
- 변수 관리: 변수 초기화와 업데이트를 명확히 하고, 변수 이름에 역할을 직관적으로 표현.
- 랜덤 로직 활용: 재미를 주기 위해 랜덤 요소를 적절히 활용하고 결과에 따른 피드백을 추가.
수정할 기능
- 총알이 0이 되었을 때의 처리
- 총알이 0일 때 발사를 막고, "총알이 없습니다"라는 메시지를 출력하도록 수정.
- 장전 시 일정 시간 동안 총을 쏘지 못하게 하기
- 장전 중 일정 시간 동안 총 쏘기 기능을 비활성화하고, 장전 완료 후 다시 활성화.
- 쿨타임 중 스킬을 사용하면 남은 시간 출력하기
- 스킬 쿨타임 중에 재입력 시 남은 쿨타임 시간을 출력.
추가할 기능
- 적의 움직임에 맞춰 총을 쏘는 기능
- 게임 시작 후 랜덤으로 L(좌클릭) 또는 R(우클릭) 값을 출력.
- 출력된 값에 맞게 일정 시간 내에 클릭해야 데미지 적용.
- 더 짧은 시간 안에 수행하면 헤드샷 처리로 더 큰 데미지를 적용.
- 적의 총알을 피하는 기능
- 랜덤하게 W, A, S, D 값이 출력되면 플레이어가 해당 방향키를 일정 시간 내에 입력해야 회피 성공.
- 입력에 실패하면 데미지가 적용되도록 설정.
'언리얼 엔진 > 블루프린트' 카테고리의 다른 글
[2부] Unreal Engine - 점프 스트림: 구현된 레벨 디자인 완성된 게임 기능 소개 (1) | 2025.04.24 |
---|---|
[3부] Unreal Engine - 점프스트림: 깜빡이는 발판 경고 시스템 구현기 (0) | 2025.04.23 |
[1부] Unreal Engine - 점프스트림: 플랫폼 이동형 게임의 레벨 디자인 기획 (0) | 2025.01.08 |