본문 바로가기

[ CODING STUDY ]/》언리얼엔진5 공부69

언리얼엔진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 25장 [Texture이미지 Sprite로 사용] ▣ 안녕하세요. 이번장에서는 Texture이미지를 Sprite로 사용하는 방법을 공부해 보겠습니다. 우선 이미지를 다운로드합니다. https://free-game-assets.itch.io/free-horizontal-game-backgrounds Free Horizontal Game Backgrounds by Free Game Assets (GUI, Sprite, Tilesets) Free Horizontal Game Backgrounds for 2D video game free-game-assets.itch.io ▣ 저는 여기에 있는 이미지를 사용하겠습니다. ▣ 이미지를 다운로드하여 드래그를 해서 이미지 Texture를 가지고 옵니다. ▣ Texture이미지를 맵에 드래그 하게 되면 위에 이미지처럼 .. 2023. 2. 9.
언리얼엔진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 15장 [함수] ▣ 안녕하세요. 이번장에서는 함수에 대해 공부해 보도록 하겠습니다. ▣ 먼저 Content Drawer메뉴에서 Content폴더에 오른쪽마우스를 클릭해서 Buleprints에 Buleprint Function Library를 클릭해서 함수를 생성하겠습니다. 그런 다음 함수의 이름을 Sum이라고 하고 더블클릭을 하여 함수 편집 메뉴에 들어갑니다. ▣ 그런 다음에 왼쪽에 보면 FUNCTIONS메뉴가 있는데 여기에서 함수 이름을 Sum으로 바꾸고 Details메뉴에서 Inputs 메뉴에 + 버튼을 클릭하여 2개의 매개변수를 생성하고 num1, num2 이름으로 integer 형식으로 지정합니다. 그리고 Outputs메뉴에서 한 개의 sum 반환형 변수를 생성합니다. 그리고 위에 코드처럼 num1 + num2를.. 2023. 1. 27.
언리얼엔진5 14장 [CustomEvent] ▣ 안녕하세요. 이번장에서는 CustomEvent에 대해 공부해 보겠습니다. ▣ 먼저 Level BluePrint에서 바탕에 마우스오른쪽 버튼을 클릭하고 Custom을 검색합니다. 그럼 Add Custom Event가 있습니다. 이걸 클릭해서 CustomEvent를 생성합니다. ▣ 그리고 위에 이미지처럼 코드를 완성합니다. 그리고 컴파일 저장을 하고 ▣ 씬에서 플레이버튼을 클릭하면 PrintEvent에 있는 PrintText가 출력되는 걸 확인할 수 있습니다. EventBeginPlay는 씬에서 플레이버튼을 클릭하면 바로 시작되는 이벤트입니다. EventBeginPlay에 연결해서 PrintEvent를 호출하면 이렇게 한번 호출이 됩니다. CustomEvent는 쉽게 이야기해서 직접 Event를 생성한다.. 2023. 1. 27.
언리얼엔진5 13장 [Enum] ▣ 안녕하세요. 이번장에서는 Enum 열거형을 공부해 보겠습니다. 열거형은 변하지 않는 고정된 값, 상수를 여러 개 만든다고 생각하시면 됩니다. ▣ Enum은 Content Drawer에서 Content에서 마우스 오른쪽 버튼을 클릭하고 BluePrints에서 Enumeration을 클릭하시면 됩니다. ▣ 그럼 이런 파일이 생성되는데 생성한 Enum의 이름을 PlayerState라고 지정합니다. 그리고 PlayerState를 더블클릭합니다. ▣ 그럼 위에 이미지처럼 창이 나오는데 여기서 Add Enumerator를 눌러서 Enum값을 추가합니다. Idle, Attack, Walk 이렇게 3개의 상수를 생성하고 저장을 합니다. 꼭 저장을 하셔야 합니다. ▣ LevelBluePrint에 들어가서 변수를 하나.. 2023. 1. 26.
언리얼엔진5 12장 [Sequence, Flip Flop] ▣ 안녕하세요. 이번장에서는 Sequence, Flip Flop 함수를 공부해 보겠습니다. ▣ 블루프린트에서 오른쪽마우스를 클릭하고 seq를 검색합니다. 그럼 Sequence가 나옵니다. ▣ Sequence는 순차적으로 실행하는 함수입니다. 많이 사용하는 함수라 단축키도 있습니다. s키를 클릭한 상태에서 왼쪽마우스를 클릭하면 생성됩니다. Sequence함수에서 Then는 코드를 실행하는 순서입니다. Then 0이 맨 처음으로 Then 1이 두 번째입니다. Add pin을 클릭해서 실행 순서를 더 추가할 수 도 있습니다. 위에 코드처럼 완성하고 컴파일 저장 후에 ▣ 씬화면에서 플레이를 하면 Then 0에 있는 PrintText가 출력되고 Then 1에 있는 PrintText가 출력되는 걸 확인할 수 있습니.. 2023. 1. 26.
언리얼엔진5 11장 [Gate, MultiGate, DoOnce, Do N] ▣ 안녕하세요. 이번장에서는 Gate, MultiGate, DoOnce, Do N 함수들을 공부해 보겠습니다. ▣ 먼저 블루프린트 바탕에서 오른쪽마우스를 클릭하고 Gate라고 검색을 합니다. 그럼 Gate라는 키워드가 나오는데 이걸 클릭하여 Gate 함수를 사용하겠습니다. ▣ Keyboard 1,2,3,4 키를 눌러 Enter, Open, Close, Toggle에 연결합니다. Gate라는 건 쉽게 문이라고 생각하시면 됩니다. Gate에 여러 가지 화살표모양이 있는데 Gate Enter는 문을 통과한다. Gate Exit : 문을 통과해서 나간다. Gate Open : 문을 열어준다 Open 상태이면 Enter로 문을 통과할 수 있습니다. Gate Close : 문을 닫는다 Close 상태에서는 Ente.. 2023. 1. 26.
언리얼엔진5 10장 [For Loop] ▣ 안녕하세요. 이번장에서는 For Loop 함수에 대해 공부해 보겠습니다. ▣ 블루프린트에서 For Loop이라고 검색을 하시면 For Loop, For Loop with Break라는 함수 두 개가 나옵니다. ▣ 먼저 For Loop을 공부해 보겠습니다. For Loop 함수를 보면 왼쪽에 First Index, Last Index 원이 있습니다. 이건 시작과 끝 숫자를 의미하는데 1~11이라고 하면 1,2,3,4,5,6,7,8,9,10,11까지 11번을 반복한다고 생각하시면 됩니다. Completed는 반복문이 끝나면 호출되는 노드입니다. 다음에 PrintText를 연결한 다음 컴파일 저장을 해보겠습니다. ▣ 씬에서 플레이를 클릭하면 1~11까지 출력되고 End가 출력되는 걸 확인할 수 있습니다. .. 2023. 1. 25.
언리얼엔진5 9장 [While 반복문] ▣ 안녕하세요. 이번장에서는 While 반복문에 대해 공부해 보도록 하겠습니다. ▣ 먼저 변수를 생성합니다. 기본값은 10으로 지정합니다. ▣ 노드바탕에서 오른쪽마우스를 클릭하고 whlie을 검색하면 Whlie Loop이라는 함수가 나옵니다. ▣ 클릭해서 이런 식으로 코딩합니다. Branch를 공부해서 아시겠지만 While Loop 함수블록에 왼쪽에 보면 원이 하나 있습니다 빨간색은 Bool 자료값 받아오는 원입니다. 다시 말해 While Loop은 조건이 True 경우 작동됩니다. Num으로 0보다 클 경우에 대한 조건을 연결합니다. 그럼 10이 0보다 크기 때문에 While 문이 작동합니다. 그리고 --를 이용하여 Loop Body를 연결해 줍니다. Loop Body는 While Loop에 조건이 T.. 2023. 1. 25.
언리얼엔진5 8장 [MAX, MIN, Clamp] ▣ 안녕하세요. 이번장에서는 MAX, MIN, Clamp 블루프린트 함수에 대해 공부해 보겠습니다. ▣ 먼저 num1, num2 변수를 생성합니다. 자료형은 integer로 지정하고 변수의 값인 Default Value를 num1 = 10, num2 = 20로지정합니다. ▣ 그리고 노드바탕에서 오른쪽마우스를 클릭하고 Max, Min을 각각 검색하면 이렇게 MAX와 MIN에 관련된 여러 함수들이 나옵니다. 여기서 (Integer)로 구분하는 Max, Min 함수를 가지고 옵니다. ▣ 그리고 Max, Min 블록 함수 왼쪽에 첫 번째 두 번째 원에 각각 num1, num2를 연결합니다. 그리고 Max, Min 블록 함수 오른쪽원에 있는 반환값을 FormatText를 이용하여 출력하는 코드를 작성합니다. Pr.. 2023. 1. 25.
언리얼엔진5 7장 [AND, OR, NOT, branch] ▣ 안녕하세요. 이번장에서는 블루프린트에 논리연산자를 공부해 보겠습니다. ▣ LevelBluePrint에서 두 개의 변수를 생성합니다. playerPower, playerLevel로 이름을 각각 지정하고 자료형을 Integer로 지정합니다. playerPower에 기본값을 100으로 ▣ playerLevel 기본값은 5로 지정합니다. ▣ 다음에 변수를 각각 Get 하여 바탕에 넣어주시고 바탕에서 오른쪽마우스 클릭하여 > 관계연사자를 가지고 옵니다. ▣ 그리고 노드바탕에서 오른쪽 마우스를 클릭하고 bool이라 검색하겠습니다. 그럼 Boolean에 관련된 논리연산자가 나오는 걸 확인할 수 있습니다. 이중에 먼저 AND를 사용해 보겠습니다. ▣ 위에 이미지처럼 AND 블록에 왼쪽 원에 두 개의 관계연산자에 빨.. 2023. 1. 20.