경력
前 넷마블 서버 프로그래머
前 위메이드 클라이언트 프로그래머
前 넥슨 게임 프로그래머
관심분야
게임개발과 관련된 기술 연구
인디게임 개발
소개
안녕하세요. 저는 게임개발과 관련된 재미있는 연구를 즐기는 개발자입니다.
어린 시절부터 게임을 좋아했고, 게임개발자로서 국내 주요 게임기업에서 근무하며 크고 작은 프로젝트에 참여했습니다. 현재는 인디게임 개발자로 활동하고 있으며, 제가 쌓아온 지식과 경험을 여러분과 나누고자 합니다.
강의
수강평
- 실전! 언리얼 소울라이크 개발: A to Z
- 실전! 언리얼 소울라이크 개발: A to Z
게시글
질문&답변
방어 시스템에 관해서
제가 코드를 좀 더 살펴보니 스테미나가 마지막 한번 방어 할 만큼만 남아 있을 경우 말씀하신 현상이 발생할 수 있을 것 같습니다.ImpactEffect 함수와 HitReact 함수의 if문 조건을 아래 처럼 바꿔 주시면 될 것 같습니다.(사진) (사진) 원인은 아래 코드에서 스테미나를 차감하기 때문입니다. 따라서 마지막 한 번 사용할 수 있는 스테미나만 남았을 때, ImpactEffect 함수와 HitReact 함수의 if 조건에서 CanPerformAttackBlocking() 함수로 체크하게 되면 스테미나 부족으로 인해 해당 현상이 발생할 수 있습니다.(사진)
- 0
- 4
- 32
질문&답변
방어 시스템에 관해서
보내주신 동영상만으로는 어떤 문제인지 정확히 파악하기 어렵네요 ㅠㅠ말씀드린 것처럼, 제공해 드린 완성 프로젝트에서는 특이점을 발견하지 못했습니다.완성 프로젝트와 코드를 꼼꼼히 비교해보시면서 확인해 보셔야 할 것 같습니다.참고로, 방패 방어 시에는 스테미나가 소모되며, 방어 자세를 취하더라도 필요한 스테미나가 부족하면 방어에 실패합니다. 또한, 적과 정면으로 마주보고 있어야 방어가 가능합니다.
- 0
- 4
- 32
질문&답변
방어 시스템에 관해서
안녕하세요. 말씀해주신 문제들을 확인해 보았으나, 현재로서는 두 가지 모두 특이점을 발견하지 못했습니다.방패 방어로 스테미나를 전부 소모한 후에도 정상적으로 재충전되는 것을 확인했습니다. 또한, 방패 방어 후 공격, 그리고 다시 방패 방어를 시도했을 때도 말씀하신 문제는 발생하지 않았습니다. 혹시 특정 상황에서만 발생하는 문제인지 좀 더 자세히 알려주시면 확인하는 데 도움이 될 것 같습니다.
- 0
- 4
- 32
질문&답변
방어구 애니메이션 적용 관련
안녕하세요.혹시 말씀하시는 '방어구 늘어짐 현상'이 정확히 어떤 것인지 조금 더 자세히 설명해 주실 수 있을까요? 현재 어떤 상황인지도 알려주시면 제가 상황을 파악하는 데 도움이 될 것 같습니다. 제가 최종 프로젝트를 확인했을 때는 특별한 이상이 없었습니다.어떤 작업을 하시다가 해당 현상이 발생했는지, 예를 들어 특정 동작을 했을 때 그렇다거나 하는 구체적인 상황을 알려주시면 문제 해결에 도움이 될 것 같습니다. 만약 제공된 리소스가 아닌 다른 리소스를 적용했을 때 발생한 현상이라면, 리깅 문제일 가능성이 있습니다.즉, 캐릭터와 방어구의 뼈대(Skeleton) 구조가 달라서 발생할 수 있는 문제입니다.현재 강의에서 제공된 프로젝트는 UE5 Mannequin에서 Metahuman으로 리타겟팅하여 진행하도록 구성되어 있습니다.사용하시려는 방어구의 뼈대 구조가 메타휴먼과 어느 정도 유사하다면, 방어구의 뼈대(Skeleton)를 메타휴먼의 뼈대로 Assign하여 처리할 수 있습니다. 하지만 완전히 다른 구조라면 호환되지 않을 수 있습니다.
- 0
- 3
- 4
질문&답변
에디터 로그에 자꾸 이런게 뜨는데 이유가 뭘까요?
안녕하세요.해당 메시지는 오류 메시지가 아니라, 정상적인 엔진 작동의 일부입니다.이 로그는 일반적으로 게임이 시작될때나 새로운 레벨로 전활될때, 그리고 동적으로 에셋을 로드할때 출력되는 정상적인 로그 메시지 입니다.신경 쓰지 않으셔도 될 것 같습니다.
- 0
- 2
- 10
질문&답변
캐릭터 사망 시 삭제는 어떻게 처리해야 하나요?
안녕하세요.캐릭터 사망 후 일정시간 후에 삭제하는 것은 OnDeath() 함수에 Timer를 이용해서 원하는 만큼의 딜레이 타임 후에 삭제 되도록 만들면 됩니다.예를 들면 2초 후에 삭제처리를 한다면 OnDeath() 함수에서 아래의 코드처럼 타이머를 걸어 주고 실제 삭제처리는 DestroyFunc() 함수에서 구현 하시면 됩니다.FTimerHandle DestroyHandle; GetWorld()->GetTimerManager().SetTimer(DestroyHandle, this, &ThisClass::DestroyFunc, 2.f, false);그럼 좋은 하루 되세요^^
- 0
- 2
- 7
질문&답변
구르기가 스태미나가 있는 동안 무한으로 됩니다
안녕하세요. 확인해 보니 구르기 실행 조건 체크 시 State 확인 로직이 누락된 것 같습니다. StateComponent의 CurrentState가 Character.State.Rolling인 경우에는 구르기가 실행되지 않도록 조건을 추가해 주시면 될 것 같습니다.그럼 좋은 하루 되세요~^^(사진)
- 0
- 1
- 2
질문&답변
AnimNotifyState 이름에 관하여
안녕하세요.에디터에서 클래스명 글자 수 제한(32자) 때문에 생성이 안 될 경우, 32자 이내로 생성하신 후 직접 수정하셔야 합니다.이 32자 제한은 언리얼 내부의 클래스 이름에서도 지키지 않는 과거의 잔재인데, 아직도 에디터에서 클래스 생성 시 적용되고 있습니다.
- 0
- 1
- 4
질문&답변
무기마다 장착모션을 다르게 하고 싶은데 어떻게 처리하는 게 좋은가요?
안녕하세요.현재 설계상 각 무기별로 다른 애니메이션을 사용하도록 되어 있습니다.각 무기의 애니메이션 데이터 파일(DS1MontageActionData)에 사용할 애니메이션을 저장하여 관리하고 있으므로, 해당 데이터 파일에 필요한 애니메이션을 설정하고, 무기(DS1Weapon) 블루프린트 클래스에 이 데이터를 연결한 뒤 장착/해제 소켓(EquipSocketName, UnequipSocketName)을 지정해 주시면 될 것 같습니다.해당 내용은 이후 강의에서 차례로 나오는 내용이니 참고하시면 좋겠습니다.
- 0
- 2
- 35
질문&답변
타겟팅 시스템 강의 중 에러가 발생했어요
안녕하세요. 올려주신 이미지만으로는 정확한 확인이 어렵지만, 코드상으로는 특별히 잘못된 부분은 보이지 않습니다.만약 빌드가 정상적으로 진행된다면, 이는 비주얼 스튜디오의 인텔리센스 문제일 수 있습니다. 인텔리센스가 그다지 똑똑하지 않아서 실제 코드에는 문제가 없는데도 오류를 표시하는 경우가 종종 있습니다.빌드 시 특별한 경고나 오류 메시지가 없다면, 현재로서는 문제가 없다고 보시는 것이 좋겠습니다.
- 0
- 2
- 18