본문 바로가기

언리얼 엔진(Unreal Engine)/UE5

(7)
[UE5] 비헤이비어 트리(Behavior Tree) 이 글은 언리얼엔진 5.0.3 버전을 기준으로 작성되었습니다. 다른 버전과는 차이점이 존재할 수 있습니다. 게임에서 인공지능은 여러 가지 역할을 맡습니다. 때로는 플레이어에게 도움을 주는 아군의 역할을 맡기도 하고, 때로는 플레이어를 공격하는 적군의 역할을 맡기도 합니다. 아군 AI와 적군 AI는 실제 플레이어가 플레이하는 것처럼 '똑똑한' 인공지능이 되어야 합니다. HP가 다 떨어져 가는데 바보같이 계속 맞기만 하거나, MP가 다 떨어졌는데 계속 스킬을 시전 하려는 인공지능이라면 사람들은 '멍청한' 인공지능이라고 평하면서 결국에는 게임성을 떨어뜨리게 됩니다. 이런 멍청한 AI를 피하고 똑똑한 AI를 만들기 위해서 여러가지 방법들이 많은데, 언리얼 엔진에서는 비헤이비어 트리(Behavior Tree)와 ..
[UE5] ApplyDamage가 두 번 적용될 때 네, 이번 글의 주제는 제목 그대로.. 블루프린트의 ApplyDamage라는 함수가 있습니다. 이녀석이 왜 2번 실행되서 짜증나게 만들까요..? 우선 ApplyDamage 함수를 봅시다. 바로 요놈이죠.. 프로젝트를 진행하다가 왜?만 수십번 외치게 만든 주인공입니다. ApplyDamage는 서버에서만 실행이 되어 특정 액터에게 데미지를 줍니다. 이녀석이 무슨 일이 있었냐면은.. 아래와 같이 공격을 하면, 가장 가까이에 있는 적에게 데미지를 주도록 하였습니다. 정확히는, 공격 애니메이션이 끝나갈 때 쯤 데미지를 주도록 했습니다. 저는 당연히 10의 데미지만 주고 끝날것이라고 생각했는데, 10의 데미지를 2번 주더군요? https://forums.unrealengine.com/t/blueprint-apply..
[UE5] Simple Move to Location이 클라이언트에서 작동하지 않을 때 탑-다운 마우스 클릭이동 게임에서, 내비게이션 메시를 깔고 경로 빌드까지 했지만, 클라이언트에서 Simple Move to Location이 작동하지 않으면? 여러 사이트를 뒤져가면서 해결 방법을 찾아봤지만, 이 방법이 제일 간단했습니다. 프로젝트 세팅에서 내비게이션 시스템 - 클라이언트 측면 내비게이션 허용을 체크해줍니다. Simple Move to Location이 빌드된 경로를 따라 이동하는데, 클라이언트 측에는 내비게이션이 깔려있지 않아서 발생한 것 같네요,, (물론 어디까지나 제 추측입니다.) 여러분들은 이걸로 고통받지 않으시길...
[UE5] 자동차 만들기 - 언리얼 엔진 비히클(Vehicle) 언리얼 엔진에는 카오스 비히클 플러그인(Chaos Vehicle Plugin)이라는 플러그인이 있습니다. 이 플러그인은 자동차나 오토바이 구분없이 차량 시뮬레이션을 해주는 플러그인입니다. 비히클을 구성하는 에셋은 다음과 같습니다. 스켈레탈 메시 피직스 에셋 애니메이션 블루프린트 비히클 블루프린트 휠 블루프린트 엔진 토크 커브를 표현할 플로트 커브 에셋 시작하기에 앞서 프로젝트에서 Chaos Vehicle Plugin 플러그인을 활성화시킨 후 프로젝트를 재시작해줍니다. 카오스 휠 블루프린트 차량은 대부분 2개 이상의 바퀴로 구성되어있습니다. 보통 엔진이나 브레이크에 영향을 받는 바퀴와, 구르기만 하는(?) 바퀴로 구분됩니다. 이러한 여러 바퀴들을 원하는 대로 조작할 수 있도록 도와주는 블루프린트가 카오스 ..
[UE5] 멀티 유저 편집(Multi-User Editing) 프로젝트들은 대부분 혼자서 만들지 않습니다. 게임의 경우도 마찬가지입니다. 맵 제작자, 캐릭터 디자이너, 서버 프로그래머 등등, 여러 사람들이 모여 협업을 합니다. 언리얼 엔진에서는 이 협업을 위한 플러그인이 있습니다. 그것이 오늘 소개해드릴 Multi-User Editing 플러그인입니다. 이 방법을 사용하기에 앞서, 다음과 같은 조건이 필요합니다. 1. 모든 컴퓨터가 같은 버전의 언리얼 엔진 사용 2. 모든 컴퓨터가 같은 LAN 또는 VPN에 연결 3. 모든 컴퓨터가 같은 프로젝트와 콘텐츠를 소유 Multi-User Editing 플러그인 활성화 편집 - 플러그인을 눌러서 플러그인 브라우저를 엽니다. 그리고 Multi-User Editing 플러그인을 활성화시킵니다. 활성화를 시키면 엔진을 재시작할 ..
[UE5] 패키징 오류 발생 시 시도할만한 방법들 패키징을 돌리고 여러 PC에서 실험해보고자 패키징을 돌렸는데... 이렇게 오류가 떠버리면 정신이 순간 멍해집니다. 이 오류만 저도 오랫동안 가지고 갔는데요... 제가 이때까지 시도했던 방법들을 공유해드리겠습니다. 1. C++ 파일 재검토 C++ 코드를 작성하다가 생긴 오류들로 인해 패키징이 실패한 경우가 있었습니다. 잘못 사용한 함수가 있는지, 엉뚱한 곳을 참조하는 것이 아닌지 등을 재검토해보시길 바랍니다. 2. C++ 파일 삭제 후 재작성 검토를 해봐도 달라지지 않을 경우에는 C++ 파일들을 삭제하고 다시 작성해보세요. 프로젝트 폴더 내에 있는 Binaries 폴더도 지우셔야합니다. 저같은 경우에도 저 Binaries 폴더를 삭제하지 않아서 이미 컴파일된 함수에 대한 정보가 남아있던 상태였습니다. Bi..
[UE5] 언리얼 엔진 5 데디케이티드 서버 Assertion failed 이번에 언리얼 엔진 5가 정식 출시되었습니다. 기존 4.27 버전과의 호환성을 유지한다고도 밝혀서 저는 5.0 버전으로 업그레이드를 진행했습니다. 그리고 테스트를 위해 프로젝트를 만들고 데디케이티드 서버를 만들어 보았는데... 이쁜 빨간 글씨가 저를 맞이해주더군요. 이 오류가 발생했을 때에 대한 해결방법을 공유해보도록 하겠습니다. 먼저, 캐릭터의 블루프린터를 엽니다. 컴포넌트에서 캐릭터 메시를 눌러주세요. 위와 같이 디테일 창에서 애님 클래스를 없음(None)으로 설정하시고 다시 패키징을 진행하시면 더 이상 오류가 뜨지 않을 것입니다.. 이 해결법은 단점이, 캐릭터 애니메이션이 사라져서 캐릭터가 T 모양을 유지한다는 점입니다... 더 좋은 해결방법이 있는지와 이 오류가 왜 생기는지에 대해 더 알아봐야할 ..