본문 바로가기

언리얼96

언리얼엔진5 44장 [Geometry brush] ▣ Place Actor Panel버튼 == Window에서 Place Actors 버튼을 누를 때와 동일 ▣ Geometry를 클릭해서 Geometry brush 도형 생성 https://docs.unrealengine.com/4.27/ko/Basics/Actors/Brushes/ 지오메트리 브러시 액터 언리얼 에디터에서 브러시를 사용하여 레벨 지오메트리를 만드는 방법 안내서입니다. docs.unrealengine.com ▣ 브러시를 세팅할 때에는 브러시세팅에서 x, y, z 값으로 변경 ▣ 복제할 Box Bruch를 클릭하고 CTRL + D 버튼을 클릭하면 복제가 된다. 복제한 Box에 X, Y, Z 값을 수정하고 Brush Type에서 Subtractive를 설정하면 해당 모양으로 빼기 효과 ▣ 묶.. 2023. 6. 2.
언리얼엔진5 43장 [Get Control Rotation, Get Forward Vector] ▣ Get Control Rotation : Target에 회전값을 반환하는 블록 ▣ 스페이스키를 누르면 BP_Shere가 플레이어가 바라보는 방향 회전하게 하기 위함 https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Pawn/GetControlRotation/ Get Control Rotation Get Control Rotation docs.unrealengine.com ▣ Get Forward Vector : Target에 정면 방향을 반환해 주는 블록 ▣ 방향으로 이동하기 위해 곱하기 진행, Add Impulse에 넣으면 그 해당 정면 방향으로 힘을 가한다. https://docs.unrealengine.com/4.26/en-US/BlueprintAP.. 2023. 5. 26.
언리얼엔진5 42장 [Get Player Pawn] ▣ 플레이버튼을 클릭하고 F8키를 클릭하면 일시정지가 됩니다. 이 상태에서 왼쪽마우스 버튼을 클릭하고 이동하면 Pawn이라는 오브젝트가 생성되어 있는 걸 확인할 수 있습니다. 이건 기본 플레이어를 의미합니다. ▣ 블루프린트에서 Get Player Pawn블록이 있는 이건 Player Pawn에 레퍼런스를 의미하고 Player Index는 몇 번째 플레이어인지를 나타냅니다. 멀티플레이 게임이 아닌 이상 싱글플레이 같은 경우 Player 0입니다. Player Index 또한 설정할 수 있습니다. ▣ Get Actor Location : 엑터의 위치값을 가져오는 블록입니다. ▣ Get 블록을 통해서 우리가 원하는 플레이어 Pawn에 데이터를 가져올 수 있습니다. 2023. 5. 24.
언리얼엔진5 41장 [SpawnActor] ▣ SpawnActor : 원하는 Actor(오브젝트)를 조절하기 위한 블록 Class에 아까 생성했던 BP 블루프린트 지정하고, Transform Location 위치 수정 컴파일 저장 후 ▣ 플레이버튼 클릭 후에 스페이스키를 누르면 우리가 설정한 Location에 블루프린트 생성 ▣ Add Impulse 노드 추가하여 연결 컴파일 저장 후 ▣ SpawnActor에 Return값을 Static Mesh Componet Value에 Target을 연결 그럼 생성한 BP(블루프린트)에 대한 값 반환하여 적용 ▣ 플레이버튼 클릭 후 스페이스키를 누르면 위로 올라가면서 생성 2023. 5. 24.
언리얼엔진5 36장 [뷰포트, 퀄리티설정] ▣ 오른쪽마우스 클릭 후 w키, s키, d키, a키를 누르면 뷰 시점을 자유롭게 조절하고 이동할 수 있습니다. ▣ 왼쪽마우스 클릭 후 w키, s키, d키, a키를 눌러 뷰 시점을 조절할 수 있지만 오른쪽마우스 클릭할 때와 다르게 위아래로 시점을 바꿀 수 없고 왼쪽마우스를 클릭한 상태에서 앞뒤 드래그를 하면 앞 뒤로 이동합니다. ▣ 오른쪽마우스나 왼쪽마우스를 클릭한 상태에서 q키나 e키를 누르면 위 아래로 이동합니다. ▣ Settings에서 Engine Scalablility Settings에 들어가면 언리얼엔진 뷰에 대한 퀄리티를 설정할 수 있습니다. 본인 컴퓨터 CPU, GPU 사양에 따라 설정해주시면 됩니다. 2023. 5. 17.
C++ 16 [객체 반환] ▣ this : 자신에 객체 주소를 의미 ▣ *this : 포인터와 동일하게 자신에 객체 주소에 있는 값 ▣ return *this;으로 객체를 반환하게 되면 그 객체의 멤버변수들에 모든 값들이 반환된다. 2023. 4. 13.
C++ 13 [함수오버로딩, 디폴트 매개변수] ▣ 함수 오버로딩 : c++에서 이름이 같은 함수를 여러 개 만들 수 있다. ▣ 함수 오버로딩 : 함수이름을 중복해서 만들 수 있지만 매개변수 타입이랑 변수의 개수를 다르게 해야 한다. ▣ 디폴트매개변수 : 매개변수의 기본값을 설정 ▣ output(int num1, int num2 = 20) : 함수 호출 시 output(10, 100);처럼 호출하게 되면 함수를 호출해서 전달한 100이 매개변수의 기본값이 된다. output(10); 함수를 호출할 때 매개변수 값을 전달하지 않으면 디폴트매개변수 값으로 지정된다. ▣ 디폴트 매개 변수를 지정할 때 매개변수의 끝부분에 지정해야 오류를 방지할 수 있다. ▣ 함수를 호출할 때 매개변수를 전달해주지 않으면 오류가 발생한다. 2023. 4. 6.
C++ 09 [call by value, call by reference] ▣ 변수나 객체를 매개변수로 전달하면 값에 의한 호출이 된다. ▣ 객체를 매개변수로 값을 전달하면 객체가 복사되어서 전달하기 때문에 전달한 함수에서 객체의 값을 바꾸어도 원본에는 지장이 없다. ▣ 매개변수 객체의 생성자는 호출되지 않고 소멸자만 컴파일에 의해 호출되고 소멸된다. ▣ 객체의 주소로 매개변수를 전달하면 주소의 의한 호출이 된다. ▣ 객체의 주소를 전달했기 때문에 호출된 함수에서 값을 변경하면 원본객체에 영향을 준다. ▣ 객체의 주소로 매개변수를 전달해도 원본 객체의 생성자와 소멸자만 호출된다. 2023. 3. 28.
C++ 08 [string] ▣ string 클래스를 사용을 사용하기 위해서는 #include 헤더가 있어야 한다. ▣ string str(문자열) : 괄호를 통해 초기화 가능 ▣ string *p = new string(문자열) : 메모리 할당으로 string 객체 사용 가능 ▣ string에 속해 있는 getline() 함수 ▣ getline(cin, str, '\n') : getline(cin, 입력받을 객체, 구분문자(구분문자까지 입력)) ▣ str2 = str1 : 대입연산자를 통해서 문자열을 치환(대입)해서 바꿀 수 있다. ▣ 대표적인 string 함수들 객체.append(연결 문자) : 문자열 연결 함수 반환형 객체.length() : 문자열 길이 함수 stoi(객체) : 숫자로 된 문자열을 숫자로 변환 함수 객체.cl.. 2023. 3. 28.
C++ 07 [this 포인터] ▣ this 포인터 : 객체 자신에 주소 포인터 ▣ this->num 코드는 test객체의 포인터(클래스 Test의 int num = 0)를 접근하여 대입 ▣ 클래스의 멤버함수와 생성자함수에서만 this 사용이 가능하다. ▣ 멤버변수와 멤버함수의 매개변수의 이름이 동일할 때 this로 객체 자신을 접근하여 사용한다. ▣ 멤버 함수에서 자신의 주소를 리턴해야 할 때 사용한다. ▣ this는 정적 멤버함수(static 함수)에서는 this를 사용할 수 없다. ▣ 멤버함수에서 객체의 주소를 this로 접근이 가능하다. ▣ 위에 코드를 풀어서 작성하면 이렇게 test.testfunc(&test, 10);처럼 주소를 매개변수로 전달하고 컴파일러가 void testfunc(Test* this, int num) 코드.. 2023. 3. 24.
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.