본문 바로가기
반응형

Unreal Engine/[UE4] RPG Project6

6. Dedicated Server 네트워킹 - Anim Montage이용한 플레이어 무기 모드 변경 기능 RPC 플레이어 캐릭터는 현재 칼과방패, 활 두가지의 무기 모드를 갖고 있다. 플레이어 캐릭터는 무기 모드를 변경할 때 무기를 변경하는 AnimMontage를 Play한다. - 무기 변경 기능 동기화를 위한 RPC 클라이언트에서 Change Weapon 입력 발생시 서버에서 모든 클라이언트에게 montage를 실행시키게 하는 흐름으로 구현했다. - OnSwordAndShieldMode(), OnBowMode() : Change Weapon 입력에 바인드 된 함수 - ServerSwitchWeaponMode(서버에서 실행) : SetCurrentWeaponMode 함수를 Call - SetCurrentWeaponMode(멀티캐스트) : CurWeaponType을 바꿔주고 플레이어 캐릭터의 ChangeWeapon .. 2022. 7. 7.
5. Dedicated Server 네트워킹 - Sprint 기능 Replication 기존의 싱글플레이 게임 코드에서 데디케이티드 서버를 사용하는 멀티플레이 게임으로 구조를 변경중이다. 여러 머신에서 같은 플레이 화면을 보기 위해서는 Replication을 통한 동기화가 필요하다. 캐릭터의 입력,애니메이션 부터 동기화를 시작해보자. 일단 Sprint 기능부터 동기화 하려 한다. - Sprint 상태 동기화 Sprint키를 눌렀을 때 캐릭터의 bIsSprinting=true 가 되었다는 것을 다른 클라이언트들에게도 알려주기 위해 함수 리플리케이션을 통해 다른 클라이언트에 함수를 똑같이 실행시켜준다. - Character.h Replicated 속성을 사용하기 위해서는 GetLifetimeReplicatedProps() 함수에 Replicated할 속성값을 등록해줘야 한다. - Charact.. 2022. 7. 1.
4. 캐릭터 콤보공격, 플레이어 입력구조 변경(플레이어 컨트롤러-폰 구조) 캐릭터 콤보공격 https://jjpearl.tistory.com/42?category=1070610 [UE4 C++] 애니메이션 시스템 활용(Animation Montage, 델리게이트, Animation Notify) 캐릭터에 공격 기능을 만들려 할 때 스테이트 머신을 사용한다면 모든 공격에 대한 스테이트, 트랜지션을 만든다면 스테이트를 계속 추가해야 하고 스테이트 머신이 복잡해질 것이다. 애니메이 jjpearl.tistory.com 애니메이션 노티파이를 활용해 콤보 공격에 필요한 애니메이션 몽타주를 만들었다. Attack1/2/3/4/5 : 5콤보까지 가능하도록 섹션을 나눴다. AttackHitCheck : 추후 데미지 전달 구현할 때 공격 판정을 할 타이밍 NextAttackCheck : 다음 공.. 2022. 1. 15.
3. C++ 애님 인스턴스, Character 점프기능, Sprint 기능 - 애니메이션 블루프린트 제작 https://jjpearl.tistory.com/39?category=1070610 [UE4 C++] 애니메이션 시스템 (애니메이션 블루프린트) 애니메이션 블루프린트 캐릭터가 다양한 상황에 적절한 애니메이션을 체계적으로 재생하도록 하는 애니메이션 시스템 제작 도구. 애니메이션 블루프린트는 두가지로 구성. 애님 그래프(Anim Grap jjpearl.tistory.com 데이터를 관리하는 애님 인스턴스를 C++로 작성했다. * 원래 BlendSpace2D를 사용해 Direction에 따라 애니메이션들을 blend 하려 했었으나 나의 캐릭터는 컨트롤 회전을 따라 이동하고, 메쉬가 움직이는 방향을 따라 돌아가게 하는 "GetCharacterMovement()->bOrientRo.. 2022. 1. 12.
2. 언리얼엔진의 PlayerCameraManager / 캐릭터 회전(ControlRotation) PlayerCameraManager [출처] 언리얼엔진4 공식 카페 게임 플레이가 시작되면 언리얼 엔진은 플레이어의 화면을 담당할 플레이어 카메라 관리자(PlayerCameraManager)를 만든다. 이 관리자는 플레이어의 모니터 화면을 보여줄 카메라를 관리하며 애니메이션에 활용할 임시 용도로 사용할 카메라 액터를 별도로 보관해두고 있다. 이 카메라 관리자를 담당하는 액터가 바로 플레이어 컨트롤러이다. 플레이 버튼을 누른 후 월드 아웃라이너에서 이들을 확인해보면 아래 그림과 같이 PlayerCameraManager 액터와 CameraActor 액터도 생성된 것을 볼 수 있는데 이를 총괄하는 액터가 바로 플레이어 컨트롤러다. 플레이어 컨트롤러가 폰에 빙의하면 플레이어 컨트롤러는 플레이어 카메라 관리자에게.. 2022. 1. 11.
반응형