게임 기획 제련소
article thumbnail
[UE5] 논리연산
🧠프로그래밍/UE5 2025. 4. 6. 15:15

이번 공부에서는 논리적으로 연산하는 방법에 대해 알아보자.아주 많은 상황에서는 조건을 하나만 판별하는게 아니라 여러가지 조건이 있고 그 조건에서 여러개를 동시에 만족한다거나 아니면 하나만 만족하는 상황이라거나 하는 여러가지 조건에 대해 판별해야 한다. 예를 들어, 어떤 RPG 게임에서 골드와 레벨이 있다고 가정해보자.또한, 어떤 특정 길드를 가입하고 싶은데 여러가지 조건들이 있다고 가정해보자.1. 레벨이 30레벨 이상이 되어야 한다.2. 가입비가 필요하다. equal 을 사용하여 30을 표기하면  30 레벨 이상인지를 표기할 수 있다.그리고 Level을 바로 쓸 수 있지만 임시적으로 잠시 변수로 만들어가지고 그 변수에다가 저장했다가 나중에 그 변수에 접근하고 싶다면 여기서 새로운 변수로 만들수 있었다. ..

article thumbnail
[UE5] 디버깅 실습
🧠프로그래밍/UE5 2024. 12. 21. 00:18

디버깅이라는게 무엇일까?어떤 코드를 짜다가 예상외로 프로그램이 이상하게 동작을 한다고 느낄 때 해결하는 방법 중 하나이다. 나눗셈을 할 때 사람들이 자주 실수하는 부분에 대해서 재현해 보도록 하자.예를 들어, 기획서에 현재 체력이 몇 프로인지 UI에 출력해야된다 라는 요구사항이 있다고 가정해보자.세팅값 : 현재 체력 82 / 최대 체력 100퍼센트.. 백분율이니까 현재 체력과 최대 체력을 나눠주고 100을 곱해주면 0.82 라는 값이 나온다. 그래서 퍼센트까지 출력해주고 싶으면 [Format Text]를 이용해 {Percent}% 해준 뒤 연결해주면 현재 체력이 몇 프로이다 라는걸 확인할 수 있지 않을까? 연결한 노드들. 하지만 0이라는 값이 나온다. [Event BeginPlay]를 선택하고 F9을 눌..

article thumbnail
[UE5] 총알 재장전
🧠프로그래밍/UE5 2024. 12. 18. 03:08

마우스를 클릭할 때 마다 총알의 갯수가 감소하는것을 만들었다.그치만 0이 되면 음수까지 가버리기 때문에 0이면 실행을 하면 안된다. Branch를 추가해 이렇게 0이면되면 실행이 안되는 로직으로 바꿔줄 수 있다.총알이 없다면 print text를 통해 총알이 없다! 라는 텍스트까지 출력한다. 근데 이렇게 어떤 값을 빼주고 세팅하는것은 자주 있는 일인데... 더 편하게 할 수 있는 방법이 없을까?지금은 Ammo에서 1을 빼고 Set 노드로 다시 세팅해주고 있음. --를 검색하면 Decrement int 라는 노드를 찾아볼 수 있다.빼주고 그 값을 다시 세팅하는것을 한 번에 처리해주는 노드이다. 총알을 쏘는 기능은 만들었는데 총알을 다시 재장전 하는 기능도 만들어야 한다.조건 1. 재장전 버튼을 추가할 것 ..

article thumbnail
[UE5] 비교 연산
🧠프로그래밍/UE5 2024. 12. 18. 01:58

HP를 변수로 추가했는데 어느 RPG 게임이나 FPS 게임의 경우 몬스터의 체력이 0이 되면 몬스터가 죽고 몬스터가 죽으면 경험치를 플레이어가 얻고 아이템 같은 보상도 얻게 되는데, 여기서 나는 사칙연산을 통해서 체력을 줄이는 것까지는 할 수 있게 되었다.그러면 몬스터의 체력이 0 보다 작은지 어떻게 확인해야 할까? 사측연산에서도 그랬지만 수학에서 사용하던것을 그대로 사용할 수 있다.숫자를 넣어주면 자동으로 누가 작은지 판별해주는 기능을 한다. 이렇게 크다 작다 같다 같지 않다 같거나 크다 등등 그대로 사용할 수 있다. HP가 0이면 음수이거나 0이면 죽은 상태이니까 여기서 꺼낸 값이 true이면 이 몬스터는 죽은 상태가 될 것이다.여기서 나온 값을 당장 다른 노드에 꼽아서 이어서 사용해도 되긴하지만 다..

article thumbnail
[UE5] 사칙 연산
🧠프로그래밍/UE5 2024. 11. 19. 23:55

