비트 마스킹
·
알고리즘(코딩테스트)
비트 마스킹이란 0과 1을 이용해서 연산하는 방식을 말한다.이 방식을 통해서 효율적인 연산이 가능할 때가 있다. 많이 안 써본 방식이기 때문에 관련 수업을 들은 후 내용을 정리하게 되었다.추가적으로 아래 글을 참고해서 정리해 보았다.https://blog.encrypted.gg/1093 [실전 알고리즘] 부록 C - 비트마스킹네 반갑습니다. 이번 부록 C에서는 비트마스킹을 다뤄보겠습니다.  이번 강의에서는 간단하게 비트 연산자들을 살펴보고 비트마스킹을 익힌 후에 문제를 같이 풀어볼 예정입니다. 이것도 다른blog.encrypted.gg  1. 비트 연산자0은 false 1은 true를 뜻한다.AND (둘다 참인 경우 참)0 & 0 = 00 & 1 = 01 & 1 = 1OR (둘중 하나만 참이어도 참)0 ..
TIL day 55
·
TIL
1. 코딩 테스트오늘 오전에는 그래프 관련 공부를 진행하였습니다. 그래프 관련 문제들 중에서 bfs 관련 문제는 많이 풀어봐서 익숙했지만, dfs 관련 내용이 부족하다고 느껴져서 해당 부분 공부를 집중적으로 진행하고 관련 내용을 정리해 보았습니다. 특히, 비재귀 형태로 구현한 dfs를 올바를 순서로 탐색하도록 하는 방식을 잘 기억해야할 것 같습니다.  https://gbleem.tistory.com/117 그래프 (재귀, 비재귀 DFS)1. 그래프의 특징과 종류방향이 있는 그래프 가중치가 있는 그래프 순환이 있는 그래프  2. 그래프 구현2 - 1. 인접 행렬을 이용한 그래프배열의 인덱스는 노드세로 방향 출발 노드가로 방향 도gbleem.tistory.com 추가로 백준에서 관련 문제를 하나 풀었습니다...
그래프 (재귀, 비재귀 DFS)
·
알고리즘(코딩테스트)
1. 그래프의 특징과 종류방향이 있는 그래프 가중치가 있는 그래프 순환이 있는 그래프  2. 그래프 구현2 - 1. 인접 행렬을 이용한 그래프배열의 인덱스는 노드세로 방향 출발 노드가로 방향 도착 노드배열의 값은 노드의 가중치 2 - 2. 인접 리스트를 이용한 그래프  결론인접 행렬크기가 고정되어 있기 때문에 노드가 많고 연결이 적은 그래프에서 낭비가 심한 단점이 있다.간선의 정보를 O(1)에 얻을 수 있는 장점이 존재인접 리스트대부분의 경우 인접 행렬에 비해 메모리를 절약할 수 있다.평균적으로 간선의 정보를 얻는데 시간이 좀 더 걸림  3. 그래프 탐색3 - 1. BFS최단 경로를 보장하는 탐색 방식queue를 사용한다.방문 처리를 queue에 push할때 진행한다.#include #include #i..
TIL day 54 (ch3 팀 프로젝트 종료)
·
TIL
UE5 C++ 슈터 게임 프로젝트 성공적으로 마무리 하였습니다. 대략 3주의 기간동안 열심히 개발했는데, 많은 사람들이 좋은 평가를 해주셔서 보람찬 프로젝트였습니다.또한, 개발하면서 개인적으로도 많이 성장할 수 있었던 것 같고, 협업관련해서도 많은 것을 배울 수 있었습니다. 좋았던 점언리얼 C++에 익숙해 질 수 있는 계기였고, 언리얼 엔진 자체(함수나 여러 기능 들)에도 익숙해 질 수 있었습니다.게임을 플레이하면서 꼭 한번 구현해 보고 싶은 것들을 구현해 볼 수 있어서 의미가 있었습니다.다양한 총기 (배율달린 SR, 반동 시스템)모션 매칭을 이용한 애니메이션게임 내 캐릭터를 담당했기에, 다른 부분 (아이템, 총기, UI 등)과 연동하면서 구현하게 되었는데 이쪽을 구현하면서 게임의 전반적인 구조에 대해 ..
Unreal Engine - Main Menu (흐름 위주의 정리)
·
Unreal Engine
이전에 관련 글을 정리했었는데, 다시 구현하면서 보니 조금 이해가 안되는 부분이 중간 중간에 있어서 흐름 위주로 다시 글을 정리해보았다. 이전 글https://gbleem.tistory.com/79 Unreal Engine - Main Menu UI (Start, Restart)1. 디자이너 탭 구성아래와 같은 계층구조로 구성  2. Menu  전용 맵게임이 시작하면 Menu Level에서 위에서 만든 UI가 실행된 후 Start 버튼을 누르면 게임이 시작되는 로직으로 제작할 것이다.새로gbleem.tistory.com 1. 메뉴용 맵과 WBP메뉴의 바탕이 될 레벨을 하나 만들고위젯 BP를 만들어서 게임 시작 버튼을 만들면 된다. 이후 Default 레벨을 해당 레벨로 지정하면 된다. 1. UI 만들기 ..
TIL day 53
·
TIL
1. 언리얼오늘은 프로젝트 종료 전 최종적으로 필요한 것들을 구현하였습니다. 1 - 1. UI우선 간단한 메인메뉴와 게임오버 관련 UI가 필요해서 구현을 하였습니다.예전에 메인 메뉴 구현 관련하여 글을 정리해 두었는데, 지금 보니 조금 허술한 부분이 있다고 느껴져서 이번 구현을 하면서 흐름을 위주로 다시 정리해 보았습니다.https://gbleem.tistory.com/115 Unreal Engine - Main Menu (흐름 위주의 정리)이전에 관련 글을 정리했었는데, 다시 구현하면서 보니 조금 이해가 안되는 부분이 중간 중간에 있어서 흐름 위주로 다시 글을 정리해보았다. 이전 글https://gbleem.tistory.com/79 Unreal Engine - Main Menugbleem.tistor..
UE5 Issues : ADS (Aim Offset 1D)
·
Unreal Engine
1. 3인칭 시점기본적으로 카메라는 spring arm과 함께 존재하는 것이 조절하기 편리하다.특히 각도와 위치 관련된 부분에 있어서 조절할 때 spring arm 의 offset을 조절하는 것이 더 좋은 방식이다. 우선 아래와 같이 구성을 하게 되었다.상위 컴포넌트는 spring arm 이고 하위 컴포넌트를 child actor로 하였다.child actor로 두면 나중에 GetChildActor를 통해서 가져올 때 편리하기 때문이다.Child Actor에는 Camera를 상속해서 만든 클래스를넣어주면 된다.코드는 아래와 같이 구성하였다.헤더파일//change view componentUPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Component"..
Unreal Engine - Sound play & Effect spawn
·
Unreal Engine
1. Sound Play사운드는 .wav 파일이나 .mp3 파일을 SoundBase로 가져와서 play할 수 있다. 아래와 같이 변수를 선언해 주고//for weapon soundUPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sound")TArray> ShootSound;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sound")TArray> ReloadSound;UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sound")TObjectPtr NoAmmoSound;생성자에서 아래와 같이 ConstructorHelpers로 가져와서 사용하면 된다./..
TIL day 52
·
TIL
1. 언리얼오늘은 게임의 퀄리티를 높일 수 있는 사운드와 이팩트, 애니메이션 관련 작업을 하였습니다. 1 - 1. 애님 몽타주 먼저 애님 몽타주를 통해 캐릭터의 장전 모션을 구현하는 작업을 하였고, 하면서 얻은 내용을 정리해 보았습니다.https://gbleem.tistory.com/110 Unreal Engine - 애님 몽타주1. 애님 몽타주애님 몽타주는 특정 애니메이션을 제어하고 다양한 방식으로 재생할 수 있게 해주는 기능이다.아래와 같은 기능들을 주로 사용하게 된다.애니메이션을 특정 슬롯에서 동작할 수gbleem.tistory.com  1 - 2. 사운드 및 이팩트 사운드는 wav 나 mp3 파일을 가져와서 UGameplayStatics::PlaySoundAtLocation 함수를 사용하여 구현하..
Unreal Engine - 애님 몽타주
·
Unreal Engine
1. 애님 몽타주애님 몽타주는 특정 애니메이션을 제어하고 다양한 방식으로 재생할 수 있게 해주는 기능이다.아래와 같은 기능들을 주로 사용하게 된다.애니메이션을 특정 슬롯에서 동작할 수 있도록 해주는 기능노티파이를 사용하여 애니메이션 중간에 효과를 줄 수 있는 기능이번에 사용해 본 예시로는 장전 애니메이션과 피격 애니메이션, 구르기 애니메이션에 사용해 보았다.  2. 애님 몽타주 만들기새롭게 애님 몽타주 만들면 아래와 같이 생성이 된다.주요하게 봐야할 점이 slot과노티파이 이다. 2 - 1. slot특정 bone을 기준으로 애니메이션을 나눠서 재생할 수 있게 하는 부분이다.default slot 이라고 검색하면 아래와 같은 노드를 선택할 수 있게 되고 해당 애니메이션은 Default 노드에서 재생되게 된..