[250313 TIL] 뭔가 많이 쓸 것 같은 어댑터 패턴
·
TIL
1️⃣ C++ 코딩테스트 공부💡스택은 언제 사용할까?- 근처에 있는 것들끼리 관련 있을 때- 순서 reverse 해야할 때🔹괄호 짝 맞추기더보기더보기#include #include using namespace std;bool solution(string s) { bool answer; stack st; for(char ch : s) { //if(ch == ')' && st.top() == '(') || )가 나왔는데 스택이 비어있을 경우 생각못함 if(ch == ')') { if(st.top() == '(') { st.pop(); continue; ..
[250312 TIL] 팩토리 패턴_디자인 패턴 공부로 포인터 다시 공부
·
TIL
1️⃣ C++ 코딩 테스트 공부🔹방문길이더보기#include #include #include #include using namespace std;pair moveVirtex(char dir, const pair& position){ pair newP = {0, 0}; switch(dir) { case 'U': newP.first = position.first; newP.second = position.second + 1; break; case 'D': newP.first = position.first; newP.second = position.second - 1; ..
Unreal5 리슨 서버와 데디케이트 서버
·
Unreal
1️⃣ 개요언리얼이 제공하는 서버인 데디케이트 서버와 리슨 서버에 대해 알아보고자 한다.먼저 데디케이트 서버와 리슨 서버는한국의 온라인 게임이 사용하는 Persistent 서버(항상 운영되는 상태)와 다르게 콜솔 기반 게임에 적합하다.상용 게임에 이 서버들을 사용하기는 어렵다고 볼 수 있지만 배움의 차움에서 이를 알아보고자 한다. 2️⃣ 리슨 서버🔹액터액터의 경우 리플리케이트만 켜주면 공유된다.❓스태틱 메쉬는 그냥 뷰포트에 배치되면 공유되는데...스태틱 메쉬월드에 배치된 오브젝트는 기본적으로 클라이언트와 서버가 동일한 장면을 렌더링함하여리플리케이션을 켜지 않아도 보인다.블루프린트(동적 객체)동적인 객체나 블루프린트는 bReplicates를 활성화해야 클라이언트와 서버 간에 상태가 동기화되어서 클라이언트..
[250311 TIL] 언리얼 에디터 깃허브 소스 빌드 너무 오래 걸려...
·
TIL
1️⃣디자인 패턴🔹팩토리 패턴팩토리 메서드 패턴객체 생성을 클래스 내부에서 new를 통해 한다면 특정 구현 클래스에 강하게 결합됨 → OCP/DIP 위반단일 메서드 하나 추상 팩토리 패턴팩토리 자체로 여러가지 구성요소를 한번에 생성함여러개의 메서드 심플 팩토리 패턴대체로 위에 두개를 래핑할 때 사용🔹디자인패턴 적용한 간단 텍스트 RPG 상태 패턴GameState에서 Game Instance 값 가져와서현재 state 자동 변경이나 플레이어의 버프 상태 등에 사용하면 좋을 것 같다.⚠️서로 참조하는 경우상태 패턴 같은 경우는 서로 참조가 되기 때문에 하나의 코드 상에서 구현할 수 없다. (서로 참조하는 다른 패턴도 마찬가지)파일을 만들기 번거로워 웹 IDE를 사용하여 하나의 파일 안에서 구현했더니 에러..
[250310 TIL] 네트워크 개념
·
TIL
1️⃣언리얼 C++🔹네트워크 개념 이해하기네트워크 기본 구성요소노드 + 링크 + 프로토 네트워크 배치 형태p2p 버스 링 스타 메쉬 트리 네트워크 레이어물리 (L1) -데이터링크 (L2) -네트워크 (L3) -전송 (L4) -세션 (L5) -프리젠테이션 (L6) -어플리케이션 (L7) 네트워크 유형PAN LAN MAN WAN Internet 대표적인 프로토콜TCP 느리지만 높은 안정성(연결 유지/양방향성)UDP 빠르지만 낮은 안정성(비연결/단방향성) Mac Adress 데이터 링크 계층에서의 고유한 주소 체계(물리적 주소) IP내부망 ARP(서브넷마스크 주소 동일) : 해당 IP를 갖고 있는 디바이스로 브로드캐스팅외부망 ARP(서브넷마스크 주소 상이) : 게이트웨이를 찾아 ARP 브로드캐스팅  DNSI..
[250226 TIL] 코드는 타이밍이 생명
·
TIL
1️⃣슈터 게임 프로젝트 [Trouble Shooting] CPP 오류🔹 처리되지 않은 예외가 throw됨 : this가 nullptr사라지지도 않은 Weapon이 없다는 예외 발생했다.여기저기 중단점을 잡아보다 Timer 부분에서 무한 로딩나는 여러 적이 장비를 해제할 때 GetTimerManageryoosorang.tistory.com 적을 2명 꺼냈을 때 총 액터가 없다는 예외처리가 발생하여 중단점을 찍어보며 원인을 찾아보았다.그래서 타이머 구현 부분에 문제가 있는 것 같다는 추측을 하여 팀원분께 여쭤보았더니해결책은 생각보다 간단했다. 역시 혼자 끙끙 앓기보다는 문제를 공유하고 빠르게 해결하는 것이 답이라는 것을 다시 한번 느낄 수 있었다.   [Trouble Shooting] 블루프린트 오류🔹..
[250225 TIL] 적 애니메이션 진행 중..
·
TIL
1️⃣알고리즘 공부(코딩테스트 합격자 되기 C++편)[문제 06 실패율] 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr스테이지와 실패율, 서로 다른 타입을 연관하여 어떻게 저장하고 정렬해야하는지 고민 중실패율 저장은 Map 자료구조를 사용하고정렬은 Vector 구조에 저장된 스테이지를 Map의 실패율을 가져오는 식으로 구현했는데 풀이답안을 통해 pair를 사용하여 서로 다른 타입을 묶고 이를 벡터에 저장하여sort 함수를 사용해서 정렬을 가능하다는 것을 알 수 있었다.2️⃣ 언리얼 C++적의 애니메이션을 믹사모에서 가져온 애니메이션을 사용했는데루트 강제 잠금이 적용되지 않아 관련 내용을 찾아보았다. U..
Unreal5 믹사모 애니메이션 강제 루트 잠금 적용시키기
·
Unreal
1️⃣ 개요언리얼을 사용하는 사람들은 믹사모를 한번쯤 들어보았을 것이다.믹사모는 다양한 캐릭터와 애니메이션을 제공해주는 사이트로 이를 "무료"로 받을 수 있기 때문이다. 그러나 믹사모를 사용하던 중 믹사모의 뼈대가 언리얼 기본 뼈대와 달라강제 루트 잠금을 적용할 수 없는 문제가 발생하였다. 2️⃣ 믹사모 루트 강제 잠금 적용믹사모의 뼈대는 root가 없고 Hips를 루트로 사용한다.그래서 루트를 잠그는 루트 강제 잠금을 사용하면 붕 떠있는 것 같은 모션이 나올 수 있다. 이와 관련하여 다음의 영상에서 인사이트를 얻을 수 있었다.Open RealityFix Mixamo Root Motion Animations in Unreal Engine | UE4​ 해당 영상 및 유튜브에 mixamo root motio..
[250224 TIL] 이러다 블루프린트 마스터하겠다
·
TIL
🕒TID🔹알고리즘 공부 (코딩테스트 합격자 되기 C++ 편)     행렬의 곱셈 문제🔹프로젝트 작업1️⃣ 알고리즘 공부 (코딩테스트 합격자 되기 C++ 편) 1. 결과에 대한 크기만큼 공간 할당하고 인덱스를 활용하여 결과값을 삽입하면 더 쉬움answer.assign(arr1.size(), vector(arr2[1].size(), 0)); 2. 행렬 곱을 할 수 있는 두 행렬의 조건A 행렬의 크기가 (MK), B 행렬의 크기가 (KN)일 때두 행렬의 곱 연산은 행렬 A의 행의 개수(K)와 행렬 B의 열의 개수 (K)가 같아야 하며K를 기준으로 곱하기 때문에 행렬 곱 결과는 M*N 2️⃣ 슈터 게임 프로젝트 [Trouble Shooting] 블루프린트 오류🔹== 오류폰 타입을 비교하고 싶어서 ==노드..
[Trouble Shooting] 블루프린트 오류
·
Trouble Shooting
🔹AI 비헤이비어 트리 실행 딜레이총을 사용하는 적인지 확인하는 걸 Decolater로 했더니 가져오는 게 살짝 늦어서 실행하는데 딜레이가 생겼다.Decolater로 값을 지정하는 게 문제인 것 같아 서비스에서 블랙보드 키 값을 지정해주는 것으로 변경하였더니스무스하게 연결되었다. 🔹== 오류폰 타입을 비교하고 싶어서 ==노드를 사용해 bool값을 뽑았다.필자는 true가 나와야한다고 생각했지만 false가 나왔다.이유는 Controlled Pawn(BP_Drone_C_1)은 BP_Drone_C의 인스턴스이기 때문!고로 비교를 하려면 Cast To를 써야한다. 🔹Tick 실행 안됨 C++에서 Tick을 정의하고 블루프린트로 상속받아 블루프린트에서도 Tick을 사용했을 경우C++에서 Super::Tic..