새싹 UE5 (26) 썸네일형 리스트형 UE5 JsonObject 와 JsonUtilities 를 이용한 파싱 Json 형태의 파일을 언리얼에서 사용하기 위해 파싱 하는 방법일단 Json 파일 자체를 가져오는건 다음에 하고 지금은 가상 데이터를 JsonObject 형태로 받고 다시 FString 에 넣겠다. DataToJson 의 예제 4가지멤버를 하나씩 셋팅한다.FJsonObjectConverter 를 사용해서 한 번에 처리한다.여러개의 데이터를 하나씩 셋팅한다.FJsonObjectConverter 를 사용해서 여러 데이터를 처리한다. 1. 멤버를 하나씩 셋팅특징 : 원하는 멤버만 셋팅하고 싶다면 이 방식을 사용하면 좋다. 먼저 원하는 데이터를 구조체로 레이아웃 설정을 해준다. 구조체에 가상의 데이터를 생성한다. 이제 JsonObejct 를 생성하고 데이터를 JObj 에 셋팅한다.이때, Array 계열의 멤버.. Unreal Network - Possess 동기화 & Spectator Pawn 언리얼에서 PlayerController 의 Possess 는 서버에서 호출되면서 언리얼 엔진의 리플리케이션 시스템이 적용되어 있어 playercontroller 와 Pawn 의 변경 내용을 자동으로 동기화한다. 1. 사망 시 애니메이션에서 노티파이로 OnDie 실행. 죽은 클라이언트의 Mesh 를 숨기면서 DieProcess() 실행2. MainUI 의 Retry 버튼을 활성화 3. Retry 버튼을 누르면 관찰자 모드를 실행 4. ServerRPC 로 서버에서 Possess 를 진행 즉, 사망한 객체는 서버에게 Possess 스위칭을 요청한다.여기서 사망한 객체의 소유자 (playercontroller) 가 서버에게 Possess 신청하는 것이고 Possess 와 같은 함수는 리플리케이션이 보장되.. Unreal Network - Pistol, Fire, Dead 동기화 RPC 를 사용한 네트워크 동기화 권총 부착 or 해제를 서버 - 클라이언트's 동기화 1. F키를 눌러 TakePistol 호출 시 ServerRPC 로 서버에 요청2. ServerRPC 함수에서 총을 가지고 있지 않다면 가장 가깝게 있는 권총을 선택3. 안가지고 있으면 가장 가까운 권총을 서버에서 Multicast Attach 실행. 모든 클라에게 해당 캐릭터의 총 장착을 동기화가지고 있으면 현재 권총을 서버에서 Multicast Detach 실행. 모든 클라에게 해당 캐릭터의 총 해제를 동기화 총 쏘기 및 재장전 동기화 1. 라인 트레이스로 Hit 결과 값을 ServerRPC_Fire 에게 전달하면서 서버에게 Fire 동기화 요청2. 서버에서 MulticastRPC_Fire 로 모든 클라이언트에.. 24-11-22 네트워크 큐브 생성 동기화 각각의 플레이어들이 큐브를 생성하고 이것을 동기화하자 만든 클래스의 가장 중요 부분 : 게임 모드에서 상태 변경 >> 서버에서만 변경되는것, 변경된 변수의 동기화가 별도로 필요 큐브 생성 및 동기화 로직 서버에서 멀티캐스트를 호출하는 형식이다. ChangeTurn 이 실행되는데 이 함수를 게임모드가 가지고 있다. 그런데 게임모드는 서버만 가지고 있기 때문에 CanMakeCube 라는 bool 변수는 서버에서만 변경되는 것.모든 클라가 이 변경점을 알 수 있도록 동기화 되어야한다. 변수를 동기화해서 변수 값이 업데이트 될 때 마다 동기화가 모든 클라에게서 동기화가 진행된다. 24-11-21 언리얼 네트워크 캐릭터 동기화 캐릭터 간에 동기화플레이어들의 움직임을 동기화 및 공격 시 데미지 연산 동기화 Multicast 는 서버가 호출해야 모든 클라에게 전달된다. 피스톨을 줍는 행위 자체를 서버에게 전달한다.서버는 해당 클라가 총의 소유 여부에 따라 부착 / 해제를 Multicast 로 모든 클라에게 전달한다. MainUI 가 Local 에만 보인다. ( 총을 주운 클라만 )IsLocallyControlled 함수를 사용해서 로컬만 본인의 MainUI 를 가지고 있다. 로컬은 MainUI를 사용하지만 로컬이 아닌 클라는 머리 위에 HPBar 를 생성한다. 총을 쏘는 행위는 모든 클라가 확인해야한다 ( 동기화 )총 쏘는 행위를 Server 에게 알려주고 Multicast 를 호출하여 모든 클라가 총을 쏘는 행위를 동기화.. 24-11-20 언리얼 네트워크 - 색상 동기화와 RPC RPC - 함수를 이용한 동기화 ( 이벤트와 같이 특정 한 번에 사용되어질 때 많이 사용 )리플리케이트 - 변수를 동기화 ( 빈번하게 변환되는 값들은 리플리케이트 ) 리플리케이트를 이용한 색상 동기화 굳이 시간까지 동기화가 필요가 없다. 서버만 시간을 쓰고 색상은 동기화하자 일단 리플리케이트 방식 함수를 이용한 생각 동기화 OnRep 함수는 클라이언트 입장에서만 동기화가 필요할 시에 호출된다. CPP 기준이다. 블루프린트에서는 OnRep 이 서버에서도 불려진다. 서버가 클라이언트의 함수를 호출 요청하면 클라이언트RPC클라이언트가 서버의 함수를 호출 요청하면 서버RPCMultiCastRPC 모든 클라이언트에게 신호를 보낼 때 모든 클라가 특정 함수를 호출한다. RPC를 이용한 크기 변경 언리얼의.. 2024-11-19 언리얼 네트워크 동기화 RPC ( Remote Procedure Call ) 다른 주소 공간에서 함수나 프로시저를 호출하는 방법. 로컬 함수처럼 호출되지만, 실제로는 네트워크를 통해 다른 시스템에서 실행된다. 클라 -> 서버 ( Server RPC )일반적으로 클라이언트가 서버에 요청을 보내고 서버는 해당 요청을 처리한 후 결과를 반환합니다. 만약 A , B , C 객체가 있고 A 가 Liten 서버를 만든다면A 기준 A는 Invalid Connection, B 는 Valid Connection, C 는 Valid Connection B 기준 A 는 Invalid Connection, B는 Valid Connection, C는 Invalid Connection C 기준 A 는 Invalid Connection B.. 24-11-13 ( 네트워크 1일차 ) 11.14 ~ 12.10 까지14 기획25 프로토02 알파10 베타 소켓 통신 : TCP / UDP ( 양방향 통신 )클라이언트와 서버 간에 통신이 서로 보내기 가능하다.클라가 요청안해도 서버가 정보를 클라에게 줄 수 있다.TCP : 검증 속도가 UDP 보다 느림, UDP : 검증 x 여서 빠르지만 데이터 유실 가능성 o 웹(HTTP) 통신 : 단방향 통신 ( 클라이언트가 서버에 요청 한 후에 서버가 답을 주는 형태 )Restful API 를 이용해서 URL로 통신 가능하도록 한다. ( 서버에서 API 로 통신 합시다 라고 하면 보통 이거임 )(POST, GET, PUT, DELETE) 사용POST : 데이터를 생성 ( 사이트에서 제공하는 DB에 데이터를 생성 저장 )GET : 데이터, 정보를 조회PU.. 이전 1 2 3 4 다음