[언리얼엔진] Physics Asset
·
언리얼 엔진
1. Physics Asset의 역할가끔 3D 모델 파일을 언리얼엔진에 Import 해보면 Skeletal Mesh, Skeleton 이외에 "Physics Asset"도 같이 생성되는 것을 알 수 있는데요 ! Mesh의 Collision 영역을 정교하게 설정해주는 아주 고마운 녀석입니다. 이외에도 Bone 마다 질량과 물리 속성을 설정해줄 수 있기 때문에 자연스러운 래그돌, 물리 시뮬레이션이 가능하다고 해요. 2. Physics Asset (X) Physics Asset을 사용하지 않는 경우에는 따로 Sphere, Box, Capsule Collision을 추가해서 충돌을 인식할 수 있도록 해줘야 합니다. 이 경우에는 허공에 총을 쏴도 맞았다고 인식을 해서 몬스터에게 데미지가 들어가는 상황이 발생하겠죠..
[TheFourthDescendant] 05. 적 NavLink로 점프 구현
·
언리얼 엔진/[팀프로젝트] The Fourth Descendant
프로젝트 기간 : 25.02.17 ~ 25.03.05 (약 3주) 1. 개요생각해보니까 플레이어가 높은 지대로 올라가면 적은 어떻게 동작할까 궁금하더라구요. 바로 테스트해봤죠 ! 뭔가 제가 그렸던 그림은 부자연스럽더라도 적이 알아서 올라오는 그림이었는데, 결과는 저에게 고민거리를 던져주었습니다 ..이게 뭐냐구요 ㅠㅠ .. 그나마 못 오는 건 이해하겠는데 왜 공격 모션이 재생되는 걸까요 .. 바로 알아보죠 !!2. 원인이것저것 자료 조사를 해보니 적이 도달할 수 없는 영역으로 이동 했을 때에 MoveTo가 이동을 완료했다는 Notify를 보낸다고 하더라구요. 때문에 해당 Notify를 받고 "이동에 성공했구나 !"라고 판단을 하고 공격 상태로 전이가 된 것이었습니다 ..3. 해결 방법그렇다면 적이 Move..
[TheFourthDescendant] 04. 적 충돌 무시 구현
·
언리얼 엔진/[팀프로젝트] The Fourth Descendant
프로젝트 기간 : 25.02.17 ~ 25.03.05 (약 3주) 1. 개요근거리, 원거리 적 구현을 마무리 하고 다음 구현으로 넘어가기 위해 적 AI에 대해 마무리 구현을 진행했습니다. 정신없이 개발을 하다보니 포스트가 늦었네요 ㅎㅎ.. 4일동안 꽤 많은 작업을 진행했는데 그 중에서도 적 AI 마무리 구현에 대해서 포스트를 진행할 예정입니다.2. 적 - 플레이어 충돌 무시 처리이전에는 플레이어와 적 사이에 충돌을 처리하게 되어 있어서 플레이어가 다수의 적을 마주했을 때 가로막히는 현상이 있었습니다. 사용자 입장에서 조금 답답함을 느낄 수 있겠다 싶어서 플레이어와 적 사이의 충돌을 무시하도록 수정해주었습니다 ! 플레이어가 적과 충돌을 무시하고 통과하는 모습을 볼 수 있습니다 ~~3. 문제 발생충돌 무시 ..
[TheFourthDescendant] 03. 근거리 적 AI 구현
·
언리얼 엔진/[팀프로젝트] The Fourth Descendant
프로젝트 기간 : 25.02.17 ~ 25.03.05 (약 3주) 1. 개요오늘은 근거리 적 AI를 구현하는 게 목표였습니다. 근거리는 확실히 원거리에 비해 쉽게 구현할 수 있었어요. 어떻게 구현했는지 천천히 살펴봅시다 !2. 근거리 적 AI 분석다행히도 Spawn된 이후에 정찰하는 상태 없이 바로 플레이어에게 돌진하더라구요 ! 덕분에 Patrol 상태를 구현하지 않고 신속한 개발을 진행할 수 있었습니다. Spawn 애니메이션이 끝나면 Move 애니메이션으로 전이되고, 플레이어의 일정 반경 내로 도달하면 Attack 애니메이션으로 전이하면 끝이였습니다.Attack 애니메이션이 재생되면서 적이 이동하지 않게끔 bool 값만 잘 설정해주면 될 것 같아보입니다.3. 근거리 적 Behavior TreeSpawn..
[TheFourthDescendant] 02. 원거리 적 AI 구현
·
언리얼 엔진/[팀프로젝트] The Fourth Descendant
프로젝트 기간 : 25.02.17 ~ 25.03.05 (약 3주) 1. 개요오늘은 "적 AI" 중에서도 원거리 적의 Behavior Tree를 설계하고 구현까지 해봤습니다 ! 매도 먼저 맞는 게 낫다 라는 말처럼 어려운 부분부터 해결하고자 했거든요. 원거리 적의 BT를 설계하는 과정에서 느낀 점인데, 게임 개발에서 기획이 정말 중요한 포지션이구나 싶더라구요. BT 설계에 앞서 퍼스트디센던트를 직접 플레이 해보면서 과연 원거리 적들은 어떤 방식으로 움직이고 공격을 할까 분석을 해봤습니다. 알다가도 모를듯한 패턴으로 공격과 이동을 반복하는데 .. 정말 기획자가 있었더라면 .. 싶은 순간이었어요 .. 기획자분이 기획하신대로 구현만 하면 되는 건데 .. 원거리 적의 패턴을 분석하는 데에 시간을 좀 쏟은 것 같습..
[TheFourthDescendant] 01. 퍼스트 디센던트 모작의 시작
·
언리얼 엔진/[팀프로젝트] The Fourth Descendant
프로젝트 기간 : 25.02.17 ~ 25.03.05 (약 3주)1. 개요언리얼엔진 팀프로젝트를 진행하면서 슈터 게임을 개발하려고 해요 ! 기획하는 데에 시간을 쏟기 보다는 개발 실력을 향상하는 데에 목표를 두고 있었기 때문에 모작을 진행하기로 했어요. 모작의 대상은 무려 넥슨의 "퍼스트 디센턴트" 입니다 ! 과연 3주라는 짧은 기간동안 대기업에서 개발한 게임을 따라 만들 수 있을까 하는 망설임이 있었지만, 평소 관심이 있었던 게임이기도 해서 한 번 시도해보기로 했어요. 2. 설계한 게임 흐름저희가 설계한 게임의 흐름은 간단해요 ! 시간이 3주 정도밖에 없기 때문에 과감하게 포기할 부분은 포기하고, 할 수 있는 부분을 우선으로 개발하는 것이 중요했습니다. 따라서 저희 팀은 초반에 잡몹을 잡는 스테이지로 ..
[언리얼엔진] Socket 활용해서 MuzzleOffset 찾기
·
언리얼 엔진/트러블슈팅
1. Socket 추가 총구에서 총알이 발사되는 로직을 구현해야 하는데요. 애니메이션이 재생되면 총구의 위치가 실시간으로 변하기 때문에 총구의 위치를 추적하는 로직이 필요합니다.따라서 Skeletal Mesh에서 총구에 Socket을 추가해줬습니다 ! 그러면 블루프린트나 소스코드에서 이 Socket의 위치를 받아와야겠죠 ! (1) 총구 위치 받아오기루트 컴포넌트에서 Socket을 이름으로 받아온 후에 플레이어의 위치와 Socket의 위치의 차를 구해줬습니다 !정상적으로 로직이 작동하는지 확인하기 위해서 Debug Line을 그려봤어요. (2) Root Component에서 받아온 결과Socket을 설정해줬음에도 총알이 총구에서 발사되는 것이 아닌 적의 중심점에서 발사되고 있습니다 ㅠㅠ (3) 원인왜 그럴..
[언리얼엔진] AI 액터 회전 시 끊기는 문제
·
언리얼 엔진/트러블슈팅
1. 끊기는 현상AI 액터가 플레이어를 추적해 이동하는 중인데요 ! 플레이어를 따라 요리조리 이동하는 과정에서 회전을 하는 과정에서 뚝뚝 끊기는 모습을 볼 수 있습니다. (1) 원인 AI 액터는 Character 클래스를 상속받게 구현을 했기 때문에 Character Movement 컴포넌트를 활용할 수 있습니다.Character Movement 속성을 통해 회전을 Controler에서 처리하도록 할 수 있습니다. 해당 속성은 컨트롤러의 회전 값을 캐릭터가 즉시 따라가기 때문에 끊기는 것처럼 보일 수 있는데요 ! (2) 해결 방법 따라서 Use Controller Rotation Yaw를 비활성화한 후에 Rotation Rate 탭에서 "Orient Rotation to Movement"를 활성화해주어야..