Dev Log
-
1. 스켈레탈 메시만 교체하게 된 이유 저는 언리얼 엔진의 메타휴먼(Metahuman)을 활용하여 제가 만들 게임에 사용할 캐릭터를 만들고 싶었습니다. 하지만 메타휴먼 캐릭터는 언리얼 초보인 제게는 너무 복잡한 구조로 이루어져 있었고, 근본적으로 저는 IK 문제를 해결할 수가 없었습니다. 이러한 문제에 대해 며칠 동안 고생했지만 해결할 수 없었고, 결국에는 언리얼 엔진에서 제공하는 Mannequin 에셋을 활용하는 것이 더 낫다고 판단하였습니다. 1) IK가 어떤 문제를 일으켰는가? Mannequin 스켈레탈 메시는 몸 전체 하나로 이루어져 있지만, 메타휴먼 스켈레톤은 신체 부위별로 스켈레탈 메시가 나뉘어져 있었습니다. 저는 애니메이터가 아니기에 애니메이션을 만들 수 없고, 그에 따라 다른 애니메이션을 ..
[EliteAgents] #1. Mannequin Mesh를 메타휴먼으로 교체하기1. 스켈레탈 메시만 교체하게 된 이유 저는 언리얼 엔진의 메타휴먼(Metahuman)을 활용하여 제가 만들 게임에 사용할 캐릭터를 만들고 싶었습니다. 하지만 메타휴먼 캐릭터는 언리얼 초보인 제게는 너무 복잡한 구조로 이루어져 있었고, 근본적으로 저는 IK 문제를 해결할 수가 없었습니다. 이러한 문제에 대해 며칠 동안 고생했지만 해결할 수 없었고, 결국에는 언리얼 엔진에서 제공하는 Mannequin 에셋을 활용하는 것이 더 낫다고 판단하였습니다. 1) IK가 어떤 문제를 일으켰는가? Mannequin 스켈레탈 메시는 몸 전체 하나로 이루어져 있지만, 메타휴먼 스켈레톤은 신체 부위별로 스켈레탈 메시가 나뉘어져 있었습니다. 저는 애니메이터가 아니기에 애니메이션을 만들 수 없고, 그에 따라 다른 애니메이션을 ..
2023.08.21 -
어찌보면 여기까지가 이 프로젝트의 마지막 구현일 수 있겠네요. 오늘은 간단하게 만든 보스몹에 대해 얘기해보겠습니다. 보스몹은 게임에서 플레이어에게 위압감과 함께, 목표를 심어주는 역할을 합니다. 하지만, 제가 만든 보스몹은 그에 반해 너무 초라하네요...ㅎㅎ😂 시간 관계상 간단한 2가지 패턴만 적용시키기로 했었습니다. 1. 보스몹 "진광" 보스몹 "진광"의 패턴은 플레이어와의 거리에 따라 두 가지밖에 없습니다. 플레이어와의 거리가 멀 경우, 회전베기 동작을 두 번하며 플레이어에게 접근합니다. 플레이어와의 거리가 가까울 경우, 거대한 검을 소환하며 땅을 내려찍습니다. 일반 적 몬스터와 다르게, 다음 특별 사항 또한 존재합니다. 넉백 효과와 타격 애니메이션이 적용되지 않습니다. 공격을 시전 중일 때에는 무적..
[Charon] #Final. 간단한 보스몹 만들기 + 카메라 셰이킹(with 시네머신)어찌보면 여기까지가 이 프로젝트의 마지막 구현일 수 있겠네요. 오늘은 간단하게 만든 보스몹에 대해 얘기해보겠습니다. 보스몹은 게임에서 플레이어에게 위압감과 함께, 목표를 심어주는 역할을 합니다. 하지만, 제가 만든 보스몹은 그에 반해 너무 초라하네요...ㅎㅎ😂 시간 관계상 간단한 2가지 패턴만 적용시키기로 했었습니다. 1. 보스몹 "진광" 보스몹 "진광"의 패턴은 플레이어와의 거리에 따라 두 가지밖에 없습니다. 플레이어와의 거리가 멀 경우, 회전베기 동작을 두 번하며 플레이어에게 접근합니다. 플레이어와의 거리가 가까울 경우, 거대한 검을 소환하며 땅을 내려찍습니다. 일반 적 몬스터와 다르게, 다음 특별 사항 또한 존재합니다. 넉백 효과와 타격 애니메이션이 적용되지 않습니다. 공격을 시전 중일 때에는 무적..
2023.04.05 -
일반적인 게임에서는 플레이어를 방해하는 적(Enemy)들이 존재합니다. 이들은 플레이어를 공격하거나, 플레이어가 게임 진행을 원활하게 진행하는 것을 방해하는 목적을 가지고 있습니다. 이 게임에서도 적들이 존재하며, 각각 어떻게 구현했는지에 대해 얘기하는 시간을 가져보려고 합니다. 1. AI Navigation 기능을 통한 적의 맵 내 이동 기본적으로 적들은 맵 내에서 이동 가능한 지역만을 돌아다녀야 합니다. 이동 불가능한 지역을 뚫고 간다던가, 목표 지점을 앞에 벽이 있는데도 옆으로 돌아가지 않고 계속 벽을 향해 이동한다면 게임 진행이 안 될 것입니다. 또한, 자기가 이동 중인 방향을 바라보며 이동해야 하며, 방향 전환을 위해 회전을 했는데 어설프게 회전하는 것도 게임에 대한 몰입을 깰 것입니다. 이러한..
[Charon] #11. 다양한 적(Enemy)의 이동, 공격 구현하기일반적인 게임에서는 플레이어를 방해하는 적(Enemy)들이 존재합니다. 이들은 플레이어를 공격하거나, 플레이어가 게임 진행을 원활하게 진행하는 것을 방해하는 목적을 가지고 있습니다. 이 게임에서도 적들이 존재하며, 각각 어떻게 구현했는지에 대해 얘기하는 시간을 가져보려고 합니다. 1. AI Navigation 기능을 통한 적의 맵 내 이동 기본적으로 적들은 맵 내에서 이동 가능한 지역만을 돌아다녀야 합니다. 이동 불가능한 지역을 뚫고 간다던가, 목표 지점을 앞에 벽이 있는데도 옆으로 돌아가지 않고 계속 벽을 향해 이동한다면 게임 진행이 안 될 것입니다. 또한, 자기가 이동 중인 방향을 바라보며 이동해야 하며, 방향 전환을 위해 회전을 했는데 어설프게 회전하는 것도 게임에 대한 몰입을 깰 것입니다. 이러한..
2023.04.05 -
플레이어가 공격을 하거나 스킬을 사용하면, 그에 따라 화려하고 멋진 이펙트와 사운드가 나면서 유저가 게임에 더욱 몰입할 수 있게 해줍니다. 이펙트는 아티스트분들이 제작하여 주지만, 저는 아티스트가 없기 때문에 Unity Asset store에서 구매하여 사용하였습니다. 문제는 제가 이펙트를 적용하여 게임을 제작해 본 적이 없다는 것이지요. 공격 및 스킬 이펙트를 모션과 어떻게 싱크를 맞춰 자연스럽게 보이게 할 것이며, 피격 판정 또한 어떻게 하면 자연스럽게 들어갈까가 고민사항이었습니다. 이 부분에 대한 경험이 없다보니, 구글링도 해보고 유튜브도 찾아봤지만 죄다 아티스트를 위한 이펙트 제작 정보만 있었습니다... Unity Asset Store에 샘플 프로젝트라도 있었으면 뜯어봐서 참고해봤을텐데 찾진 못했..
[Charon] #10. "카론의 노" 무기 공격 및 스킬 구현하기플레이어가 공격을 하거나 스킬을 사용하면, 그에 따라 화려하고 멋진 이펙트와 사운드가 나면서 유저가 게임에 더욱 몰입할 수 있게 해줍니다. 이펙트는 아티스트분들이 제작하여 주지만, 저는 아티스트가 없기 때문에 Unity Asset store에서 구매하여 사용하였습니다. 문제는 제가 이펙트를 적용하여 게임을 제작해 본 적이 없다는 것이지요. 공격 및 스킬 이펙트를 모션과 어떻게 싱크를 맞춰 자연스럽게 보이게 할 것이며, 피격 판정 또한 어떻게 하면 자연스럽게 들어갈까가 고민사항이었습니다. 이 부분에 대한 경험이 없다보니, 구글링도 해보고 유튜브도 찾아봤지만 죄다 아티스트를 위한 이펙트 제작 정보만 있었습니다... Unity Asset Store에 샘플 프로젝트라도 있었으면 뜯어봐서 참고해봤을텐데 찾진 못했..
2023.04.04 -
1. 선입력(Input Buffer)이 필요한 이유 게임에서 로직의 실행 단위는 프레임(Frame)입니다. 게임을 하다보면 FPS(Frames Per Second)란 수치를 볼 수 있는데, 1초에 몇 프레임이 실행되는지를 나타냅니다. 좋은 고사양 장비인 경우에는 200 프레임 이상의 수치를 보여주곤 합니다. 우리 게임에서 대시 애니메이션이 30fps이 조금 넘습니다. 이것은 선입력을 통한 버퍼가 없다면, 플레이어가 저 짧은 시간 내에 타이밍을 맞추어 입력을 해야 한다는 의미가 됩니다. 대시를 하는데 그 정도의 집중력을 쓰게 되면 피로도가 빨리 쌓이게 되겠죠. 철권과 같은 격투 게임은 커맨드(Command)라는 게 존재하는데, 입력 버퍼가 존재하기에 편안하게 콤보를 입력할 수 있습니다. 우리 게임에도 이러..
[Charon] #9. 대시(Dash) 선입력(Input Buffer) 기능 추가하기1. 선입력(Input Buffer)이 필요한 이유 게임에서 로직의 실행 단위는 프레임(Frame)입니다. 게임을 하다보면 FPS(Frames Per Second)란 수치를 볼 수 있는데, 1초에 몇 프레임이 실행되는지를 나타냅니다. 좋은 고사양 장비인 경우에는 200 프레임 이상의 수치를 보여주곤 합니다. 우리 게임에서 대시 애니메이션이 30fps이 조금 넘습니다. 이것은 선입력을 통한 버퍼가 없다면, 플레이어가 저 짧은 시간 내에 타이밍을 맞추어 입력을 해야 한다는 의미가 됩니다. 대시를 하는데 그 정도의 집중력을 쓰게 되면 피로도가 빨리 쌓이게 되겠죠. 철권과 같은 격투 게임은 커맨드(Command)라는 게 존재하는데, 입력 버퍼가 존재하기에 편안하게 콤보를 입력할 수 있습니다. 우리 게임에도 이러..
2022.11.16 -
졸업 작품을 마무리하는 시즌이라 바빠서, 개발에만 몰두하다 보니 글을 쓸 시간이 없었네요. 마감이 다가오니, 효율적이고 좋은 소스 코드를 짜는 것과 시간 안에 마무리 하는 것 사이에서 타협을 해야 했습니다. 그러다 보니, 이게 좋은 방법인가를 고민할 겨를이 많이 없어 하드 코딩도 어느 정도 들어간 것 같습니다. 시간이 나면 차차 다시 고민해보며 리팩토링을 해보고 싶네요. 글을 안 쓴 지 오래 되었다 보니, 어디서부터 글을 써야할 지 모르겠더군요,,, 그래서 일단 최근에 한 것 중 글을 독립적으로 쓸 수 있는 부분부터 써보도록 하겠습니다. 1. 쿼터뷰(isometric view) 시점의 문제점 이 게임은 3D 로그라이크 핵 앤 슬래시 게임으로, 쿼터뷰 시점을 가지고 있습니다. 위에서 살짝 대각선 방향인 부..
[Charon] #8. 플레이어와 카메라 사이의 오브젝트 투명화하기졸업 작품을 마무리하는 시즌이라 바빠서, 개발에만 몰두하다 보니 글을 쓸 시간이 없었네요. 마감이 다가오니, 효율적이고 좋은 소스 코드를 짜는 것과 시간 안에 마무리 하는 것 사이에서 타협을 해야 했습니다. 그러다 보니, 이게 좋은 방법인가를 고민할 겨를이 많이 없어 하드 코딩도 어느 정도 들어간 것 같습니다. 시간이 나면 차차 다시 고민해보며 리팩토링을 해보고 싶네요. 글을 안 쓴 지 오래 되었다 보니, 어디서부터 글을 써야할 지 모르겠더군요,,, 그래서 일단 최근에 한 것 중 글을 독립적으로 쓸 수 있는 부분부터 써보도록 하겠습니다. 1. 쿼터뷰(isometric view) 시점의 문제점 이 게임은 3D 로그라이크 핵 앤 슬래시 게임으로, 쿼터뷰 시점을 가지고 있습니다. 위에서 살짝 대각선 방향인 부..
2022.11.16 -
저번 글에서 확장성을 고려하여 무기 시스템의 기반을 만들었었습니다. 이제는 진짜 무기의 공격 구현을 해볼 차례네요. 공격 키를 입력 받아야 하니 새로운 입력 키 바인딩이 필요할 것이고, 단순히 눌렀을 때냐 아니면 누르고 유지하고 있을 때냐 등등의 상호작용도 추가해줘야 할 겁니다. 우선 입력 처리부터 먼저 해보도록 하겠습니다. 1. 공격 키 바인딩 및 입력 분기 처리하기 New Input System의 "상호 작용(Interaction)" 공격은 마우스 좌 클릭으로 입력을 받습니다. Player Input Actions에 들어가서 해당 키 바인딩을 해주도록 하죠. 왼쪽 마우스 버튼을 바인딩 해주었습니다. 그런데 Interactions에 Hold와 Press가 추가한 걸 볼 수 있는데요. 상호작용(Inter..
[Charon] #7. 무기 기본 3타 콤보 공격 구현하기 (긴 글 주의)저번 글에서 확장성을 고려하여 무기 시스템의 기반을 만들었었습니다. 이제는 진짜 무기의 공격 구현을 해볼 차례네요. 공격 키를 입력 받아야 하니 새로운 입력 키 바인딩이 필요할 것이고, 단순히 눌렀을 때냐 아니면 누르고 유지하고 있을 때냐 등등의 상호작용도 추가해줘야 할 겁니다. 우선 입력 처리부터 먼저 해보도록 하겠습니다. 1. 공격 키 바인딩 및 입력 분기 처리하기 New Input System의 "상호 작용(Interaction)" 공격은 마우스 좌 클릭으로 입력을 받습니다. Player Input Actions에 들어가서 해당 키 바인딩을 해주도록 하죠. 왼쪽 마우스 버튼을 바인딩 해주었습니다. 그런데 Interactions에 Hold와 Press가 추가한 걸 볼 수 있는데요. 상호작용(Inter..
2022.10.06 -
로그라이크 게임이니, 무기를 사용하여 몬스터들을 때려잡을 수 있어야 할 겁니다. 그만큼 무기라는 것이 우리 게임에서 핵심이 된다는 얘기죠. 우선 우리 게임의 기본 무기인 "카론의 노(Charon's Paddle)"로 기능을 구현해볼 겁니다. 하지만 이번 글에서는 그 기반만 먼저 다져볼까 해요! 솔직히 말해서 무기가 노처럼 생기진 않았습니다. 구매했던 무기 에셋 중에 그나마 노 같이 생긴 걸로 쥐어 주었어요... 그리고 게임 그래픽이 너무 밋밋한 것 같아서 URP(Universal Render Pipeline)으로 프로젝트를 업그레이드 하고 싶었는데, 커스텀 쉐이더(Custom shader)는 URP Shader로 자동 변환이 안 되더라구요. 현재 구입했던 에셋 중에 물과 검기 이펙트 에셋이 커스템 쉐이더..
[Charon] #6. 휴머노이드 애니메이션 수정과 무기 탈장착 시스템 기반 만들기로그라이크 게임이니, 무기를 사용하여 몬스터들을 때려잡을 수 있어야 할 겁니다. 그만큼 무기라는 것이 우리 게임에서 핵심이 된다는 얘기죠. 우선 우리 게임의 기본 무기인 "카론의 노(Charon's Paddle)"로 기능을 구현해볼 겁니다. 하지만 이번 글에서는 그 기반만 먼저 다져볼까 해요! 솔직히 말해서 무기가 노처럼 생기진 않았습니다. 구매했던 무기 에셋 중에 그나마 노 같이 생긴 걸로 쥐어 주었어요... 그리고 게임 그래픽이 너무 밋밋한 것 같아서 URP(Universal Render Pipeline)으로 프로젝트를 업그레이드 하고 싶었는데, 커스텀 쉐이더(Custom shader)는 URP Shader로 자동 변환이 안 되더라구요. 현재 구입했던 에셋 중에 물과 검기 이펙트 에셋이 커스템 쉐이더..
2022.10.05