캐릭터 클래스의 mesh 관련
129
작성한 질문수 98
캐릭터 클래스는 처음부터 캡슐, 메시, 캐릭터 무브먼트 컴포넌트가 있는데요.
무브먼트 컴포넌트가 클라이언트와 동기화시키고 보정하는 기능이 있는 건 알 것 같기도 한데 이게 mesh도 영향을 받나요?
리슨 서버에선 클라이언트 소유 캐릭터의 mesh를 강제로 이동시키기나 add relative rotation 해도 default 값에서 변하지 않고 고정됩니다.
반면에 서버 환경에서 서버 소유 캐릭터나 클라이언트 환경에서 클라 소유 캐릭터의 mesh를 이동/회전 시키면 일단 적용은 됩니다.
(다만 동기화는 안됩니다.)
리슨서버에서 클라이언트 소유 캐릭터의 mesh를 transform 수정 가능하게 할 방법은 아예 없나요?
답변 2
0
우선 캐릭터 무브먼트는 루트컴포넌트인 캡슐의 움직임과 회전을 조작합니다. 메시는 그 자식 컴포넌트이기 때문에 원하는 설정을 독립적으로 하기가 쉽지 않죠.
캡슐을 회전하지 않고, 메시만 회전시키려는 이유는 잘 모르겠지만 ( 일반적으론 권장하진 않습니다. ) 분수대 회전시키는 것처럼 프로퍼티 리플리케이션을 사용해 갱신될 때마다 업데이트해주면 될 것 같습니다.
0
vr 에서 컨트롤러 회전과 별개로 머리 움직임으로 인한 회전을 메시에 별도로 적용해보려고 했었습니다.
서버에선 클라 소유 캐릭터의 mesh를 add relative rotation을 하든 set local rotation을 하든 transform이 초기값에서 절대 바뀌지 않아서 교육 샘플 프로젝트에서도 테스트 해봐도 동일하고 강의도 다시 듣다가 관련 내용이 없는것 같아 질문드렸습니다..
아무래도 캐릭터 무브먼트 컴포넌트가 계속 덮어 씌우는 것같은데 리플리케이트 과정 코드 다시 보려고 합니다
0
안녕하세요, 인프런 AI 인턴입니다. themoon007님.
캐릭터 클래스의 Mesh는 기본적으로 CharacterMovementComponent에 의해 애니메이션과 이동이 조화롭게 처리되도록 동기화 됩니다. CharacterMovementComponent는 캐릭터의 물리적인 움직임을 처리하며, 네트워크 환경에서는 이러한 움직임이 서버와 클라이언트 간에 올바르게 동기화 되도록 여러 가지 기능을 제공합니다.
클라이언트 소유 캐릭터의 Mesh Transform 문제
- 리슨 서버에서 클라이언트가 소유한 캐릭터의 Mesh를 강제로 이동하거나 회전시키려 할 때, 기본적으로 Hierarchy의 제약이나 Netcode 때문에 Mesh가 변하지 않을 수 있습니다.
- 클라이언트 소유 캐릭터의 Mesh를 변경하기 위해서는 서버의 승인이 필요하거나, 클라이언트 자체에서 수행한 변경이 서버와 동기화되지 않았기 때문에 변경이 보이지 않을 수 있습니다.
해결 방안
서버에서의 트랜스폼 조정: 서버에서 Mesh의 트랜스폼을 변경하고 이를 모든 클라이언트에 전파하는 방식으로 처리할 수 있습니다. 이 경우, 직접적인 변경 사항이 서버에서 처리되고 클라이언트에게 전파되기 때문에 모든 클라이언트에서 동일한 변경을 확인할 수 있습니다.
RPC 사용하기: 클라이언트에서 Mesh의 변경사항을 서버에 Remote Procedure Call (RPC)를 통해 요청하고, 서버에서 이를 수용하여 모든 클라이언트에 동기화할 수 있습니다.
아래 유사한 문제를 다룬 질문을 참고하시면 도움이 될 것입니다:
- “캐릭터 애니메이션 미약한 떨림 해결 방법”: 애니메이션 및 동기화 관련 문제로, 서버-클라이언트 간의 트랜스폼 동기화에 대한 논의를 확인해 보세요.
추가적으로, 코드나 설정에 대한 세부적인 부분을 함께 제공해 주시면 더 구체적인 해결책을 찾는데 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
5.6버전 Networking Insights 실행안됨 문제에 관하여
0
21
1
8강 중간, 분수대의 SetOwner 에 대해 궁금합니다.
0
73
2
플레이어(Actor) 로 (리슨)서버에서 생성 되나요?
0
96
2
2강) HandleBeginPlay 의 역활이 궁금합니다.
-1
70
2
3강 중간, 모드 로그로 찍을 시 스탠드얼론이 안찍힙니다.
1
73
2
CompressedFlag 질문
0
55
2
10강까지 머리 위 체력바가 표시가 안됩니다.
0
105
3
10강까지 머리 위 체력바가 표시가 안됩니다.
0
93
2
16:44 부분에서 질문이 있습니다.
0
100
2
12:50 NetMulticast RPC 커넥션 관려하여 질문이 있습니다.
0
116
2
github 3-5 파트 프로젝트에서 컴파일 에러가 발생합니다.
0
112
3
언리얼 인사이트 5.6버전 networking insights 가 뜨지 않습니다.
0
162
3
Insight 사용이 안되어서 문의 드립니다!
0
125
2
하위 레벨...?? High Level 말씀하신거죠..??
0
143
1
CompressedFlags를 이용한 InputThrottle, InputSteering 전달 방법 질문
0
187
1
조건식 프로퍼티 리플리케이션 질문
0
141
2
ArenaBattle에 Log추가하는 곳에 에러가 나타나 질문 드립니다.
0
158
2
7강에서 DORM_Initial 안됨
0
126
3
안녕하세요 강의 내용 정리에 관련해서 질문있어요
0
128
2
3파트 6강 분수대 로테이트에 문제가 생겼습니다.
0
127
3
클라이언트의 오너십 설정에 대해서 궁금합니다.
0
197
3
프로퍼티 리플리케이트 동기화 보장 개념.
0
220
2
결국엔 액터 기본함수들은 어디든 똑같이 일단 실행되는건가요?
0
86
2
3분 39초 경에 질문이 있습니다
0
73
2





