언리얼 git LFS 설정
·
1. github을 통해 리포지토리 만들기github에서 new를 통해서 새로운 리포지토리를 만들어주면 된다.언리얼 엔진 프로젝트이기 때문에, gitignore를 언리얼 엔진을 추가해주면 된다.참고로 readme file이 없으면 가끔 특정 GUI 기반 git 프로그램에서 오류가 날 수도 있기에 넣어주는 것이 좋다.이후, 리포지토리를 깃허브데스크탑을 통해서 clone하면 된다.추가) gitignore에 라이더 관련 파일을 없애주기 위해 예외를 추가하는 것이 좋다.# Jetbrain Rider specific files.idea/  2. Git LFS 설정clone을 한 폴더에서 Git Bash를 통해 LFS 세팅을 해주면 된다.우클릭을 통해 Open Git Bash here 콘솔 창에 git lfs in..
UE5 Issues : 이모저모
·
Unreal Engine
1. LerpLerp는 이론적으로는 A와 B 값 사이의 값을 (Alpha를 통해) 구해주는 의미이다. A(0)와 B(100) 사이의 값을 Alpha(0.3)을 통한 결과는 30 이다.float Res = FMath::Lerp(A, B, Alpha); Res = 30.f;이 함수를 응용해 보자면, A에서 B로 움직일 때 자연스러운(부드러운) 움직임을 구현할 수 있다.void ALerpActor::Lerping(){ if (GetActorLocation().Z GetDeltaSeconds()); SetActorLocation(Res); Origin = Res; } }  2. Sin캐릭터가 아이템에 닿으면, 해당 아이템이 흔들리는 효과를 주고 싶어서 FMath::Sin 함수를 접하게 되었다.라디안 단위의 ..
TIL day 39
·
TIL
1. 언리얼프로젝트를 완료하여, 영상을 만들고 깃허브 readme를 작성하였습니다.https://github.com/GBL22M/SCC_CH3-8 GitHub - GBL22M/SCC_CH3-8Contribute to GBL22M/SCC_CH3-8 development by creating an account on GitHub.github.comhttps://drive.google.com/file/d/1vOvl1xFOmHykFINLXPCbw9_-5CGGmLi_/view ch8.mp4 drive.google.com  2. 언리얼 이슈들프로젝트 진행하면서 겪었던 여러가지 이슈들을 정리하였습니다https://gbleem.tistory.com/83 UE5 Issues : 이모저모1. Lerp 2. Sin캐릭터가 ..
Unreal Engine - 3D UI
·
Unreal Engine
캐릭터가 특정 아이템을 먹으면, 이미지 UI가 뜨고 해당 효과가 사라지면 UI가 보이지 않도록 하는 것을 구현할 것이다.1. Widget BP 만들기유저인터페이스 -> 위젯블루프린트 -> 사용자 위젯 -> 원하는 내용을 팔레트에서 선택하여 넣기이번 구현에 있어서는 캐릭터의 상태를 나타내는 이미지 UI를 띄워주는 것이기 때문에 이미지를 추가했다.로직처음 이미지의 투명도를 0으로 해서 안보이는 상태로 시작아이템을 먹은 경우 투명도를 1로 하고아이템 효과가 끝난 경우 투명도를 다시 0으로 적용  2. cpp세팅헤더 파일캐릭터 상태를 캐릭터의 머리 위에 띄워줄 것이기 때문에, 캐릭터 클래스에 WidgetComponent를 추가해야 한다.WidgetComponent 변수 추가업데이트 하는 동작을 하는 함수 추가/..
Unreal Engine - UI Animation
·
Unreal Engine
progress bar를 통해 구현한 타이머 UI의 시간이 일정 시간보다 적어진 경우 애니메이션을 실행하는 것을 구현한 내용이다.1. BP에서 애니메이션 생성 (디자이너 탭)애니메이션을 주고 싶은 UI를 클릭 후 애니메이션 탭에서 +애니메이션 선택+추가를 눌러서 애니메이션을 주고 싶은 UI 선택추가된 UI의 오른쪽 +버튼을 눌러 원하는 효과(동작) 을 선택한다.아래 사진은 랜더 오파시티(투명도 조절)와 트랜스폼을 선택한 모습이다.추가적으로 아래 사진에 보이는 + 버튼을 통해 효과를 바꾼 후(오파시티를 바꾸는 등)빨간점을 찍어서 표시를 할 수 있다. (프레임을 저장하는 것)  2. 그래프 탭함수를 하나 추가한 후 PlayAnimation 노드와 연결해주면 된다.Progress Bar라는 노드는 위에서 애니..
Unreal Engine - Main Menu UI (Start, Restart)
·
Unreal Engine
1. 디자이너 탭 구성아래와 같은 계층구조로 구성  2. Menu  전용 맵게임이 시작하면 Menu Level에서 위에서 만든 UI가 실행된 후 Start 버튼을 누르면 게임이 시작되는 로직으로 제작할 것이다.새로운 맵을 만들어 MenuLevel이라는 이름으로 저장 후, default 맵으로 지정해준다.  3. 게임 루프와 UI 연동이번 로직 또한 PlayerController에서 구현할 것이다.로직게임 시작 시 Menu UI 출력start 버튼 누르면 Menu UI 사라지고, HUD 출력Menu UI 뜨면, 게임 내 입력을 받지 않도록 처리게임이 종료되며 다시 Menu UI 출력 (이때는 Restart 버튼 출력)PlayerController 코드HUD를 켜고, MainMenu를 켜는 함수를 두개 만들..
Unreal Engine - 간단한 UI 만들기 (HUD)
·
Unreal Engine
1. 기본 세팅위젯 블루프린트 선택 후 -> 사용자 위젯 선택디자이너 탭팔레트 -> 패널 -> 캔버스 패널 추가추가적으로 아래와 같이 화면 크기를 조절하여, 우리가 구현하고자 하는 게임에 사이즈에 맞는 화면을 세팅할 수 있다.팔레트 -> 일반 -> 텍스트 추가아래와 같이 구성해 주었다.글씨 크기나 폰트, 가운데 정렬 등의 옵션은 디테일 창의 폰트에서 바꿀 수 있다.  2. 플레이어와 UI 연동대체로 UI와 캐릭터의 연동은 PlayerController에서 수행한다. 그 이유는 플레이어의 입력과 상호작용하며, 화면에 표시되는 요소이기 때문이다.PlayerController 세팅UUserWidget 타입의 변수를 하나 선언해주고,생성자에서 BP를 ConstructorHelpers로 가져와서 연동한 후Begi..
알고리즘 관련 함수 1
·
알고리즘(코딩테스트)
1. partial_sum연속된 구간의 합을 구해주는 함수numeric 헤더를 include 해주어야 사용 가능하다.[] 연산자를 통해 특정 구간까지의 합을 구할 수 있다.#include #include #include using namespace std;int main(){ vector vec = { 1,2,3,4,5 }; vector vec_sum(vec.size()); partial_sum(vec.begin(), vec.end(), vec_sum.begin()); for (const int& v : vec_sum) { cout   2. unique중복된 원소를 제거한 후 끝 위치를 반환하는 함수unique 결과값이 중복을 제거하고 정렬된 맨 값들을 제외하고 맨 처음 원소를 가리킨다.아래 예시의 경..
TIL day 38
·
TIL
1. 코딩테스트오늘은 "스택" 단원을 공부하였습니다. 푼 문제 1) level 1 - 크레인 인형뽑기 게임https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr특이한 점은 없는 문제#include #include #include using namespace std;stack st;int solution(vector> board, vector moves) { int answer = 0; int colLength = board.size(); for(int i = 0; i  푼 문..
UE5 Issues : Complex Collision
·
Unreal Engine
언리얼 Static Mesh에는 단순 콜리전과 복합 콜리전이 존재한다.단순 콜리전의 모습복합 콜리전의 모습 우리가 게임을 만들 때 단순 콜리젼을 대부분 사용하지만, 정확도가 너무 떨어져 더 정확한 콜리전을 사용하기 위해서는 복합 콜리전을 사용하면 된다.static mesh를 켜고, 디테일 창에 아래와 같이 콜리전 복잡도를 설정하는 부분이 존재한다.Use Complex Collision As Simple을 통해 복합 콜리전을 적용할 수 있다.