일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 다이나믹 프로그래밍
- 시뮬레이션
- 유니온 파인드
- 그래프
- VR
- 스택
- 재귀
- 트리
- 투 포인터
- 알고리즘
- 누적 합
- 문자열
- 유니티
- Team Fortress 2
- ue5
- 그리디 알고리즘
- 백트래킹
- 우선순위 큐
- 수학
- 다익스트라
- XR Interaction Toolkit
- Unreal Engine 5
- 정렬
- 백준
- 브루트포스
- DFS
- BFS
- 자료구조
- 구현
- c++
- Today
- Total
목록언리얼 (26)
1일1알
클라이언트에서 로켓반사를 시도하면 ServerRPC를 통해 서버에서 판별, 성공했다면 Reflect_Ready 함수를 실행시켜서 Target Team을 변경하고 로켓의 타겟을 새로 지정, 로켓의 움직임을 아주 잠시 멈춘다. 그리고 0.05초뒤에 ServerRPC를 호출한 플레이어의 플레이어 컨트롤러의 GetControlRotation를 가져와서 로켓의 방향을 지정해준다. 실제 닷지볼에서 공을 치는 순간에 마우스를 돌리면 공을 꺾는 기술이 있어서 해당 기술을 이런식으로 구현했다. 로켓의 방향은 로켓이 향하는 방향벡터와 로켓에서부터 타겟까지의 방향벡터, 로켓의 속도를 조절해서 계산하고 AddMovementInput를 통해 움직이도록 했다.
팀 선택 로직 1. 플레이어가 IsLocallyControlled 인 클라이언트에서만 입장시 팀 선택 UI가 뜨도록 설정2. 팀 선택시 선택한 팀을 ServerRPC를 통해 서버에 전송3. 서버에서는 해당 플레이어의 팀을 변경, 프로퍼티 리플리케이션을 통해 다른 클라이언트의 플레이어들의 OnRep함수 실행4. Red, Blue팀에 따라 Material 변경 Server의 GameMode 로직 1. Blue나 Red 플레이어가 각각 한명 이상이 아니라면 Wait 모드로 대기 (아직 관전모드는 미구현, SetActorHiddenInGame로 대체상태)2. Blue나 Red 플레이어가 각각 한명 이상이라면 Ready 상태로 전환, 관전모드 해제3. 5초 대기 후 게임 진입, 공..
1. 메인 맵 입장시 서버 RPC 호출하여 플레이어 이름 전달2. 서버에서는 Property Replication을 통해 플레이어의 이름 클라이언트에 전달3. 클라이언트에서는 전달받은 플레이어 이름을 통해 UI에 적용
언리얼 네트워크 멀티플레이 프레임워크 학습 기록용 멀티플레이 게임은 싱글플레이 게임과 구조가 완전히 다르기 때문에 만약 멀티플레이 게임을 제작할 것이라면 처음부터 멀티플레이를 고려해야 한다.만약 처음에 싱글플레이 게임을 제작하다가 나중에 멀티플레이로 확장하려고 하면 거의 모든 기능을 다시 프로그래밍 해야한다. 클라이언트-서버 모델을 사용, 하나의 컴퓨터가 서버 역할을 하고 나머지는 클라이언트게임 로직이 실제로 진행되는 곳은 서버, 클라이이언트는 서버로부터 정보를 받아서 서버에서 일어나는 일의 근사치를 시뮬레이션한다. 네트워크 모드Listen Server게임이 네트워크 멀티플레이어 세션을 호스팅하는 서버로 실행중, 원격 클라이언트의 연결을 수락하고 로컬 플레이어를 서버에 배치한다. 자기 자신도 하나의 플레..

// HeaderUPROPERTY(BlueprintReadOnly)float GroundSpeed = 0.f;// Cppvoid UDBAnimInstance::NativeUpdateAnimation(float DeltaSeconds){ Velocity = MovementComponent->Velocity; GroundSpeed = Velocity.Size2D();} AnimInstance 클래스를 상속받은 DBAnimInstance Class를 생성, 애니메이션 재생에 필요한 정보들을 정의해서 프레임마다 NativeUpdateAnimation 함수를 통해 정보들을 갱신한다. 예를들어 Speed를 정의하고, Character Movement 컴포넌트의 Velocity를 이용하여 Spee..