본문 바로가기

언리얼 엔진(Unreal Engine)

(19)
[UE5] CastleRPG(최종) - 완성 이 글은 특정 툴을 소개하거나, 사용법, 꿀팁 공유 등을 하는 것이 아닌, 협동 프로젝트 진행 과정을 단순하게 저장해놓은 글입니다. 이러 이러한 것들을 썼지~ 이러 이러한 과정이 있었지 ~ 라는 것을 기억해두기 위해 남겨놓은 글일 뿐입니다. 드디어! 3달이라는 시간 끝에 프로젝트가 완성되었습니다... 중간에 삽질도 많이 하고, 기획이 조금씩 바뀌면서 이제 이름을 CastleRPG라고 말할 수도 없겠네요.. 진행사항을 정리하지 않는 시간동안 UI, 상점, 강화, 채팅, 몬스터와의 전투, 보상, 몬스터와 캐릭터 스탯 등을 지정해주었습니다. 또한, 사용 아이템(회복 아이템, 마을 이동 아이템, 강화 아이템) 들을 추가하여 RPG 스럽게 만들어주었습니다. 아쉽게도 시간이 부족해서... 퀘스트나 스킬, 보스 등과..
[UE5] 비헤이비어 트리(Behavior Tree) 이 글은 언리얼엔진 5.0.3 버전을 기준으로 작성되었습니다. 다른 버전과는 차이점이 존재할 수 있습니다. 게임에서 인공지능은 여러 가지 역할을 맡습니다. 때로는 플레이어에게 도움을 주는 아군의 역할을 맡기도 하고, 때로는 플레이어를 공격하는 적군의 역할을 맡기도 합니다. 아군 AI와 적군 AI는 실제 플레이어가 플레이하는 것처럼 '똑똑한' 인공지능이 되어야 합니다. HP가 다 떨어져 가는데 바보같이 계속 맞기만 하거나, MP가 다 떨어졌는데 계속 스킬을 시전 하려는 인공지능이라면 사람들은 '멍청한' 인공지능이라고 평하면서 결국에는 게임성을 떨어뜨리게 됩니다. 이런 멍청한 AI를 피하고 똑똑한 AI를 만들기 위해서 여러가지 방법들이 많은데, 언리얼 엔진에서는 비헤이비어 트리(Behavior Tree)와 ..
[UE5] CastleRPG(5) - 몬스터 AI 이 글은 특정 툴을 소개하거나, 사용법, 꿀팁 공유 등을 하는 것이 아닌, 협동 프로젝트 진행 과정을 단순하게 저장해놓은 글입니다. 이러 이러한 것들을 썼지~ 이러 이러한 과정이 있었지 ~ 라는 것을 기억해두기 위해 남겨놓은 글일 뿐입니다. 시험 기간이 겹치고, 과제들을 처리하다 보니 진행사항을 기록하는 것이 많이 늦어졌습니다. 한달간 진행된 사항들을 요약하자면, 몬스터 AI의 구현입니다. 이런 느낌의..! 비헤이비어 트리를 제작하여 몬스터의 행동을 정의해주었습니다. 서브트리들은 각각, 너무 먼 거리를 이동해서 특정 영역을 벗어났으면 복귀하기, 순찰돌기, 플레이어 추격하기, 공격하기입니다. 협업자가 UI 제작을 진행하는 동안, 저희가 쓸 맵에서 네트워크 환경 상에서 잘 작동하는지를 테스트했습니다. 이 네..
[UE5] ApplyDamage가 두 번 적용될 때 네, 이번 글의 주제는 제목 그대로.. 블루프린트의 ApplyDamage라는 함수가 있습니다. 이녀석이 왜 2번 실행되서 짜증나게 만들까요..? 우선 ApplyDamage 함수를 봅시다. 바로 요놈이죠.. 프로젝트를 진행하다가 왜?만 수십번 외치게 만든 주인공입니다. ApplyDamage는 서버에서만 실행이 되어 특정 액터에게 데미지를 줍니다. 이녀석이 무슨 일이 있었냐면은.. 아래와 같이 공격을 하면, 가장 가까이에 있는 적에게 데미지를 주도록 하였습니다. 정확히는, 공격 애니메이션이 끝나갈 때 쯤 데미지를 주도록 했습니다. 저는 당연히 10의 데미지만 주고 끝날것이라고 생각했는데, 10의 데미지를 2번 주더군요? https://forums.unrealengine.com/t/blueprint-apply..
[UE5] CastleRPG (4) - 캐릭터 카메라 뷰와 공격 기능 설정 이 글은 특정 툴을 소개하거나, 사용법, 꿀팁 공유 등을 하는 것이 아닌, 협동 프로젝트 진행 과정을 단순하게 저장해놓은 글입니다. 이러 이러한 것들을 썼지~ 이러 이러한 과정이 있었지 ~ 라는 것을 기억해두기 위해 남겨놓은 글일 뿐입니다. 이전 주차까지 진행했던 캐릭터 리깅작업을 마치고 드디어 기능 구현을 시작했습니다. 진행하기에 앞서, 처음에 클릭 이동 방식으로 진행하기로 한 프로젝트는 갈아엎고(?) 키보드 조작으로 변경하기로 했습니다. (내려받았던 에셋의 기본 조작법이 키보드 조작이었기 때문에 변경하는 데 오래 걸리지 않았습니다.) 내려받은 에셋에서, 간단히 새로 추가해서 수정해준 것들을 나열하자면, 마우스 휠로 카메라 거리 조정하기, 화면 회전 최대, 최소 반경 지정하기 입니다. 카메라 거리 조절..
[UE5] Simple Move to Location이 클라이언트에서 작동하지 않을 때 탑-다운 마우스 클릭이동 게임에서, 내비게이션 메시를 깔고 경로 빌드까지 했지만, 클라이언트에서 Simple Move to Location이 작동하지 않으면? 여러 사이트를 뒤져가면서 해결 방법을 찾아봤지만, 이 방법이 제일 간단했습니다. 프로젝트 세팅에서 내비게이션 시스템 - 클라이언트 측면 내비게이션 허용을 체크해줍니다. Simple Move to Location이 빌드된 경로를 따라 이동하는데, 클라이언트 측에는 내비게이션이 깔려있지 않아서 발생한 것 같네요,, (물론 어디까지나 제 추측입니다.) 여러분들은 이걸로 고통받지 않으시길...
[UE5] CastleRPG (3) - 몬스터 리깅, NPC 리깅, 애니메이션 제작 이 글은 특정 툴을 소개하거나, 사용법, 꿀팁 공유 등을 하는 것이 아닌, 협동 프로젝트 진행 과정을 단순하게 저장해놓은 글입니다. 이러 이러한 것들을 썼지~ 이러 이러한 과정이 있었지 ~ 라는 것을 기억해두기 위해 남겨놓은 글일 뿐입니다. 저번주에 계속 하던 몬스터 리깅을 마무리 하는 시간! 저번주와 마찬가지로 블렌더를 이용해 몬스터 리깅 작업을 했지만, 일부 몬스터들은 인간의 본 구조와 비슷해서 믹사모의 오토리깅을 사용했습니다. https://www.mixamo.com/#/?page=1&type=Motion%2CMotionPack Mixamo www.mixamo.com 이렇게 오토리깅이 가능한 몬스터들은 애니메이션 제작도 믹사모에서 할 수 있으니 소요 시간이 더 줄어들었습니다. 하지만, 그렇지 않은 ..
[UE5] CastleRPG (2) - 몬스터 리깅 이 글은 특정 툴을 소개하거나, 사용법, 꿀팁 공유 등을 하는 것이 아닌, 협동 프로젝트 진행 과정을 단순하게 저장해놓은 글입니다. 이러 이러한 것들을 썼지~ 이러 이러한 과정이 있었지 ~ 라는 것을 기억해두기 위해 남겨놓은 글일 뿐입니다. 저번주에 모았던 에셋들이 리깅 과정을 거치지 않아서 스켈레탈 메시로 임포트할 수 없는 것들이 대부분이었습니다. 그래서 이번주는 이들이 애니메이션을 가질 수 있도록 블렌더로 직접 리깅하는 과정을 진행했습니다. * 리깅 : 오브젝트에 뼈대를 심어주는 작업 리깅을 하고 나면 여러 포즈를 취하면서 뼈대에 맞게 에셋이 움직이는 지를 확인해야합니다. 다 깔끔하게 움직여주면 좋겠지만, 아래 사진과 같이 원치 않은 부분도 같이 따라 움직입니다. 웨이트 설정으로 이런 부분을 깔끔하게..