경력
前 넷마블 서버 프로그래머
前 위메이드 클라이언트 프로그래머
前 넥슨 게임 프로그래머
관심분야
게임개발과 관련된 기술 연구
인디게임 개발
소개
안녕하세요. 저는 게임개발과 관련된 재미있는 연구를 즐기는 개발자입니다.
어린 시절부터 게임을 좋아했고, 게임개발자로서 국내 주요 게임기업에서 근무하며 크고 작은 프로젝트에 참여했습니다. 현재는 인디게임 개발자로 활동하고 있으며, 제가 쌓아온 지식과 경험을 여러분과 나누고자 합니다.
Khóa học
Đánh giá khóa học
- Thực chiến! Phát triển Unreal Soulslike: A to Z
- Thực chiến! Phát triển Unreal Soulslike: A to Z
- Thực chiến! Phát triển Unreal Soulslike: A to Z
- Thực chiến! Phát triển Unreal Soulslike: A to Z
Bài viết
Hỏi & Đáp
무기 콜리전 시스템에 대해
안녕하세요!CollisionComponent 방식은 물리 업데이트 주기에 따라 충돌을 검사하는 방식이기 때문에, 빠른 움직임에서 충돌을 놓치거나 프레임률에 따라 충돌 감지가 불안정할 수 있습니다.반면 LineTrace 방식은 연속적인 감지 방식으로, 빠르게 무기를 휘두르는 상황에서도 중간 지점들을 놓치지 않고 처리할 수 있어 더욱 정밀한 구현이 가능합니다.따라서 검, 도끼 등 휘두르는 무기의 충돌 처리나 정밀한 타격감이 중요한 빠른 액션 게임에서 LineTrace 방식이 적합하다고 할 수 있습니다.반면 CollisionComponent 방식은 느린 움직임의 함정이나 장애물과 같은 오브젝트의 충돌 처리, 또는 지속적인 접촉이 필요한 오브젝트 구현에 더 적합합니다.엔진 레벨에서의 처리 방식 차이를 간단하게 설명드리면, LineTrace 방식은 요청 시점에 명시적인 함수 호출로 처리되어 결과가 즉시 반환됩니다. 반면 CollisionComponent는 씬 그래프에 영구 등록되어 매 물리 업데이트마다 검사하며, 비동기 이벤트 시스템을 통해 처리됩니다.그럼 좋은 하루 되세요.
- 0
- 1
- 20
Hỏi & Đáp
Hit Reaction 설계
안녕하세요!설계 의도를 말씀드리기 전에, 캐릭터가 들고 있는 무기에 따라 피격 애니메이션을 다르게 처리하는 이유를 먼저 생각해보겠습니다. 예를 들어 캐릭터가 몽둥이로 맞는다고 상상해보세요.어떤 무기를 들고 있느냐에 따라 당연히 반응이 달라집니다. 한손검과 방패를 들고 있을 때와 창을 들고 있을 때의 파지 자세가 다른데, 피격 반응이 똑같을 수는 없겠죠?그렇다면 캐릭터가 어떤 무기를 들고 있는지에 따라 피격 애니메이션을 다르게 처리해야 한다는 것을 확인했습니다.이제 중요한 질문은, 이 애니메이션을 어디서 처리하는 것이 합리적이고 관리하기 좋을까요?만약 캐릭터에서 처리한다면 어떨까요? 새로운 무기가 추가될 때마다 캐릭터에 해당 애니메이션들을 추가해야 합니다. 그뿐만 아니라 피격을 처리할 때마다 현재 캐릭터가 어떤 무기를 들고 있는지 확인해서 그에 맞는 애니메이션을 재생하는 코드가 필요합니다. 무기가 늘어나면 늘어날 수록 코드는 점점 더 길어지고 복잡해 지겠죠.하지만 무기에서 애니메이션 데이터를 처리한다면? 그냥 해당 무기의 애니메이션을 재생하면 끝입니다.어느 쪽이 더 효율적일까요? 불필요한 분기 코드도 필요 없고, 새로운 무기가 추가될 때마다 데이터 관리도 훨씬 용이합니다.그래서 대부분의 게임에서 이 방식을 사용하고 있습니다.
- 0
- 3
- 45
Hỏi & Đáp
FindClosestTarget CheckValue 절댓값 처리
안녕하세요!해당 코드는 단순 거리 계산이 아닌 플레이어의 시선방향과 가시성을 고려해서카메라 전방 벡터와 타겟 방향 벡터의 유사도 측정을 통해서 시야 중심에서 가장 가까운 타겟을 우선 선택하는 것 입니다.
- 0
- 2
- 30
Hỏi & Đáp
44분26초 동일하게 코드를 작성한것같은데 빌드에러가 뜹니다ㅠ
안녕하세요! 보여주신 코드들 보니 오타를 내신 것 같습니다. 차분히 코드를 잘 살펴 보시면 금방 해결 하실 수 있을 것 같습니다.코드를 무작정 따라 치시기 보다는 코드의 흐름을 이해하시면서 천천히 해보시길 추천 드립니다.그럼 파이팅 하시기 바랍니다^^
- 0
- 2
- 28
Hỏi & Đáp
FindClosestTarget 노멀 벡터 방향
안녕하세요! 말씀 하신 것처럼 불규칙한 메시에 충돌 한다면 그럴 가능성이 얼마든지 있습니다.하지만 강의에서는 캐릭터의 다른 메시들은 모두 충돌이 발생하지 않도록 설정되어 있고 Targeting Sphere Component와 충돌하도록 설정하고 있기 때문에 그럴 가능성은 없다고 보시면 맞을 것 같습니다. 그럼 좋은 하루 되세요~^^
- 0
- 2
- 20
Hỏi & Đáp
UUserWidget 생성자 선언하는 이유
안녕하세요.UUserWidget 이라고 해서 특별히 생성자를 사용하지 않는 것은 아닙니다.생성자에서 초기화할 코드가 있다면 생성자를 선언하고 초기화 코드를 넣게 됩니다.아마도 이후에 초기화 코드를 넣을 예정이거나 해서 생성자를 만들었거나 했을 텐데요. 결국은 쓰이지 않고 빈 상태로 있는 경우도 있습니다. 이런 경우는 특별한 의미는 없으니 무시 하셔도 됩니다^^
- 0
- 2
- 29
Hỏi & Đáp
2강 32분18초 Generate definition 하는 방법이 뭘까요?
안녕하세요.c++에서 함수는 선언과 정의(구현)로 구분 됩니다.선언은 해당 요소의 존재와 기본적인 형태를 알리는 것이고, 구현은 선언된 요소의 실제 동작이나 내용을 정의하는 것입니다..h 파일에 함수의 선언을 하고, .ccp에 정의(구현)를 합니다.visual studio의 정의를 생성하는 단축키는 Ctrl + . 입니다. 참고로 c++의 문법을 세세하게 설명하지는 않습니다.c++가 처음 이시라면 일단은 천천히 따라 해보시면서, 별도로 문법강의를 수강하시거나 공부하시는 것을 추천 드립니다.
- 0
- 1
- 30
Hỏi & Đáp
Visual Studio 창이 안뜹니다 ㅠ
안녕하세요. 언리얼 엔진이 Visual Studio 2022용으로 필요한 MSVC C++ 툴체인(버전 14.34.31933) 을 찾지 못해서 프로젝트 파일 생성에 실패한 것으로 보입니다.언리얼 엔진 개발에 필요한 Visual Studio 구성하기 문서를 참고하셔서 필요한 설정을 확인하셔서 설치 하시기 바랍니다.https://dev.epicgames.com/documentation/ko-kr/unreal-engine/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine
- 0
- 3
- 25
Hỏi & Đáp
FTimeHandler 유실
안녕하세요!새로운 World가 생성되면서 새로운 TimeManager 인스턴스가 생성됩니다.TimerManager는 World에 종속 되어 있기 때문 입니다.그렇기 때문에 이전 TimeManager에 등록된 Timer들이 새 인스턴스로 이전되지 않습니다.즉 이전 World에서 등록한 Timer는 유효하지 않은 상태가 됩니다.그럼 좋은 주말 되세요^^
- 0
- 2
- 43
Hỏi & Đáp
LockOn상태에서의 구르기
안녕하세요!LockOn시 캐릭터가 바라보는 방향이 아니라, 입력방향으로 구르기를 처리하는 방법으로는 LockOn 상태일 때는 캐릭터의 forward 방향이 아닌 입력 방향을 기준으로 구르는 방향을 계산해서 처리해 주면 됩니다.카메라의 Forward와 Right Vector에 Input.X와 Input.Y를 곱해서 구할 수 있습니다.Input.X 값이 좌,우 이고 Input.Y 값이 앞,뒤의 입력값이라고 가정 했을때.FVector InputDirection = (CameraRight * InputVector.X) + (CameraForward * InputVector.Y); FVector RollingDirection = InputDirection.GetSafeNormal(); 그리고 구르기 후 캐릭터 회전 지연 문제는 구르기 시작 시 즉각 적으로 캐릭터의 Rotation을 구르는 방향으로 변경해 주면 됩니다. 구르기를 시도할 때 마다 구르는 방향으로 즉각적으로 캐릭터의 Rotation 값이 적용됩니다. 그럼 좋은 하루 되세요~^^
- 0
- 2
- 49