🚀 게임 콘텐츠의 구조게임 제작을 위해 언리얼 엔진은 자체적으로 설계한 프레임워크를 제공함이를 게임플레이 프레임워크(gameplay framework)라 함. 줄여서 게임 프레임웍언리얼 게임 프레임웍의 각 구성 요소를 파악하고, 이를 확장하면서 게임을 제작하는 것을 권장 1. 월드게임 콘텐츠를 담기 위해 제공되는 가상의 공간월드는 시간, 트랜스폼, 틱을 서비스로 제공월드 세팅이라는 콘텐츠 제작을 위한 기본 환경 설정을 제공월드의 기본 단위는 액터(actor)로 정의되며, 액터 클래스는 언제나 접두사 A를 사용한다.월드의 역할게임 콘텐츠를 담는 공간 (transform)게임 콘텐츠의 진행 (tick)게임 흐름을 위한시간 (time)기본 환경 설정 (world setting)월드의 단위 구성 요소 (act..
분류 전체보기
🚀 PART1 (기초 체력 👉 언리얼 C++)JAVA, C# 언어가 가지는 모던 객체 지향 설계 기법을 학습한 후에언리얼 엔진의 자료 구조, 메모리 관리, 에셋 및 빌드 시스템을 파악하는 것을 권장언리얼 오브젝트 👉 모던 객체 지향 설계 👉 자료구조와 메모리 👉 에셋과 빌드 시스템성능과 메모리 관리를 위한 로우 레벨 제어 🚀 PART2 (기본기 👉 게임 프레임웍)게임을 구성하는 주요 요소를 파악해 전체 구조에 알맞게 커스터마이징 하되스케일 업에 대응할 수 있도록, 효과적인 구조로 설계하는 것이 중요함콘텐츠의 기본 구조 👉 캐릭터 애니메이션 👉 물리엔진과 이벤트 👉 게임데이터와 인공지능 👉 게임의 완성
🟩 지역변수{} 코드 블록 내부에 선언코드 블록 외부에서는 사용 불가 🟩 조건문(분기문)특정 조건을 이용하여 코드를 다른 섹션으로 분기한다if, if~else, if~else if~elseswitch (case, break, default)중첩으로 사용가능 🟩 반복문for(초기식, 조건식, 증감식)while(조건식)do ~ while(조건식) : 무조건 한 번은 실행된다.중첩 forforeachfor문과 동일하게 작동차후에 배열, collection에서 사용 🟩 무한 반복while(true)for(;;) 🟩 점프문무한루프 제어breakcontinuegoto🌟 숫자 달리기using System;using System.Threading;namespace _002_CheckPoint01 { ..
연산자단항 연산자 : 한 개의 데이터로 처리int a = 18;이항 연산자 : 두 개의 데이터로 처리int c = a / b;삼항 연산자 : 세 개의 데이터로 처리조건 연산자 '? :'int value = (num > 0) ? 1 : 0;산술 연산자 :+, -, *, /, %모든 수치 데이터 형태증감 연산자단항 연산자 (++, --)전치 연산, 후치 연산할당 연산자=, +=, -=, *=, /=, %=연산 후 재할당관계 연산자피 연산자의 비교(bool), =, ==, !=논리 연산자조건부 논리 : &&, ||논리 부정 연산자 : !비트 연산자비트 단위로 데이터를 처리비어있는 부분은 0으로 채우기>> : 오른쪽으로 밀기비트 논리 연산자& : 둘 다 1일 때 1| : 하나만 1이어도 1^ : XOR, 두 비..
에디터에서 확인 가능한 기능으로, editor를 상속받는다.코드에서 사용하는 TopDownCamera 는 이전 포스트에 나와있다.원 : 캐릭터를 기준으로 distance를 표시사각형들 : handle의 스케일 슬라이더를 사용해 만든 슬라이더 컨트롤using UnityEditor;using UnityEngine;namespace FastCampus.Cameras{ [CustomEditor(typeof(TopDownCamera))] public class TopDownCamera_Editor : Editor { #region Variables private TopDownCamera targetCamera; #endregion #region Main..
🌟 mainCamera에 붙는 스크립트using UnityEngine;namespace FastCampus.Cameras { public class TopDownCamera : Monobehaviour { #region Variable public Transform target; private Vector3 refVelocity; public float height = 5f; public float distance = 10f; public float angle = 45f; public float lookAtHeight = 2f; public float smoothSpe..
1. 언리얼 에디터 구성게임 제작을 위해 에픽 게임즈가 제공하는 저작 도구언리얼 엔진의 구성에디터 : 게임 제작을 위해 제공되는 응용 프로그램 (일반적으로 인식하는 언리얼 엔진)게임 빌드 : exe 파일과 리소스로 이루어진 독립적으로 동작하는 게임 클라이언트언리얼 에디터의 특징게임 개발 작업을 위해 다양한 폴더와 파일 이름 규칙이 미리 설정되어 있다.정해진 규칙을 잘 파악하고 프로젝트 폴더와 파일을 설정해야 함에디터에서 기확과 개발을 완료한 후, 게임 빌드를 통해 최종 게임 빌드를 제작하도록 설정언리얼 에디터에서 게임을 구성 👉 게임 빌드를 수행하고 프로그램을 패키징 2. 언리얼 에디터의 동작프로젝트 폴더의 uproject 확장자를 더블클릭하면 에디터가 트리거 됨에디터의 실행 방식uproject 확장자..
1. 템플릿'형틀'이라는 의미, 붕어빵 틀 같은 거재료만 가지고 똑같은 모양으로 찍어낼 수 있으며, 넣는 재료에 따라 내용물은 조금씩 달라진다.기능은 이미 결정되어 있으나, 자료형이 정해지지 않는다는 특징을 가지고 있다.함수 템플릿 : 함수를 찍어내는 틀클래스 템플릿 : 클래스를 찍어내는 틀 2. 함수 템플릿#include using namespace std;templatevoid Swap(T& num1, T& num2){ T temp = num1; num1 = num2; num2 = temp;}int main(){ int num1=10, num2=40; cout before, num1: 10, num2: 40after, num1: 40, num2: 10before, num1: 15.6, num2: 14..
1. 언리얼 오브젝트 패키지단일 언리얼 오브젝트가 가진 정보는 저장할 수 있지만, 오브젝트들이 조합되어 있다면?저장된 언리얼 오브젝트 데이터를 효과적으로 찾고 관리하는 방법은?복잡한 계층 구조를 가진 언리얼 오브젝트를 효과적으로 저장과 불러들이는 방법을 통일해야 한다.언리얼 엔진은 이를 위해 패키지(UPackage) 단위로 언리얼 오브젝트를 관리함패키지의 중의적 개념언리얼 엔진은 다양한 곳에서 단어 패키지를 사용하고 있음언리얼 오브젝트를 감싼 포장 오브젝트를 의미함 👉 포스팅의 주제또한 개발된 최종 콘텐츠를 정리해 프로그램으로 만드는 작업을 의미함 예) 게임 패키징DLC와 같이 향후 확장 콘텐츠에 사용되는 별도의 데이터 묶음을 의미하기도 함 예) pkg 파일구분을 위해 언리얼 오브젝트 패키지로 부르는 ..
1. 직렬화오브젝트나 연결된 오브젝트의 묶음(오브젝트 그래프)을 바이트 스트림으로 변환하는 과정복잡한 데이터를 일렬로 세우기 때문에 직렬화거꾸로 복구시키는 과정도 포함해서 의미시리얼라이제이션 : 오브젝트 그래프 👉 바이트 스트림디시리얼라이제이션 : 바이트 스트림 👉 오브젝트 그래프장점현재 프로그램의상태를 저장하고 필요할 때 복원 가능 (게임의 저장)현재 객체의 정보를 클립보드에 복사해서 다른 프로그램에 전송 가능네트워크를 통해 현재 프로그램의 상태를 다른 컴퓨터에 복원 가능 (멀티플레이어 게임)데이터 압축, 암호화를 통해 데이터를 효율적으로 안전하게 보관 가능 🟩 구현시 고려할 점데이터 레이아웃 : 오브젝트가 소유한 다양한 데이터를 변환할 것인가?이식성 : 서로 다른 시스템에 전송해도 이식될 수 있..
🍧 문제왕자가 N명이 있는데, 서로 공주를 구하러 가겠다고 한다. 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 한다. 왕은 왕자들을 나이 순으로 1~N번까지 차례로 번호를 매긴다. 그리고 1번 왕자부터 N번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다. 그리고 1번 왕자부터 시계방향으로 돌아가면 1부터 시작하여 번호를 외치게 한다. 한 왕자가 특정 숫자 K를 외치면 그 왕자는 공주를 구하러 가는데서 제외되고, 원 밖으로 나오게 된다. 그리고 다음 왕자부터 다시 1부터 시작하여 번호를 외친다. 이렇게 해서 마지막까지 남은 왕자가 공주를 구하러 갈 수 있다.예를 들어 8명의 왕자가 있을 때, 3을 외친 왕자가 제외된다고 하자. 처음에 3번 왕자가 3을 외쳐 제외되며, 이어 ..
🍧 문제N개의 마구간이 1차원 수직선상에 있습니다. 각 마구간은 X1, X2, X3 ... XN의 좌표를 가지며, 마구간간에 좌표가 중복되는 는 일은 없습니다.현수는 C마리의 말을 가지고 있는데, 이 말들은 서로 가까이 있는 것을 좋아하지 않습니다. 각마구간에는 한 마리의 말만 넣을 수 있고, 가장 가까운 두 말의 거리가 최대가 되게 말을 마구간에 배치하고 싶습니다. C마리의 말을 N개의 마구간에 배치했을 때, 가장 가까운 두 말의 거리가 최대가 되는 그 최댓값을 출력하는 프로그램을 작성하세요. ✨ 1트 (강의 풀이)마굿간의 위치를 정렬해준다. 1 2 4 8 9답의 범위 : 최솟값 ~ 최댓값 사이 👉 1 ~ 9두 말의 거리가 최대가 되야 하기 때문에, 1 위치부터 넣어본다. 1. mid = (1+9..