블루프린트를 이용한 비주얼 스크립팅
1. 블루프린트 기본
1. 블루프린트 변수
위 사진처럼 새로운 변수를 만들고 다양한 타입을 선택하여 지정할 수 있다.
- Boolean: True 또는 False의 값
- Byte: 가장 크기가 작은 정수 (0~255)
- Integer: 일반적인 정수 (-2,147,483,648 ~ 2,147,483,647)
- Integer64: 가장 크기가 큰 정수 (-9,223,372,036,854, 775, 808 ~ 9,223,372,036,854,775,807)
- Float: 소수 값
- Name: 불변하는 경우 사용하는 문자열, 에셋이나 액터의 이름, 태그 시스템 등에 사
- String: 일반적인 문자열
- Text: 다국어 변환이 필요한 경우의 문자열
- Vector: X, Y, Z세개의 값을 가지는 값, 3D 좌표나 RGB컬러 데이터 표현할 때 주로 사용
- Rotator: 3D 스페이스 내의 회전을 정의하는 숫자 집합
- Transform: 이동, 회전, 스케일 세가지를 모두 결합한 데이터 세트
- Object: 라이트, 액터, 스태틱메시, 카메라, 사운드 큐 등의 오브젝트
위의 변수들은 모두 set과 get을 할 수 있다. set을 하는 경우 값을 바꾸는 것이며, get의 경우는 값을 가져와서 사용하는 것이다.
2. 블루프린트 연산
- 사칙 연산: +, -, *, /, % 등
- 비교 연산: ==, !=, <, >, <=, >=
- 논리 연산:
- AND: 두 조건이 모두 true 일 때 true
- OR: 두 조건 중 하나만 true여도 true
- NOT: 조건의 결과를 반대로
- XOR: 두 조건 중 하나만 true일 때 true
- 1 XOR 0 -> 1 (true)
- 0 XOR 1 -> 1 (true)
- 1 XOR 1 -> 0 (false)
- 0 XOR 0 -> 0 (false)
3. 블루프린트 흐름 제어 1
- Branch: 조건에 따라 실행
- Sequence: 순차적으로 실행
- Flip Flop: A와 B를 번갈아서 실행
4. 블루프린트 흐름 제어 2
- While Loop
- Loop Body: 조건을 만족하는 동안 실행되는 부분
- Completed: 조건을 만족하지 않을 때 빠져나오는 부분
- For Loop
5. 블루프린트 열거형 (Enum)
enum은 관련있는 상수들을 한번에 묶어두는 방식을 말한다.
아래 사진처럼 만들 수 있다.
사용할 때에는 get 이나 set을 통해 가져올 수 있고, get 한 경우에는 switch on 이라는 노드를 통해 응용할 수 있다.
2. 실습
1. 텍스트 슈팅 게임
- 구현 내용
- 좌클릭 시 총알 발사 (0보다 적어지면 발사 불가능)
- R을 누르면 장전 (이미 장전이 된 상태라면 추가적인 재장전 불가능)
- 숫자 1을 누르면 HP 를 30 회복 (현재 HP에 30을 더해서 100을 넘어가는 경우 100이 되도록 구현)
- 일정 시간이 지나면, 데미지(10)를 줌 (HP가 0보다 작아지면, 데미지를 입지 않음)
- delta time을 가져와서 더할 time 이라는 변수를 만들고, 해당 변수의 맨 뒷 자릿수가 5인 경우에 damage가 입도록 구현
- 이때 너무 빨리 데미지 입는 것을 방지하기 위해 count 라는 새로운 변수를 도입하여, count가 최소 200 이 된 이후에 동작하도록 구현
2. 구구단 출력
for loop를 이용해서 구현
while loop를 이용해서 구현
3. 가위바위보
- 구현 내용
- AI의 랜덤 값 추출
- 가위바위보 비교
- Player Input 및 로직
3. 참고 자료
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/blueprint-variables-in-unreal-engine
'Unreal Engine' 카테고리의 다른 글
Unreal Engine 간단한 로그 찍기 (2) | 2025.01.06 |
---|---|
Unreal Engine 5 TIL day 5 (3) | 2024.12.20 |
Unreal Engine 5 TIL day 4 (1) | 2024.12.19 |
Unreal Engine 5 TIL day2 (1) | 2024.12.17 |
Unreal Engine 5 TIL day1 (0) | 2024.12.16 |