[언리얼5] 멀티플레이 비대칭 PvP 게임 :: 가디언 앤 시커 (Guardian And Seeker)
·
Dev./프로젝트
📝 프로젝트 개요프로젝트명: 가디언 & 시커 (Guardian & Seeker)장르: 비대칭 멀티플레이어 액션 (4:1)개발 기간: 2025.05.07 ~ 2025.07.02 (약 2개월)엔진: Unreal Engine 5.4협업 도구: Confluence, Slack, Notion, Figma, Discord, GitHub🌏 게임 세계관 & 내러티브미지의 고대 유적 던전, 가디언은 RTS 시점에서 몬스터, 함정 오브젝트를 배치해 던전을 수호합니다. 반면 네 명의 시커는 TPS 시점으로 침투하여 가디언의 전략을 뚫고 크리스탈을 탈취해야 합니다. 시커가 보스룸 포탈을 터치하면 가디언은 보스 몬스터에게 빙의하여 시커와 동일한 TPS 시점으로 PvP를 하게 됩니다.🌟 주요 특징1대 4, 비대칭 전투 + ..
Git 크래시 관련 트러블슈팅 (GitKraken Blame 기능)
·
Dev./UE 언리얼 엔진
⭐요약 원인:동일 파일 동시 수정: (무기 히트 사운드를 만들기 위해) 나는 무기 클래스 자체를 플레이어 무기로 인지하고 수정했던 클래스들은 사실 몬스터도 쓰고 있는 무기 클래스였다(애초에 해당 클래스가 OO님이 만드신 코드ㅠㅠ)…OO님께서 ‘몬스터 무기를 캐릭터와 같이 사용하기 위해’ 동시에 수정하고 Dev에 먼저 푸시했다.병합 충돌 및 오류: 동시 수정으로 인한 병합 충돌이 제대로 해결되지 않거나, 해결 과정에서 로직상 오류가 발생하여 크래시로 이어졌다.해결 과정:문제 발생 가능성에 대비하여 Dev 브랜치와 작업 브랜치(Feature/Sound)를 새로운 브랜치로 백업했다.크래시를 유발한 병합 커밋을 Revert 기능을 사용하여 되돌렸다. GitKraken의 Blame 기능::🔹특정 Blame 정보..
[UE5 + Wwise] 표면 기반 발소리 시스템 구현 가이드
·
Dev./Wwise 와이즈
1. 목표캐릭터가 밟는 바닥 재질(흙·금속·잔디·돌)에 따라 서로 다른 발소리를 재생하고, 3D 공간감과 동시성(Concurrency)을 조정해 현실적인 청각 피드백을 제공한다.2. 구현 순서2-1. Physical Material 준비 단계 작업 팁 ①Physical Material 생성 후 Surface Type 지정“Surface_Dirt” 등 직관적 네이밍②각 스태틱/랜드스케이프 메시에 재질 → 물리 재질 매핑월드 아웃라이너에서 다중 선택 후 일괄 적용③Project Settings → Physics → Enable Physical Material Output 체크Blueprint에서 Hit Result.Phys Mat 바로 읽는다2-2. Wwise Switch Group 구성Switch Gr..
X-RAY 머티리얼 구현(스텐실 버퍼 활용)
·
Dev./그래픽스 Graphics
1. 문제 정의가디언 플레이어(RTS 모드)탑뷰(≈80° 경사) 카메라로 벽과 천장을 뚫고 내부 캐릭터(몬스터)가 보여야 한다.시커 플레이어(TPS 모드)3인칭 시점에서 천장이나 벽이 뚫려서는 안 된다.이 두 뷰를 동시에 지원하려면 카메라 투영 방식과 머티리얼 처리 로직을 분리하여 구현해야 한다.2. 카메라 설정 최적화먼저 카메라 투영 방식을 결정한다.가디언 뷰Perspective 모드로 설정한다.테스트하면서 디테일을 조정한다.시커 뷰Perspective 모드로 설정한다.벽 높이가 기본 530 UU일 때 낮게 느껴지므로, 최소 1.25배(≈660 UU)로 스케일을 조정한다.3. 커스텀 뎁스 스텐실(Buffer) + 포스트프로세스1. 프로젝트 세팅Custom Depth Stencil Buffer 활성화Pr..
용암 & 화염 방사 함정 점화 VFX
·
Dev./그래픽스 Graphics
1. 개요목표:플레이어가 용암 발판 위에 진입·이탈할 때, 발밑에서 용암 불기둥(Flame Jet) 이펙트를 자동으로 켜고 끄기2. Niagara 이펙트 준비Niagara System 생성에디터에서 Add → Niagara Particle System기존 용암·화염 방사 이펙트(Template) 선택 후 NS_LavaBurst 등 이름 지정Auto Activate 해제Details → System Settings → Activation → Auto Activate 체크 해제파라미터 튜닝Spawn Burst: 순간 다수 파티클Lifetime: 0.5–1.0초 (짧고 강렬하게)Velocity: 위쪽으로 강한 초기 속도Color/Size: 용암 느낌의 붉은빛·스파크 텍스처 적용3. BP_Merci 컴포넌트 설..
상태에 따른 음향 변화
·
Dev./Wwise 와이즈
1. 개요목표: 게임 상태(Normal, Win, Lose)에 따라 배경음악·효과음을 즉시 또는 페이드로 전환2. Wwise Switch Container 설정Switch Container 생성 → 상태별 Switch Group 지정State Group: GameStateStates:Normal (기본 BGM)Win (승리 BGM)Lose (패배 BGM) RTS_사운드_구현화살_사운드_만들기TransitionsImmediate: 즉시 전환Fade In/Out: 0.5–1.0초로 자연스럽게 크로스페이드 상태에_따른_음향_변화상태에_따른_음향_변화3. Interactive Music Hierarchy 적용Music Playlist Track에 Switch Container 배치Game Syncs 탭에서 상태..
RTS 사운드 구현
·
Dev./Wwise 와이즈
1. 개요목표: RTS 모드에서 유닛별 클릭 및 이동 사운드 구현, TPS 시점에서도 들리도록 설정2. 리스너 및 초기 설정오디오 리스너는 카메라에 부착하여, RTS 모드에서의 사운드가 플레이어 청취 위치에 맞춰 재생되도록 함Monster 클래스(AGS_Monster)에 ClickSoundEvent, MoveSoundEvent 프로퍼티 선언 및 AkComponent에 이벤트 연결3. 컨트롤러 측 입력 처리오른쪽 마우스 클릭 시 선택된 유닛들의 이동 처리각 유닛에 대해 AI 컨트롤러 설정 및 이동 목표 위치 설정유닛의 MoveSoundEvent를 통해 이동 사운드 재생클릭 시에도 ClickSoundEvent를 동일한 방식으로 호출4. 유닛 초기화GS_SmallClaw 유닛의 경우, SmallClawClic..
화살 VFX & 사운드
·
Dev./UE 언리얼 엔진
화살 VFX 구현 (NS Ribbon Renderer)1. 개요목표: 화살이 발사될 때 공기 흐름을 따라 리본(ribbon) 형태 이펙트를 붙여 순간 궤적을 시각화2. Niagara Ribbon Emitter 설정Emitter 생성 → Template “Ribbon” 기반 선택Spawn Rate: 0, Spawn on Event 모듈 추가 → FireEvent 트리거 시 1회씩 방출Ribbon RendererMax Tessellation 증가 (8–16)로 부드러운 곡선 표현Width: 5–10 유닛, UV Tiling: 속도 기반으로 늘이기3. 화살 액터 연동BP_ArrowNiagaraComponent 추가 → NS_ArrowTrail 할당, Auto Activate 해제BeginPlay 또는 Fire..
Wwise 오디오 최적화
·
Dev./Wwise 와이즈
1. 개요목표:반복 루프(Loop)로 인한 CPU·메모리 과다 사용 문제 해결게임 루프 최적화 설계프로파일러 활용 및 비동기 로딩 적용으로 프레임 드롭 방지2. 주요 이슈 & 원인 분석 이슈 원인 도끼 함정 루프 사운드 재생 시 렉 발생Loop 처리로 사운드 인스턴스가 매 프레임 재생→삭제를 반복하며 리소스 과다 소모게임 루프 내 오디오·오브젝트 매 프레임 생성·삭제상태 변화 없이도 매 틱마다 처리 로직이 호출되어 CPU 사용률 급증 3. 해결 방법Trigger 방식으로 전환Loop 컨테이너 대신, Sequence Container나 One–Shot Trigger 방식을 사용해 한 번만 재생블루프린트에서 조건 발생 시 PostEvent 호출프로파일러 활용언리얼 "Stat Audio" / Wwise "P..
언리얼 엔진 오디오 리스너 세팅(블루프린트)
·
Dev./UE 언리얼 엔진
1. 개요목표:멀티플레이어 환경에서 각 클라이언트별 리스너 적용Wwise와 UE 간 자연스러운 거리 기반 어테뉴에이션(Audition Attenuation) 구현글로벌 vs 로컬 사운드 분리로 밸런스 최적화2. 멀티 리스너 & 성능 고려사항Multiple Listeners각 클라이언트는 자신의 PC에서만 리스너가 활성화되며, 서버에서는 무시된다.Performance어테뉴에이션 커브가 복잡할수록 CPU 부담 증가 → 가능한 심플한 커브 사용 권장.Global vs Local배경음악 등 글로벌 사운드는 어테뉴에이션 끄기효과음만 거리 기반으로 처리하면 사운드 밸런스 조절이 용이3. Wwise 어테뉴에이션 가이드3.1 거리 단위UE4/5의 1 unit = 1 cmWwise 프로젝트의 Distance Unit도 ..