생일이 지나고, 만 29살이 되었다. 내 나이는 어느새 그렇게 적지 않게 돼버렸다. 요즘은 생각이 많아진다. 또다시 내 시간을, 대한민국이 정해놓은 시계 안에 억지로 끼워 넣고 있는 나를 본다. 아무도 나에게 그렇게 하라고 강요하지 않는데, 스스로 그 틀에 맞추려 한다. 그래서 괴롭다. 사실 나도 안다. 아무도 나의 시계에 관심이 없다는 걸. 그런데도 나는 내 시간을 볼 때마다 초조하고, 괴롭다. 부모님의 나이도 나에게는 불안함의 이유가 된다. 우리 부모님은 그 시절 기준으로도 늦은 나이에 나를 낳으셨다. 아버지는 서른여섯, 어머니는 서른둘. 넉넉하지 않은 형편 속에서도 사랑으로 나를 키워주셨고, 나는 그 누구보다 건강하고 잘 자랐다고 믿는다. 최근에 마음이 힘들 때마다 어디서 본 문장이 떠오른다. "나..
![[unreal] AI 시스템 구조 및 Perception](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbOGm3x%2FbtsOZvEh09y%2FAAAAAAAAAAAAAAAAAAAAALGfndYcDckTR6V-nqPtkluWEiNXnw8TrxSBFnFhXANI%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DKmx2auHL4ILQR%252BxHtyfe9sZLbQM%253D)
Pawn은 움직이는 오브젝트, Controller는 그걸 조종하는 논리1. PawnPawn은 플레이어나 AI가 직접 조종할 수 있는 게임 오브젝트다. 단순히 Actor를 상속받은 객체로, 입력에 따라 움직이거나 상호작용할 수 있다이동, 충돌, 중력 등 기본 기능은 직접 구현해야 하므로, 특수한 움직임(비행기, 드론, 카메라 등)에 적합하다사람 캐릭터처럼 보행이 필요한 경우에는 Character 클래스를 사용하는 게 더 효율적이다.2. ControllerController는 Pawn을 실제로 제어하는 논리를 담당한다. PlayerController(플레이어 입력 처리)와 AIController(AI 로직 처리)로 나뉜다Controller가 Pawn을 Possess(빙의)하면, 해당 Pawn을 자유롭게 조종..
![[unreal] 애니메이션 리타게팅](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcyR8Ze%2FbtsOZkbe094%2FAAAAAAAAAAAAAAAAAAAAANKm8KzFstUArORUQucB4ZwetlL9NijISpSJCZDSGKHL%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D0wXDhOuMSBvt0r4LN5c58lnkwX8%253D)
1. 정의IK 리타게팅(Inverse Kinematics Retargeting)은 언리얼 엔진에서 제공하는 애니메이션 변환 기능으로, 서로 다른 스켈레탈 메시 간에 애니메이션 데이터를 자연스럽게 이전할 수 있도록 지원한다. IK(역운동학) 알고리즘을 활용하여 손, 발 등 주요 신체 부위의 위치 정밀도를 유지한다. 2. 주요 특징본 구조 차이 대응: 본 개수, 명칭, 방향 등이 상이한 캐릭터 간에도 애니메이션 재사용이 가능하다. 정확한 컨택 포인트 보정: 손, 발 등 주요 부위가 바닥 또는 오브젝트에 정확히 닿는 동작을 실시간으로 보정한다. 엔진 내 통합 워크플로우: 외부 툴 없이 언리얼 엔진 내에서 직접 세팅 및 적용이 가능하다. 3. 사용 절차소스 및 타깃 스켈레탈 메시 준비 각 메시에 IK Rig 에..
![[Perforce/P4V] warning : Can't clobber writable file ....](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fc0m5kG%2FbtsOiUXTbvw%2FAAAAAAAAAAAAAAAAAAAAAHMqFigf9PdaOKMJTlSXSaRJ8RlEVHfmdkLb6KrFr58e%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DZ2P3koVwmVvUQl20GuhSDXsr5nw%253D)
"⚠️warning : Can't clobber writable file"clobber : "덮어쓰다" , '강제로 교체하다' 기본적으로 Perforce에서 받은 작업 공간의 파일을 수정하기 위해서는 [Check out...] 과정을 거쳐야 한다. 이 과정 [Check out...]에서 읽기 모드이었던 작업 파일이 쓰기 모드로 바뀌게 되고 수정이 가능하게 된다.Perforce는 [Check out...] 과정을 생략하고 직접 읽기모드를 변경하거나 파일을 덮어 씌운 파일이 존재할 때 업데이트를 받게 되면 사용자가 작업 중인 내용을 실수로 잃는 것을 방지하기 위해 덮어쓰기를 하지 않고 warning을 뱉어낸다. 근데 만약 .. 덮어쓰고 싶다? 할 때 아래 방법을 따라 하자! P4V -> Connectio..

가끔 레퍼런스랑 포인터랑 사용을 혼돈 할 때가 있다. 이터레이터(iter) 경우도 있고 막 &(*) 여러 시도하다가 빌드 오류 안나면 그냥 넘어가는 경우가 있었다. 그럴 때 마다 한 번 제대로 정리 해야겠다. 생각하면서도 넘어가는 경우가 많았다. 오늘은 진짜 .. 정리 한 번 해보려고 한다. 내용은 [전문가를 위한 C++(개정 4판)]이다. 1.레퍼런스 초기화레퍼런스는 처음 초기화 할 때 지정한 변수만 가리킨다. 한 번 생성되고 나면 가리키는 대상을 바꿀 수 없다. 레퍼런스를 선언 할 때 어떤 변수를 '대입'하면 레퍼런스는 그 변수를 가리킨다. 하지만 이렇게 선언된 레퍼런스에 다른 변수를 대입하면 레퍼런스가 가리키는 대상이 바뀌는 것이 아니라 레퍼런스가 원래 가리키던 변수의 값이 새로 대입한 변수의 값으..

공성전 중 길드 마크와 이름이 사라지는 현상 분석 최근 공성전 콘텐츠에서 유저들로부터 버그 제보가 들어왔다."공성전 중 사람이 많아지면 화면이 깨진다.""컴퓨터 성능 문제는 아니다. 채팅창을 보면 나만 그런 게 아니다.""캐릭터와 배경은 멀쩡한데, 길드 마크와 유저 이름이 네모난 투명 형태로 깨지듯 사라진다."게임이 치열하게 돌아가는 상황이라, 빠르게 영상 자료를 받아 분석을 시작했다. 1. UI 렌더링 구조 의심해당 게임은 DirectX9 기반으로 동작하며, UI와 이름표는 ID3DXSprite와 ID3DXFont를 이용해 렌더링하고 있다.처음엔 Sprite 내부 버퍼 초과 문제를 의심했다.예를 들어:m_pSprite->Begin();m_pSprite->Draw(...);m_pSprite->End();..
![[unreal] Gamemode, UE_LOG](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FJiIy9%2FbtsMDYPSGEX%2FAAAAAAAAAAAAAAAAAAAAADyl4FdWX9zW1hLFFP2o2usiP-n4XlIfa7aKPbV2rlha%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Dn06YQCqVkyo7LbtaD3lWkrNX87M%253D)
1. 게임모드 기본적으로 레벨에 들어가서 게임 규칙을 관리하는 엑터누가 어디에 스폰해야 하는지와 플레이어에게 어떤 클래스를 사용하고 그 밖에 게임 작동 방식을 정의하는 수많은 클래스를 사용하는 방법을 알려준다. 멀티 플레이어 게임에서는 해당 게임에 허용되는 플레이어 수 등을 제어할 수 있고 바람 조건, 깃발 뺏기 같은 게임 모드가 있는가 하면 배틀로얄 같은 다른 유형도 있을 수 특정게임 특정 유형을 말한다. 액터 클래스의 기반이 될 베이스를 선택할 거다. 게임모드베이스가 제일 전반적으로 사용한다. 불필요한 것을 제외한 최소한의 설정과 항목만 포함되어있다. 보통 엑터 블루프린트와 비슷한 창을 볼수 있다. 오른쪽 Classes는 클래스 디폴트로 가서 해당 액터의 프로퍼티와 설정을 보면 클래스라는 섹션이 ..
![[unreal] 움직이는 물체에 가만히 있는 플레이어 뚫림현상](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbb8za4%2FbtsMFrbIMVa%2FAAAAAAAAAAAAAAAAAAAAACM3yh8a8HFmm744SMTOVHzo5sxejtf3J4h_vZqZGWd7%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DfinN1BG%252BmvSMnn8hbGKDxWtsMAM%253D)
현상: 움직일때는 충돌처리 ok, 움직이지 않을 때는 충돌처리 no 캐릭터 코드는 움직이지 않는 한 콜리전을 확인 하지 않는다. 해결 : udemy - 【한글자막】 Unreal Engine 5 C++ 개발자: C++ 학습하고 비디오 게임 제작하기 이렇게만 했을 때 문제점: 플레이어 캐릭터의 움직임을 잃어버린다. 엑터의 방향도 적용해준다. 야매인지 모르지만..? 일단 강의 들으면서 꿀팁 같아서 메모..해둔다.
![[게임수학] 원과 각도 (삼각형, 삼각함수.. 부수기)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FoGIx1%2FbtsMxlXTnnv%2FAAAAAAAAAAAAAAAAAAAAAOyo3SpKmC4tL9j5fDPXT6yt2IE9owixk4QQ6PBPgn0R%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DyTeGlvyp%252BvOYhl1fRLU66JEV50Q%253D)
게임수학 기본적인 거 진짜 제대로 알자... 제대로 모르면 쪽팔린지 알고 열심히 하자... 좀 열심히 살아 나란 놈!!😒 파이팅!! 😊1. 용어 정리지름 (Diameter) 반지름 (Radius)둘레 (Circumference / Perimeter) = 원주 중심 (Center / Origin) 호 (Arc) 부채꼴 (Sector) 각도 (Degree)원주를 지름으로 나누면 항상 일정한 값이 나온다. 이를 원주율이라고 하며 원의 지름에 대한 원주의 비율( π )이다. 파이(π)는 원주를 지름으로 나눈 값이다. 타우(τ)는 원주를 반지름으로 나눈 값이며, ( 2π )와 같다. 2. 각도 (Degree/ θ)와 라디안 (Radian / Rad) 라디안 (Radian / Rad) : 어느 한 원 위의..
![[세팅] pch : pre compile header 세팅, 다른 프로젝트 참조하기, 실행파일 저장위치 변경하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fc1s3Mc%2FbtsMBVSWud2%2FAAAAAAAAAAAAAAAAAAAAAA0yZdKPJiykEhRNo5FMUh4CrJUsqh63OLmk4in9jRxG%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DdOMtGAn1BCO3Jo7dfXZS1lB%252FTTo%253D)
1. pch(pre compile header)?컴파일러가 더 빠르게 처리할 수 있는 중간 형태로 컴파일된 (c 또는 c++) 헤더 파일.stdafx.h --> 내가 적용하고 싶은 미리 컴파일된 헤더 이름으로 변경 pch.cpp 파일 속성에서 사용이 아니라 만들기로 변경 2. 다른 프로젝트 연결하기 예를 들어, ServerCore프로젝트를 GameServer와 DummyClient가 참조하고 싶을 때 속성 설정 방법이다.GameServer와 DummyClient 모두 동일하게 속성창에 들어간다. 포함디렉터리와 라이브러리 디렉터리에 포함디렉터리: $(SolutionDir) 포함하고 싶은 프로젝트 이름 \라이브러리: $(SolutionDir) 포함하고 싶은 라이브러리 이름 \ 3. 실행파일 저장위치 변경..
![[unreal - udemy/blueprint] "WarehouseWreckage" Part_1](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbtyz7k%2FbtsMaOUws08%2FAAAAAAAAAAAAAAAAAAAAAA8WKOOzaqnr_ZqVulOVT2bj4lK6Et6oqSFoyb6t3mY1%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Da2li%252FuXGvLqhBpCvYk9M0Rkedeo%253D)
프로젝트 이름 길이에는 제한이 있고, 특수 문자도 지양해야 한다.프로젝트 로그를 업로드 하고 싶을 때는 https://gist.github.com/ 에 로그 붙여서 CreateSecret Gist로 업로드 하는게 예의라고 한다. 1. 블루프린트 용어 정리 이벤트 그래프(event graph) - 블루프린트를 그릴 캔버스 ( The canvas for our Blueprint )노드(Node) - 블루프린트에서 사용할 수 있는 미리 만들어진 기능 ( Premade functionality ) 이벤트(evnet) - 언제 사건이 발생해야 하는지에 대한 노드 ( "when" node )핀(Pin) - 노드를 연결할 수 있는 소켓 ( Sockets we can connect up ) (1). 입력 핀..

WindowsWindows라는 제품명과 같이 Windows용 응용 프로그램을 프로그래밍할 때 주된 주제 하나는 '창(Window)'을 만들고 관리하는 것이다. windows 응용 프로그램의 여러 구성요소, [주 창, 도구 모음, 메뉴, 스크롤바, 버튼, 기타 대화상자 컨트롤]은 모두 창이다. 따라서 windows 응용 프로그램은 일반적으로 다수의 창으로 구성된다. 1. 자원 Windows에서는 여러 개의 응용 프로그램이 동시에 실행될 수 있다. 따라서 CPU나 메모리, 모니터 화면 같은 하드웨어 자원들을 여러 응용 프로그램이 공유해야 한다. 그렇게 되면 여러 응용 프로그램이 자원(Resource)에 무질서하게 접근하게 된다. 이를 막기 위해 windows는 응용 프로그램이 하드웨어에 직접 접근을 못..