· 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라..
EQS 란? 언리얼 엔진의 EQS는 Environment Query System의 약자로 Behavior Tree내에서 다양한 테스트를 통해 환경을 조사하고 테스트 결과를 바탕으로 어떻게 진행할 것인지 결정하는 시스템을 말한다 Querier는 질의자로, 해당 EQS를 실행하게 될 객체를 의미한다 주로 적 AI에게 Behavior Tree를 주고 그 안에서 Run EQS 를 하게 되니 Querier는 적AI가 되게 된다 Debug EQS가 잘 돌아가고 있는지 디버깅 하려면 실행 후 플레이어에 빙의한 뒤 ' (단따옴표) 키를 눌러 디버깅 모드로 들어가고 키패드에 3번을 누르면 EQS디버깅 모드가 된다 디버깅 모드 우측 상단에 Debug Actor가 뜨는데 내가 확인하고 싶은 AI가 Deubg Actor로 잘..
· > 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라..
연Gennie
Do 겜프