· Portfolio
https://youtu.be/2MPlEhzdaec 제작 기간 12주 개발 환경 언리얼4 장르 액션 RPG email yeonjindo98@gmail.com
· DirectX
지금까지는 공간의 x, y좌표만 활용하여 2D공간처럼 만든 뒤 다양한 도형들을 띄워보는 작업을 했다 이제는 그 도형을 아주 많이 만들어서 Grid를 만들고, z좌표까지 활용하여 기본이 되는 바닥을 Grid 모양으로 짜고 카메라를 만들어 움직여보자 Gird - Wireframe 먼저 이전에도 했던 Wireframe Mode로 한 칸을 만들어보자 Vertex 4개를 잡아주고, Index는 6개를 잡아준 뒤 삼각형 두개를 그리기 순서에 맞춰 그려주면 된다 indices[0] = 0; indices[1] = 1; indices[2] = 2; indices[3] = 2; indices[4] = 1; indices[5] = 3; 그럼 다음으로 이 한 칸을 3 * 3으로 만들어보자 총 9개의 작은 사각형, 18개의 ..
· Unreal4 C++
공격하는 Enemy AI의 수를 제한해보자 Enemy AI 를 만들었는데 Enemy가 10명이면 거리조건이 충족되는 모든 Enemy들이 나에게 달려들어서 공격을 하기 시작한다 근데 한 번에 10명이 달라붙어서 공격하면 나는 그냥 도망가거나 당하고 있는 수밖에 없다 ㅠㅠ 그래서 나를 공격하는 적의 수를 제한해보았다 Instance Synced란 언리얼 엔진 문서에 따르면 값을 동기화시키는 것을 말하는데 이 기능을 사용해보았다 Instance Synced는 같은 블랙보드를 사용하는 AI끼리 값을 공유하는 것을 말한다 언제 주로 사용하냐면 FPS게임에서 적 하나가 나를 발견했다고 가정한다 그리고 해당하는 적이 포함된 팀에게 나의 위치를 알려주고 곳곳에 퍼져있던 적 팀들이 나를 공격하게 만들고 싶을 때 이 In..
· > CS
Vector접근성이 좋다임의 접근이 가능하다중간 삽입/삭제는 리소스의 낭비가 발생한다 임의 접근이 가능하다는 뜻은 vector v; 가 있을 때  v[3]으로 접근이 가능하다는 뜻이다   List주소값으로 연결되어있다중간 삽입/삭제가 용이하다순차 접근만 가능하다 (임의 접근 불가능)   -> Sort()로 정렬 불가능  Map레드 블랙 트리로 되어있고, 시간복잡도는 logN자료들이 자동으로 정렬되어 저장된다검색이 용이하다Key-Value로 이루어져있다빈번한 삽입/삭제는 부적합하다중복키 사용 불가능하다  Unordered_map / Hash map 자동으로 정렬되지 않는다Map보다 검색 속도가 빠르다Key값이 길고 복잡하거나 유사한 값이 많은 경우 해시 충돌이 발생할 수 있다  SetKey만 저장한다중복키..
2022 KAKAO BLIND RECRUITMENT   문제가 길다간단히 하면fees라는 배열에 기본시간, 기본요금, 단위시간, 단위요금이 int로 주어지고records라는 배열에 입력된 시간, 차량 번호, 입차/출차 가 string으로 주어진다 이를 통해서 차량의 총 누적 시간에 따른 주차요금을 계산하여 배열로 반환하면 되는 문제 #include #include #include #include #include using namespace std;int Calculate(int bT, int bF, int pT, int pTF, int tT){ int fee = 0; //요금계산 if (tT bT) //기본시간 초과 { fee += bF; tT -= bT; fee += tT / pT * pTF; ..
플러그인을 사용해서 메시를 저장하고 불러오는 것을 구현해보자 먼저 Static Mesh를 클릭했을 때 등장하는 디테일창에Mesh에 관련된 버튼을 만들어본다       월드에 카메라가 있다C++클래스로 Actor 하나를 생성해주고 블루프린트를 생성하여 카메라 메시를 입혀주었다   액터를 클릭하면 디테일창이 뜬다이 디테일창에 나만의 카테고리를 추가하고필요한 기능들을 프로퍼티에 추가해보는 작업을 할 예정이다            먼저 플러그인 모듈 쪽에 Property Editor를 등록해준다 IDetailCustomization을 상속받는 클래스 FStaticMesh_Detail에IDetailCategoryBuilder& mesh = DetailBuilder.EditCategory("Mesh");  Mesh라..
· > CS
Vector접근성이 좋다임의 접근이 가능하다중간 삽입/삭제는 리소스의 낭비가 발생한다 임의 접근이 가능하다는 뜻은 vector v; 가 있을 때  v[3]으로 접근이 가능하다는 뜻이다   List주소값으로 연결되어있다중간 삽입/삭제가 용이하다순차 접근만 가능하다 (임의 접근 불가능)   -> Sort()로 정렬 불가능  Map레드 블랙 트리로 되어있고, 시간복잡도는 logN자료들이 자동으로 정렬되어 저장된다검색이 용이하다Key-Value로 이루어져있다빈번한 삽입/삭제는 부적합하다중복키 사용 불가능하다  Unordered_map / Hash map 자동으로 정렬되지 않는다Map보다 검색 속도가 빠르다Key값이 길고 복잡하거나 유사한 값이 많은 경우 해시 충돌이 발생할 수 있다  SetKey만 저장한다중복키..
2022 KAKAO BLIND RECRUITMENT   문제가 길다간단히 하면fees라는 배열에 기본시간, 기본요금, 단위시간, 단위요금이 int로 주어지고records라는 배열에 입력된 시간, 차량 번호, 입차/출차 가 string으로 주어진다 이를 통해서 차량의 총 누적 시간에 따른 주차요금을 계산하여 배열로 반환하면 되는 문제 #include #include #include #include #include using namespace std;int Calculate(int bT, int bF, int pT, int pTF, int tT){ int fee = 0; //요금계산 if (tT bT) //기본시간 초과 { fee += bF; tT -= bT; fee += tT / pT * pTF; ..
플러그인을 사용해서 메시를 저장하고 불러오는 것을 구현해보자 먼저 Static Mesh를 클릭했을 때 등장하는 디테일창에Mesh에 관련된 버튼을 만들어본다       월드에 카메라가 있다C++클래스로 Actor 하나를 생성해주고 블루프린트를 생성하여 카메라 메시를 입혀주었다   액터를 클릭하면 디테일창이 뜬다이 디테일창에 나만의 카테고리를 추가하고필요한 기능들을 프로퍼티에 추가해보는 작업을 할 예정이다            먼저 플러그인 모듈 쪽에 Property Editor를 등록해준다 IDetailCustomization을 상속받는 클래스 FStaticMesh_Detail에IDetailCategoryBuilder& mesh = DetailBuilder.EditCategory("Mesh");  Mesh라..
언리얼에는 3가지 코멘드창 있다에디터에서 작동하는 명령창, 런타임에 작동하는 명령창, 두가지 모두 사용 가능한 명령창이 있다 기본적으로 써왔던 코멘드는  런타임 중에 라이팅을 다시 빌드해야합니다 글자를 안보이게 만드는DisableAllScreenMessages가 있다 이처럼 내가 필요한 기능을 명령으로 만들 수 있다  맵에서 이곳저곳 돌아다니며 테스트할 때 플레이어를 일일이 옮기기 귀찮으니좌표 입력 시 그 곳으로 자동으로 이동하도록 명령을 만들었다 콘솔창을 등록하는 함수들은 IConsoleManager안에 있다(저번에 디버깅 메뉴에 등록하는거는 IGameplayDebugger에 있었다)IConsoleManager는 싱글톤으로 만들어져 있어서 Get()으로 함수를 불러온다 저번과 동일하게 파라미터에 델리게..
언리얼을 사용하면서 내가 원하는 기능이 없을 때 플러그인을 제작하여 편리하게 사용할 수 있다 언리얼에서 모듈의 개념은 라이브러리와 같다 플러그인은 모듈을 제작하는 것이다 라이브러리에는 dll파일과 lib파일이 있다 dll (dynamic linked library) 프로그램과 다른 메모리 공간을 사용한다 -> 필요할 때 부르고 필요없을 때 해제할 수 있다 lib (static library) 프로그램과 같은 메모리 공간을 사용한다 -> 해당 프로그램이 로드될 때 함께 로드된다 -> 퍼포먼스를 위해서 또는 프로그램이 완전히 붙어있어야 하는 경우에 사용한다 플러그인은 언리얼 상단 탭에 편집 -> 플러그인에서 볼 수 있다 새 플러그인을 누르면 다양한 플러그인을 제작할 수 있다 시작점이 있는 클래스의 경우 IM..
연Gennie
Do 겜프