[내일배움캠프] 베이스캠프

[내배캠] 4일차 밀린 진도 따라가기(3)

홍이니 2026. 6. 24. 17:41

오늘도 계속해서 진행해 보도록 하겠습니다!

일단 어제 강의가 끝나고 간단한 과제가 있어서 진행하였는데요.

 

Jump 기능을 구현하는 것이었고 Unreal에서는 블루프린트에서 Jump 액션을 통해 간단하게 구현할 수 있어서 바로 과정 보여드리겠습니다.

 

먼저 Move와 Look을 구현할 때와 마찬가지로 콘텐츠 브라우저에서 Inputs 폴더에 IA_Jump를 하나 만들어줍니다.

IA_Jump에 들어가시면 어떤 값을 받을 것인지 값 타입을 Digital(Bool)형으로 설정합니다.

Jump는 내가 뛸 것인지 SpaceBar의 입력을 확인만 하면 되기 때문에 Bool형으로 값을 받습니다.

 

그리고 IMC_DefaultMappingContext에서 IA_Jump의 입력을 설정합니다.

 

마지막으로 BP_Character의 이벤트그래프로 들어와서 IA_Jump를 추가해주고 거기에 Jump를 연결해주면 구현이 끝납니다.

 

지금까지는 이론이나 개념에 대해 잘 모르는 상태에서 따라오는 진행을 하였는데요.

이제부터는 프로그래밍에 대한 개념을 다지면서 진행하였습니다.

 

가장 먼저 변수(Variable)에 대해서 배웠는데요. 대략적인 내용은 아래와 같습니다.

위에 표에 나와 있듯 Bool 변수는 크기가 1byte이고 참(True) 또는 거짓(False)값을 저장할 수 있습니다.

Char 변수는 Bool 변수와 같이 크기가 1byte이고 글자 하나를 저장할 수 있습니다.

Short 변수, Int 변수, Long 변수, LongLong 변수는 전부 정수를 저장할 수 있는데 저장하는 정수의 범위가 다릅니다.

마찬가지로 Float 변수, Double 변수, LongDouble 변수 역시 전부 실수를 저장할 수 있는데 저장하는 실수의 범위가 다릅니다.

 

그리고 여기에는 빠져있지만 Unreal에서는 Byte 변수가 있고 여기에서 Byte는 잘 알고 있는 정보의 크기 단위가 맞습니다.

1 Byte는 8 Bit 이고 해당 변수는 1 Byte의 저장공간을 할당하는 변수입니다.

Int64 변수는 Long 변수와 같은 크기의 저장 범위를 가지고 있습니다. 즉, 크기는 8Byte 입니다.

Name 변수는 이름을 저장하는 변수, String 변수는 문자열(문자의 배열, 즉 문장입니다.)을 저장하는 변수가 있습니다.

추가로 Text 변수도 있으며 이 변수들은 모두 문자를 저장하는데 프로그래머가 코딩을 할 때 용이하도록 구분 되어있다고 합니다.

 

이어서 Vector 변수는 X, Y, Z의 벡터 값을 저장할 수 있는 변수

Rotator 변수는 X, Y, Z의 방향 값을 저장할 수 있는 변수

Transform 변수는 X, Y, Z의 위치 값, 각도 값, 크기 값을 모두 저장할 수 있는 변수로 이루어져 있습니다.

 

변수에 관한 더 자세한 설명은 제가 전에 작성하였던 블로그 글의 링크를 통해 대신하도록 하겠습니다.

https://blog.naver.com/hiroaki9902/223717584650

 

C++ 프로그래밍 (1일차)

자료형 (Data Type) 자료형(Data Type)이란 데이터를 저장하고 읽을 때, 해당 데이터를 인식하는 형식...

blog.naver.com

 

다음으로는 비교 연산자에 대해서 배웠습니다.

비교하는 두 값이 같은 경우 == 의 값이 참(True)이 됩니다.

비교하는 두 값이 다른 경우 != 의 값이 참(True)이 됩니다.

변수 A와 B가 있을 때, A가 B보다 큰 경우 > 가 참(True), A가 B보다 작은 경우 < 가 참(True)이 됩니다.

변수 A와 B가 있을 때, A가 B보다 크거나 같은 경우 >= 가 참(True), A가 B보다 작거나 같은 경우 <= 가 참(True)이 됩니다.

 

이어서 논리 연산자에 대해서 배웠습니다.

AND 연산과 OR 연산, NOT 연산, XOR 연산이 있는데,

AND 연산은 두 값이 모두 참(True)일 때, 참(True)값을 반환합니다.

OR 연산은 두 값 중 하나 이상이 참(True)일 때, 참(True)값을 변환합니다.

NOT 연산은 들어온 값을 반전합니다. 즉, 참(True)일 때, 거짓(False)을 반환하고 거짓(False)일 때, 참(True)을 반환합니다.

마지막으로 XOR 연산은 두 값이 다를 때만 참(True)을 반환합니다.

 

이를 활용해서 Branch, Sequence, Flip Flop 분기를 학습하였습니다.

Branch의 경우는 입력한 값이 참(True)일 경우, True에 연결된 노드를 실행하고 거짓(False)일 경우, False에 연결된 노드를 실행하는 분기이고 IF문에 해당하는 분기 노드 입니다.

Sequence의 경우는 0번부터 순서대로 노드를 실행하는 분기 노드 입니다.

Flip Flop의 경우에는 처음 입력에 위 그림에서 A에 연결된 노드가 실행되면 다음 입력에 B에 연결된 노드가 실행되야되는 경우, 이후 번갈아 가면서 노드가 실행되야 하는 상황에 사용되는 분기 노드 입니다.

 

이제 배운 내용으로 실습을 해보았습니다.

게임이 시작되면 총알을 30발 가지고 시작하고 왼쪽 마우스 버튼을 통해 총알을 발사하면 총알 수가 줄어들도록 구현하였습니다.

이후 키보드 R키를 눌러 총알을 재장전하고 이 모든 상황이 화면에 5초 출력되도록 구현하였습니다.

 

다음으로 While문과 For문을 사용하여 변수 값을 감소 또는 증가한 후 조건에 도달하면 반복문을 탈출하는 기능을 구현하였습니다.

 

For문을 응용하여 이중 For문으로 구구단을 출력하는 기능을 구현하였습니다.

 

오늘의 마지막으로 열거형 변수 생성에 대해 배웠습니다.

컨텐츠 브라우저에서 열거형으로 EItem을 만들고 선택하여 들어가서 이너머레이터 추가를 통해 원하는 아이템의 타입을 3개 만들었습니다.

 

이후 블루프린트로 돌아가서 변수를 생성해주고 Switch On 노드 까지 생성해 주었습니다.
Switch On 노드는 열거형의 변수의 타입을 확인하여 입력받은 변수의 타입에 따라 분기하여 프로그램을 실행해 주는 노드 입니다.

 

오늘은 여기까지 진행하였습니다.
오늘도 긴 글 읽어주셔서 감사합니다.

다음에 또 뵙겠습니다! 좋은 하루 되세요.