본문 바로가기

언리얼128

C++ 06 [메모리 할당] https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%EB%A9%94%EB%AA%A8%EB%A6%AC_%ED%95%A0%EB%8B%B9 동적 메모리 할당 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 동적 메모리 할당 또는 메모리 동적 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 사용이 끝나면 운영체제가 쓸 ko.wikipedia.org ▣ 메모리 할당 : 필요한 메모리를 힙이라는 메모리 영역에서 가져와 사용하는 것 ▣ 동적메모리 : 상황에 따라 원하는 크기만큼의 메모리가 할당 가능 ▣ 정적메모리 : 메모리의 크기가 코딩되어 있어서 나중에 조절할 수 없다. ▣ 메모리 할당 방법 : 데이터타입 *포인터이.. 2023. 3. 24.
C++ 05 [객체배열] ▣ 객체배열 만들기 : 클래스이름 배열이름[크기]; ▣ 객체배열을 초기화하는 방법 : 클래스이름 배열이름[크기] = { 클래스이름(), 클래스이름(값)}; ▣ 객체배열 인덱스 수만큼 초기화를 해야 한다. ▣ Test() : 매개변수가 없는 생성자 호출 ▣ Test(10) : 매개변수가 있는 생성자 호출 ▣ 소멸자는 큰 숫자 인덱스부터 소멸한다. 그렇기 때문에 매개변수가 있는 소멸자가 먼저 호출되었다. 2023. 3. 24.
10진, 2진수 바꾸기 ▣ 10진수를 2진수로 바꾸기 위해서는 나누기 연산을 진행해야 합니다. 위에 있는 방법처럼 2를 나누어 나눈 나머지와 나눈 값들을 하나하나 나열하여 작성합니다. 그리고 화살표 방향 순서대로 보면 그게 2진수입니다. ▣ 2진수를 10진수로 바꾸는 방법은 1,2,4,8,16,32,64,128,256,512... 이런 식으로 2에 몇 승에 값들을 2진수 위에 숫자를 나열하여 계산해야 합니다. 2진수 위에 2에 몇 승에 대한 값을 나열을 하고 0이 아닌 1인 부분에 값을 다 더하게 되면 10진수가 됩니다. 2023. 3. 21.
언리얼엔진5 35장 [애니메이션] ▣ 안녕하세요. 이번장에서는 키를 누르면 이동하면서 애니메이션이 재생되는 과정을 공부해 보겠습니다. New State Machine, Get Velocity, Vector Length를 사용합니다. ▣ 먼저 Epic Games에서 Paragon: Reventant에셋을 다운로드합니다. ▣ 그리고 블루프린트폴더에서 Character 블루프린트를 생성하고 이름은 Player로 지정합니다. ▣ Game Mode Base도 생성합니다. 이름은 BP_GameMode로 지정합니다. ▣ World Settings에서 GameMode Oeverride와 Default Pawn Class를 지정합니다. ▣ Player에 들어가서 Mesh를 클릭합니다. 그리고 Detalis메뉴에 보면 Mesh라는 메뉴가 있습니다. Ske.. 2023. 2. 25.
언리얼엔진5 34장 [Default Land Movement Mode, Set Movement Mode] ▣ 안녕하세요. 이번장에서는 Default Land Movement Mode에 대해 공부해 보겠습니다. 저번장이랑 중복되는 부분이 있습니다. ▣ 먼저 저번장에서 만들었던 Player를 사용하겠습니다. Player는 캐릭터컨트롤러로 생성합니다. ▣ Player에 모양과 카메라위치도 지정합니다. ▣ Prjoect Settings에 Input에 Axis Mappings에 두 개를 생성합니다. W키, S키를 누를 때의 입력, A, D 키를 누를 때의 입력을 각각 생성합니다. ▣ Player에 Event Graph로 들어가서 위에 이미지처럼 코드를 완성합니다. Get Actor Forward Vector함수는 방향에 대한 함수입니다. Add Movement Input함수는 Character Movement를 사용.. 2023. 2. 23.
언리얼엔진5 33장 [마우스 회전] ▣ 안녕하세요. 이번장에서는 마우스회전 블루프린트를 공부해 보겠습니다. ▣ 저번장에서 사용했던 Player를 사용하겠습니다. Player는 플레이어컨트롤러입니다. ▣ 먼저 Edit메뉴에 Project Settings를 클릭하고 ▣ Input 메뉴에서 Axis Mappings를 추가합니다. MoveMouseX, MoveMouseY라는 이름으로 두 개를 추가하고 각각 입력을 Mouse X, Mouse Y로 지정합니다. ▣ 그리고 Player Event Graph에서 위에 있는 이미지처럼 블루프린트를 완성합니다. 아까 만들었던 MouseX, MouseY Axis를 불러오고 Add Controller Input 회전함수를 가져옵니다. 여기서 중요한 건 왜 Pich와 Yaw를 사용하는지 잘 이해하기 어렵습니다. .. 2023. 2. 21.
언리얼엔진5 32장 [Jump] ▣ 안녕하세요. 이번장에서는 블루프린트를 이용해 점프를 하는 함수를 공부해 보겠습니다. ▣ 먼저 저번장에서 사용했던 Player를 사용하겠습니다. ▣ Edit메뉴에 Project Settings에 ▣ Engine메뉴에 Input로 들어가서 Action Mpaaings를 추가합니다. 이름은 Jump로 지정하고 키는 스페이스 키로 지정합니다. ▣ 그리고 Player에 Event Graph로 들어가서 Jump를 검색하면 Input에 Action Events가 있습니다. 클릭해서 생성합니다. ▣ 그리고 또다시 jump라고 검색을 하면 함수 중에 Jump라는 함수가 있습니다. 클릭해서 생성합니다. ▣ 노드를 연결하고 컴파일 저장 ▣ 씬에서 플레이버튼을 클릭하고 스페이스키를 누르면 점프가 되는 걸 확인할 수 있습니.. 2023. 2. 21.
언리얼엔진5 31장 [Set Actor Rotation, Add Actor Local Rotation, Add Controller Yas Input] ▣ 안녕하세요. 이번장에서는 Set Actor Rotation, Add Actor Local Rotation, Add Controller Yas Input 함수들을 사용하며 회전하는 노드를 공부해 보겠습니다. 회전하는 노드나 움직이는 노드 등 방법은 정해져 있지 않고 사용자의 사용 의도 따라 정합니다. ▣ 저번장에 만들었던 Player와 GameMode를 사용하겠습니다. ▣ Edit메뉴에서 Project Settings에 메뉴에 Input에 Axis Mappings를 추가합니다. MoveTurn이라는 이름으로 Q와 E키를 지정합니다. 키를 눌러 회전하는 걸 구현할 예정입니다. 다른 키로 지정하셔도 되고 Action Mappings를 추가하셔도 됩니다. ▣ Player에 Event Graph에서 노드를 완.. 2023. 2. 17.
언리얼엔진5 30장 [캐릭터 이동, Add movement Input함수, Character Movement, Action Mappings, Delay함수] ▣ 안녕하세요. 이번장에서는 키를 누르면 캐릭터가 이동하는 노드, Add movement Input함수, Character Movement, Action Mappings, Delay함수에 대해 공부해 보겠습니다. ▣ 먼저 Content에서 Character과 Game Mode Base를 생성합니다. ▣ Character에 이름은 Player로 Game Mode Base에 이름은 B_GameMode로 지정합니다. ▣ Window 메뉴에 World Settings에 GameMode를 설정합니다. GameModeOverride는 아까 생성한 B_GameMode로 지정해 주시고 Default Pawn Class는 Player로 지정합니다. ▣ 그럼 Player를 씬에 옮기지 않더라도 기본 GameMode와 Pa.. 2023. 2. 16.
언리얼엔진5 27장 [매크로] ▣ 안녕하세요. 이번장에서는 매크로를 공부해 보겠습니다. 매크로는 함수와 비슷합니다. 그리고 조금 다릅니다. 이 차이를 보기 위해 노드를 연결하며 공부해 보겠습니다. ▣ 먼저 저번장에서 공부했던 Axis로 입력하는 함수를 통해서 진행했던 노드에서 branch가 아닌 Compare Float 매크로블록으로 변경했습니다. 블록에 M이라고 적혀 있으면 매크로이고 F라고 되어 있으면 function 함수입니다. ▣ 컴파일 저장 후 씬에서 플레이 버튼을 클릭하고 위, 아래 키를 누르면 위에 이미지처럼 출력이 잘 되는 걸 확인할 수 있습니다. ▣ 이번에는 매크로를 직접 만들어서 사용해 보겠습니다. 왼쪽메뉴에 보면 MACROS라는 메뉴가 있습니다. 더하기 버튼을 클릭하면 생성이 됩니다. 함수와 동일합니다. ▣ 매크로.. 2023. 2. 14.
언리얼엔진5 26장 [Input, Axis Mappings] ▣ 안녕하세요. 이번장에서는 Input, Axis Mappings에 대해 공부해 보겠습니다. ▣ 먼저 Player라는 이름으로 Actor를 Cube로 만들어주세요. 그리고 맵에 Player를 드래그합니다. ▣ Player Transform에서 Input 메뉴에 Auto Receive Input이라는 메뉴가 있습니다. 클릭하면 위에 이미지처럼 Player 종류를 고를 수 있습니다. 이 Player들은 멀티게임에서 사용하신다고 생각하시면 됩니다. 저희는 Player 0으로 지정하겠습니다. 지정한 이유는 일반적으로 Actor는 씬화면에서 아무 기능이 없는 배우와도 같습니다. Player 0으로 체크하게 되면 Player에 대한 입력을 플레이어 하나로 인정해 주신다고 생각하시면 됩니다. 이건 Disabled로 .. 2023. 2. 10.
언리얼엔진5 24장 [Rotation] ▣ 안녕하세요. 이번장에서는 Rotation를 회전하는 간단한 코드를 공부해 보겠습니다. ▣ 먼저 Player, Monster라는 Actor 두 개를 생성합니다. ▣ Player Actor를 그릴때 두 개의 Cube를 그려주시는데 여기서 주의해야 할 건 두 번째 Cube의 위치가 첫 번째 Cube X좌표 쪽에 있어야 합니다. 그래야 Player Actor가 어떻게 방향을 바꾸는지 확인할 수 있습니다. ▣ 둘다 컴파일 저장 후 맵에 배치합니다. ▣ Player Actor에서 Event Graph에 노드를 완성합니다. Find Look at Rotation 블록은 Start, Targer에 Location을 지정해서 회전하는 블록함수입니다. 위에 있는 코드처럼 완성하고 씬에서 재생을 하면 Player Act.. 2023. 2. 9.
언리얼엔진5 23장 [방향으로 이동, Distance, DeltaSeconds] ▣ 안녕하세요. 이번장에서는 엑터 방향으로 이동하는 코드 그리고 Distance, DeltaSeconds 등을 공부해 보겠습니다. 이 장에서 중요한 핵심은 방향구하는 공식 : 내가 가고 싶은 위치 - 내 위치 방향으로 이동하는 공식 : 현재위치 + (방향 * (Delta Seconds) * speed)) 이 두 가지 공식을 기억하시면서 오늘 장을 공부하시면 됩니다. ▣ 먼저 Player엑터를 하나 생성하겠습니다. BluePrint Class를 생성해 주시고 ▣ 기본 Actor로 지정합니다. 이름은 Player로 지정하겠습니다. ▣ Player Actor에 들어가서 Shapes에서 Cube를 클릭해서 생성합니다. 컴파일 저장 후 ▣ Event Graph에 들어가서 노드베이스에 오른쪽마우스 클릭하고 get .. 2023. 2. 8.
언리얼엔진5 22장 [구조체] ▣ 안녕하세요. 이번장에서는 구조체를 공부해 보겠습니다. 구조체는 여러 개의 데이터를 구조화시키는 데이터 구조입니다. ▣ 먼저 BluePrints에서 Structure를 생성합니다. ▣ 이름은 Playerinfo로 지정하고 Add Variable를 클릭해서 3개의 변수를 생성합니다. hp, ex, speed으로 이름을 지정하고 저장을 합니다. ▣ LevelBluePrint로 가서 player라는 변수를 생성합니다. 그리고 데이터타입을 아까 생성했던 Playerinfo 구조체를 검색해서 지정합니다. 컴파일 저장 후 ▣ player변수를 GET 합니다. 그리고 블록에 원모양에 오른쪽마우스를 클릭하면 Split Struect Pin이라는 메뉴가 나옵니다. 이걸 클릭하게 되면 ▣ 구조체의 자료가 하나하나 나오게.. 2023. 2. 7.
언리얼엔진5 21장 [상속, 접근연산자, 멤버변수, 멤버함수] ▣ 안녕하세요. 이번장에서는 상속, 접근연산자, 멤버변수, 멤버함수에 대해 공부해 보겠습니다. 단어들만 보면 어렵게 생각이 들 수 있지만 실습을 통해서 하나하나 만들어가면 이해하기 쉬울 겁니다. ▣ 먼저 Player이름으로 기본 Actor를 생성합니다. 그리고 다시 오른쪽마우스를 클릭해서 BluePrint Class를 클릭합니다. 그럼 밑에 ALL CLASSES 메뉴가 있는데 여기에 player라고 검색하면 아까 생성한 player Actor가 나옵니다. 이걸 클릭하고 Actor로 생성합니다. 이름은 Man으로 지정합니다. 그리고 더블클릭을 합니다. ▣ 위쪽 메뉴에 Class Settings을 클릭하면 Class Options에 Player로 설정되어 있는 걸 확인할 수 있습니다. Man Actor는 이.. 2023. 2. 3.
언리얼엔진5 20장 [Actor생성, Actor이동] ▣ 안녕하세요. 이번장에서는 Actor를 생성하고 이동하는 코드를 공부해 보겠습니다. ▣ 먼저 Content Drawer메뉴에서 오른쪽마우스를 클릭하여 Blueprint Class를 클릭합니다. ▣ 그럼 이렇게 여러 가지 메뉴들이 나오는데 맨 위에 Actor를 클릭합니다. ▣ 생성한 Actor에 이름을 Player로 지정합니다. F2키를 눌러서 이름을 바꿀 수도 있습니다. ▣ Player Actor를 클릭하여 Actor에 들어갑니다. 그리고 왼쪽메뉴 중에 Components에서 Add를 클릭하고 Basic Shapes에서 Cube를 클릭합니다. 그럼 큐브가 그려집니다. 컴파일 저장 후 ▣ Player Actor를 씬에 드래그합니다. 그럼 위에 이미지처럼 큐브가 생성되는 걸 확인할 수 있고 오른쪽에 Out.. 2023. 2. 2.
언리얼엔진5 19장 [Break point, Debug, 단축키] ▣ 안녕하세요. 이번장에서는 break point, Debug 그리고 여러 단축키에 대해 공부해 보겠습니다. ▣ 먼저 Window메뉴에서 Place Actors를 클릭합니다. ▣ 그럼 이렇게 왼쪽에 Place Actors에 관한 메뉴가 나옵니다. 여기서 SHAPES버튼을 클릭하고 Cube를 드래그해서 Cube하나를 생성합니다. ▣ Cube를 클릭한 상태에서 Q키, W키, E키, R키를 누르면 여러 모드를 선택할 수 있습니다. ▣ END키를 클릭하면 위에 이미지처럼 Cube가 바닥에 붙는 자석효과가 실행됩니다. ▣ CTRL + D를 클릭하면 그 자리에 같은 엑터를 복사합니다. ▣ LEVEL BLUEPRINT에서 PrintText함수를 생성하고 F9키를 누르면 break Point가 찍힙니다. ▣ 이 상태로.. 2023. 2. 1.
언리얼엔진5 18장 [Map] ▣ 안녕하세요. 이번장에서는 Map에 대해 공부해 보도록 하겠습니다. 배열은 하나의 데이터로 여러 개의 값을 저장하면 맵은 Key와 Value로 이름을 하나하나 지정하며 값을 저장할 수 있습니다. 말로 설명하면 무슨 말인지 어려우니 직접 노드를 만들어보며 공부해 보겠습니다. ▣ Level BluePrint로 들어가서 number라는 변수를 생성합니다. 그리고 디테일탭에서 Variable Type에서 Map으로 지정합니다. ▣ 그럼 위에 이미지처럼 나오는데 Variable Type에 key와 value값을 지정할 수 있는데 첫 번째는 string으로 두 번째는 integer로 지정합니다. 컴파일을 하면 Default Value에서 +버튼을 클릭하면 string 키 값과 Integer value 값을 지정할.. 2023. 2. 1.
언리얼엔진5 17장 [배열] ▣ 안녕하세요. 이번장에서는 배열에 대해 공부해 보도록 하겠습니다. 결론부터 이야기하면 배열은 여러 개의 데이터를 저장하는 공간 메모리 그리고 배열은 선형구조이고 자료를 순차적으로 나열한 형태라고 생각하시면 됩니다. 데이터형식로 여러 개를 다룹니다. 그럼 직접 배열을 만들어보면서 공부해 보겠습니다. ▣ LevelBluePrint에서 numbers라는 변수를 생성합니다. 그리고 오른쪽 Details메뉴에 Variable Type에서 Array로 지정하고 컴파일을 합니다. ▣ 그리고 numbers를 GET 한 다음에 numbers 블록에서 네모 모양을 드래그하고 for를 검색하면 Utilities안에 Array에 For Each Loop이라는 배열에 관한 반복문이 있습니다. 이걸 클릭해서 사용해 보겠습니다... 2023. 1. 31.
언리얼엔진5 16장 [Reference] ▣ 안녕하세요. 이번장에서는 Reference에 대해 공부해 보도록 하겠습니다. Reference는 참조라는 뜻을 가지고 있습니다. 그런데 Reference를 참조라는 뜻으로 접근하면 어렵습니다. 쉽게 이야기를 하면 Reference는 메모리 주소를 참고한다라는 느낌으로 생각해 주시면 됩니다. 그럼 노드 코드를 만들며 공부해 보겠습니다. ▣ 저번장에서 공부했던 함수를 먼저 생성하겠습니다. 함수의 이름은 Test로 지정하고 Details메뉴에서 Inputs를 하나 추가합니다. 이름은 num1으로 지정해 주시고 데이터형식은 Integer로 지정합니다. 그런 다음에 변수 이름 옆에 화살표 모양이 있습니다. 화살표를 클릭하면 Pass-by-Reference 체크박스가 있는데 이걸 체크합니다. 그럼 매개변수의 값.. 2023. 1. 30.
언리얼엔진5 13장 [Enum] ▣ 안녕하세요. 이번장에서는 Enum 열거형을 공부해 보겠습니다. 열거형은 변하지 않는 고정된 값, 상수를 여러 개 만든다고 생각하시면 됩니다. ▣ Enum은 Content Drawer에서 Content에서 마우스 오른쪽 버튼을 클릭하고 BluePrints에서 Enumeration을 클릭하시면 됩니다. ▣ 그럼 이런 파일이 생성되는데 생성한 Enum의 이름을 PlayerState라고 지정합니다. 그리고 PlayerState를 더블클릭합니다. ▣ 그럼 위에 이미지처럼 창이 나오는데 여기서 Add Enumerator를 눌러서 Enum값을 추가합니다. Idle, Attack, Walk 이렇게 3개의 상수를 생성하고 저장을 합니다. 꼭 저장을 하셔야 합니다. ▣ LevelBluePrint에 들어가서 변수를 하나.. 2023. 1. 26.