프로젝트 (17) 썸네일형 리스트형 피직스 머터리얼을 이용한 사운드 변경 프로젝트에서 사용하는 레벨에는 잔디가 깔려있는 바깥과 나무 바닥으로 되어 있는 호러 멘션이 존재한다. 발걸음에 대한 소리를 출력할 때에 잔디와 나무에 따라 다르게 소리를 내도록 만들었다. 1. 프로젝트 셋팅에서 Surface 설정으로 Grass 와 Wood 를 추가하고 각 표면에 맞는 피직스 머터리얼들을 생성한다.2. 폴리지 모드에서 사용된 폴리지 레이어를 확인하고 원하는 피직스 머터리얼을 설정한다.3. 멘션에 나무 바닥 메쉬들에도 Wood 피직스 머터리얼을 설정한다. 4. 플레이어가 움직일 때 걷는 순간 마다 AnimNotify 로 아래로 라인트레이스하고 HitActor 의 Surface 마다 사운드를 교체한다. 플레이어 캐릭터 빙의 변경 - (사람, 몬스터, 관전자) 게임 Pollute 는 플레이어가 사람, 몬스터, 관전자 3가지 캐릭터를 사용한다.컨트롤러는 3가지 캐릭터에 대한 ChangePossess 를 진행해야한다. 구현하면서 배운 것과 놓친 부분들1. Possess/UnPossess 는 항상 Server 에서 진행한다.2. 리플리케이트 되어 있는 액터의 생성과 파괴가 서버에서 이루어진다면 동기화된다.3. 클라에서는 캐릭터 생성하면서 Possess 시 Beginplay에서 컨트롤러를 정상적으로 가져올 수 있지만 Server 에서는 안된다. 안전하게 PossessedBy 함수를 사용한다.4. 사람이 몬스터로 변한다면 PlayerHUD 를 Off 해야하며 만약 아이템을 들고 있다면 Detach 해야한다.5. 몬스터로 변했다면 다시 무작위로 남아있는 사람 플레이어에게.. 플레이어 블렌드 스페이스 변경 & 속도 동기화 - 스테미나 블렌드 스페이스사람 캐릭터의 움직임을 좀 더 자연스럽게 바꾸기 위해 블렌드 스페이스를 추가하였다.1인칭 게임을 제작 중이기 때문에 Strafe 형식으로 만들었다. @ . 리플리케이트를 이용한 동기화라면 Server 에서 변수나 객체를 바꾸어주어야한다.@ . 액터의 RPC 호출에 가장 중요한 것은 Owner 이다. 그리고 소유권을 가질 수 있냐이다. 속도 동기화속도 동기화 시 설계가 다른 방법이 충분히 있을 것 같긴한데 일단 구현한대로 두어야할듯. Replicated : RPC 구현된 속도 동기화 : MaxWalkSpeed 를 조절하고 모든 서버/클라가 이를 동기화한다.기본 움직임에는 WalkSpeed 값으로 설정되지만 Shift 를 누르면 RunSpeed 로 설정 되어야 한다. 기본적으로 MaxWal.. 저주 및 몬스터 네트워크 동기화 프로젝트 중 저주 및 몬스터 동기화에 대한 로직을 정리. 저주 적용 및 옮기기, 몬스터 행동 및 Possess 동기화 * 현재 프로젝트 내에서 설계한 스팀 세션을 생성 및 참여 했을 때에도 저주와 몬스터에 대한 네트워크 동기화에 문제가 없음을 확인 저주 1. 사람 플레이어들에게 랜덤하게 적용.2. 플레이어가 죽거나 괴물이 되면 다시 랜덤하게 플레이어에게 적용3. 저주 적용 상태의 플레이어는 다른 사람에게 저주 넘기기 가능4. 저주가 걸린 로컬 플레이어에게만 개별적인 임시 UI 보이기 위의 4가지 부분에서 네트워크 동기화 성공 저주 적용 시점과 옮기기까지 과정1. 저주 객체를 GameState 에서 관리했다. GameState 는 각 pc 별로 1씩 존재 가능하기 때문.GameState 에서.. 보스 몬스터 제작 전체 코드 보스몬스터 https://github.com/petemus/ShootingGame3D/blob/master/Source/ShootingGame3D/Enemy/BossEnemy.cpp SplineComponenthttps://github.com/petemus/ShootingGame3D/blob/master/Source/ShootingGame3D/InGameFunc/SplineActorComponent.cpp Spline 을 이용한 점프 공격일반 점프 공격 대신 미리 공격 위치를 알려주면서 점프 경로를 보여주어 플레이어가 대처 할 수 있는 패턴을 만들기 위해 Spline을 사용해 보았습니다.프로젝트가 끝나고 나서 깨달은 것이 있는데 SplineComponent 는 원래 제공하고 있으니SplineC.. 부록 - 모작2 대쉬 잔상 구현deque 를 이용하여 대쉬 이미지들을 넣어놓고 일정간격(interval) 마다 deque 의 맨 앞의 잔상 이미지를맨 뒤로 보내었다. 부록 - 모작1 갈고리 레이저 포인트 기능 구현 1. Update 에서 플레이어 위치와 마우스 위치를 이용한 2차 방정식을 만든다. 2. 모든 레이저 포인트들의 회전 값을 플레이어에서 마우스 위치를 뺀 vec 값으로 하여 날라갈 방향을 정하고 오른쪽 방향으로 이동 시킨다.3. 갈고리 훅 보다 거리가 이상인 각 레이저 포인트들은 안보이게 설정한다. SkillActor & Weapon 전체 코드 - SkillActor (FireBallSkill, FireFallSkill)public https://github.com/LCU97/Cat/tree/main/Source/HumanAndCat/Public/Actorprivate https://github.com/LCU97/Cat/tree/main/Source/HumanAndCat/Private/Actor Weapon public https://github.com/LCU97/Cat/tree/main/Source/HumanAndCat/Public/Weaponsprivate https://github.com/LCU97/Cat/tree/main/Source/HumanAndCat/Private/Weapons 개발 경험주요 클래스 및 함수 설명 1. .. 이전 1 2 3 다음