언리얼에서 사칙연산을 다 제공하고 있다. 각 사칙연산들의 기호를 눌러서 노드를 추가해 보자. 이렇게 사칙연산을 노드로 만들 수 있고 결과물만 뱉어주는 기능이라고 보면 된다.왼쪽 구멍이 두 개인 이유는 더해지기를 원하는 값 두 개를 연결해 주고 오른쪽으로 그 덧셈에 대한 결과물이 나오는 것이다.엥? 나는 3개의 값을 더하고 싶은데?....... [Add pin]을 눌러주면 2개 이상의 값도 더해주는 게 가능하다. 그래서 이전에 배웠던 것들을 활용해서 현재 체력은 90이고 힐(10)을 받아서 체력이 회복되었다는 것을 가정해서 위처럼 노드를 연결해 주면 된다.나머지 사칙연산들도 다를 건 없지만 나누기 같은 경우에는 좀 더 까다로운 부분이 있다. 만약에 5 / 0을 하면 어떻게 될까? 프로그래밍 언어에서는 0 ..

article thumbnail
[UE5] Get / Set
🧠프로그래밍/UE5 2024. 11. 12. 00:10

이전 글에서 데이터의 공간을 만들고 할당하는 것까지 해보았다. 하지만 실제로 의미가 있으려면 뭔가를 넣거나 꺼내 써야 한다.그래서 Get과 Set을 배워보도록 하자. [Set] 변수에 어떤 값을 할당하는 것.[Get] 변수에 할당한 값을 읽어내는 것. int로 영역을 먼저 할당을 받았다. 우클릭을 눌러서 Set Hp를 검색해서 노드를 추가하고 Get HP를 눌러 노드를 추가해 주었다.이 두 개가 가장 핵심적인 역할을 할 것이다. 아까 HP라는 변수를 만들었는데왜 두 개를 더 만들어요?  HP라는 일종의 박스를 만든 건 맞지만 새로운 변수로 만든 게 아니라 하나의 기능을 만들어 준 것이다.이 개념은 함수의 개념과 같다고 보면 된다. 쉽게 기계라고 생각하면 된다. 마우스를 가져다가 대면 함수의 기능을 알 수..

article thumbnail
[UE5] 변수타입
🧠프로그래밍/UE5 2024. 11. 11. 22:05

오늘은 본격적으로 데이터를 다루는 방법에 대해서 다뤄 볼 시간이다.컴퓨터로 어떠한 게임이나 프로그램을 만들 때 핵심이 되는 두 가지는 첫 번째는 '데이터' 두 번째는 '로직'이다.그렇다면 데이터와 로직은 어떠한 차이가 있을까? [데이터] 컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 따위의 형태로 된 자료. 게임으로 예를 들면 플레이어가 있고, 아이템이 있고, 캐릭터의 스탯과 레벨이 있는... 그런것이다. 그래서 이런 데이터들을 컴퓨터가 인식할 수 있게끔 들고있게 만들어야하는데 컴퓨터가 들고만 있다고 그것이 움직일까? 아니다! 정지화면에 가깝다.게임세상을 묘사하는데 까지는 성공했지만 진행시키지는 못할것이다. 그래서 메모리에 있는 데이터들을 가공시켜서 게임을 진행 해야한다.  [로직] 어떤 프로그램을..

article thumbnail
[UE5] 블루프린트 기초
🧠프로그래밍/UE5 2024. 11. 10. 01:00

블루프린트를 활용하기 위해서 [Open Level Blueprint]를 눌러 열어 준다. 그러면 새로 만든 레벨 블루프린가 하나 생성되는것을 볼 수 있다. 레벨 블루프린트?? 그게 뭘까 싶었다. 하지만 엄청 대단한 개념은 아니고 새로운 레벨이라는 개념을 이용해 새로운 맵을 만들었다.언리얼 엔진에서는 맵이라는것 자체를 레벨이라는 이름으로 부른다고 한다.(유니티 엔진에서의 씬과 동일)그래서 언리얼 엔진에서는 이것을 레벨이라고 부르는 개념이고 각 레벨 마다 레벨 블루프린트가 하나 생성이 되는것이다.따라서, 레벨 블루프린트를 하나만 만든다고 해서 모든 레벨이 적용이 되는것은 아니고 1레벨 1블프 라고 보면 된다. 마우스 우클릭을 통해 추가해보도록 하자. 마우스 우클릭을 눌러 [Print Text]를 검색하여 노..

article thumbnail
[UE5] 언리얼 엔진 기초
🧠프로그래밍/UE5 2024. 11. 8. 17:01

언리얼 엔진 첫 시작 시 굉장히 많은 기능이 있는것을 확인할 수 있다.나는 언리얼 엔진4 화면으로 변경하여 시작했다. [Place Actors] 일종의 대기실 이라고 보면된다. 언리얼 엔진에서 자체적으로 만들어준 기본 기능들을 사용할 수 있는데, 그런 기본 액터들을 임대해주는 곳이다.[Content Browser] 소스코드를 작성하거나 사운드 파일을 받아주거나 아트리소스를 받아주거나 했을 때 그런 모든 준비물들을 다 컨텐츠 브라우저에서 관리하게 해줄것이다. 그래서 Cube를 드래그 드롭한다면 인게임 세상에 Cube가 배치 된다. [Outliner] 인게임에 배치한 모든 물품들을 아웃 라이너라는 패널에서 보여주고 있다.[Details] 배치한 액터들에 대한 정보를 정밀하게 알려준다.