2024-12-18_TIL

별빛에소원을·2024년 12월 18일

TeamSparta-Unreal1기-TIL

목록 보기
11/90
post-thumbnail

블루프린트

블루프린트란 언리얼 엔진에서 제공하는 비주얼 스크립팅 시스템이다.
복잡한 코드 없이, 노드 기반으로 그림을 그려서 프로그래밍을 가능하게 하는 시스템이다.
간단한 로직을 기반으로 하는 게임들을 만들 때 주로 사용하는데, 노드가 커지면 가독성이 떨어져서
Blueprint보다는 C++를 활용하는 것이 좋다.


레벨 블루프린트

레벨 블루프린트를 실행시키는 방법은 다음과 같다.


레벨은 일종의 Scene 혹은 맵이라고 부르며 Level의 시작과 함께 동작되는 이벤트들을 관리하는 BP이다. 레벨블루프린트는 한 레벨당 한 개만 존재할 수 있다.

블루프린트 시작하기

블루프린트를 이용해 화면에 Hello World를 출력해보자

컴파일을 누르고 세이브를 꼭 눌러주자.

컴파일을 누르게 되면 언리얼 에디터가 리플렉션으로 만든 정보를 엔진에 추가해준다.
컴파일 >> Save 순으로 클릭!

Log 혹은 Viewport에서 확인이 가능하다.

블루프린트 변수

블루프린트에서 변수는 데이터를 저장하고 관리하는 컨테이너다. 변수는 게임 내에서 값을 저장하거나 오브젝트와의 상호작용을 추적하거나, 로직의 조건을 결정하는 데 사용된다.
에디터는 언리얼 리플렉션 시스템을 통해 변수를 생성해야하기 때문에 변수를 생성하고 나서는 반드시
Compile을 해주어야 한다.

코드작성시 코드 명명규칙들이 있는데 이러한 규칙들을 코딩스타일이라고 하며, 언리얼은 파스칼 케이스를 이용한다.

  • CamelCase
    • 낙타모양에서 지어진 이름
    • 첫 단어는 소문자, 두번째 단어부터 대문자로 시작한다.
    • 단어와 단어 사이는 붙혀서 표기한다.
camelCaseStyle
  • SnakeCase
    • 뱀 모양에서 지어진 이름
    • 각 단어 사이를 '_'로 표기
snake_case_style
  • KebabCase
    • 케밥이 꼬챙이에 꽂힌 모습에서 지어진 이름
    • 각 단어 사이를 '-'로 표기한다.
    kebab-case-style
  • PascalCase
    • 카멜식과 유사한 표기법
    • 첫단어와 두번째 접두어를 대문자로 표기
    PascalCaseStyle

파스칼 케이스를 사용하더라도 변수명을 지을떄는 타입을 소문자로 표기해주자.
자료형의 경우 기본 C++과 유사하다.

블루프린트 변수 Get,Set

언리얼 시스템은 Getter,Setter가 내장되어있다. 기본 C++에서는 지원해주지 않는 기능이지만 언리얼에서는 자유롭게 사용이 가능하다.
변수를 블루프린트 상에 가져오고 싶을 때,
Ctrl을 누르고 가져오면 Getter, Alt를 누르고 가져오면 Setter를 가져온다.

케스팅

블루프린트는 형변환을 지원한다.

Integger 변수는 자동으로 To Text 함수가 호출되서 Log에 출력할 수 있다.

사칙연산

사칙연산도 노드를 호출해서 계산한다.
노드호출은 Tab, 또는 마우스 우측 버튼을 눌러서 +.-,*,/ 등등 눌러서 호출 할 수 있다.
나누셈 연산의 경우 원래는 불가능한 연산이지만 0/100 을 하면 0이 나온다.
99/100의 경우 올림으로 1이 출력되는 현상을 확인 할 수 있다.

비교연산

블루프린트에서 비교 연산자는 두 값을 비교하여 참, 거짓을 반환하는데 사용한다.

논리연산

논리 연산은 여러 조건을 조합하거나 반전하여 복잡한 논리적 흐름을 처리할 때 사용

흐름제어

Branch

조건에 따라 흐름을 참과 거짓으로 나누는 노드이다.(if 역할) 조건은 반드시 bool 타입이어야 한다.
복잡한 조건은 여러 브랜치를 연결하거나 조건식을 미리 계산하여 처리

Sequence

흐름을 여러개의 출력으로 분리하고 순차적으로 각 출력핀을 실행하는 노드다. 양이 많아질 경우 연결이 복잡해지기 때문에 사용한다.

함수


이름을 짓고 편집하면 블루프린트로 함수를 만들어 코드를 재사용 할 수 있다.

Flip Flop

실행을 번갈아가며 두개의 출력핀으로 구분하여 실행한다. 호출될때마다 번갈아가며 노드를 실행시킨다.

텍스트 슈팅 게임

지금까지 배운 블루프린트의 기능을 이용하여 간단한 슈팅 게임을 만들어 보자.
슈팅 게임의 주요한 특징 중 하나는 총알을 발사하고, 재장전 하는 것이다.
블루프린트를 이용해 총알을 발사하고, 재장전 하는 기능을 만들어 보자.

  • 총알은 30발이 주어진다.
  • 좌 클릭 할 때 마다 총알이 1발씩 발사된다.
  • 키보드 R을 누르면 총알 30발이 재장전 된다.

총알 발사

While Loop

For Loop

열거형



가위바위보 구현하기

오늘 결과물

profile
취미로 게임하는사람

0개의 댓글