준비물이전 간단한 미니맵 만들기에서 필요한 이미지들과 추가로 전체 맵에 대한 스크린 샷이 필요하다.언리얼 CMD에 HighResShot 1 명령어를 입력하면 뷰포트 대로 스크린샷을 찍을 수 있다.가져온 Texture는 x축 y축 모두 Clamp로 설정하여 나중에 이미지를 확대해서 크기를 벗어나는 경우 Clamp 되도록 설정한다.Material똑같이 해당 Texuture를 가지고 Material을 생성해준다.Domian을 UserInterface로 바꾸고 TextureSample의 RGB를 연결해준다.하지만 지금은 전체맵을 보여주지 미니맵 형태는 아니다. 확대미니맵을 위해 이미지를 확대하기 위해서는 TexCoord에 multiply를 해주면 된다.X축(가로)로 0.5, Y축(세로)로 0.5 배하면 2개 ..
준비물현재 미니맵 상에서 플레이어의 위치를 나타낼 아이콘과 HUD에 띄울 미니맵 모양을 Mask할 이미지가 필요하다.PNG 파일을 Import한다면 Texture로 가지고 오는데 Create Sprite로 sprite도 만들어준다. 해당 마스크는 Material에 사용할 것으로 실제 표시하고 싶은 부분은 하얀색으로 만들어주면 된다.SceneCaptureComponent2D간단하게 미니맵을 구현하는 방법은 SceneCaptureComponent2D를 이용해서 실제 월드를 찍은 이미지를 이용하는 것이다.Character에 SpringArm과 SceneCaptureComponent2D를 추가하고위에서 아래로 내려다보도록 SpringArm을 조절한다.CanvasRenderTargetSceneCaptureComp..
접속을 소유한다. 엑터의 접속을 소유한다. 각 접속에는 PlayerController가 있음, 해당 접속 전용으로 만들어짐--> PlayerController는 해당 접속에 소유 일반적으로 엑터가 접속에 소유되었는지 알아보려면, 가장 바깥쪽 Owner에 질의, PlayerController인 경우 동일 접속에 소유대표적인 예시로 Pawn 엑터가 PlayerController에 빙의 될 떄, 접속 소유권이 중요한 이유RPC는 어느 클라이언트에서 클라이언트 실행 RPC를 실행할지 결정해야 합니다.엑터 리플리케이션 및 접속 연관성 때문오너가 연관된 경우 엑터 프로퍼티 리플레케이션 조건 때문RPC에서 엑터의 소유PRC에서 중요한 이유, 엑터에 RPC 함수를 호출할 떄, RPC를 어느 클라이언트에서 호출해야하는지..
리플리케이션과 관련된 엑터의 프로퍼티RoleRemote Role이를 통해 알 수 있는 정보 엑터에 대한 오소리티 소유자 *(중요)*엑터의 리플리케이션 여부리플리케이션 모드 Role이 Authority일 때 엔진 인스턴스는 엑터를 담당Role이 SimulatedProxy, AutonomousProxy이면 엔진 인스턴스는 이 엑터를 원격 프록시에서 리플리케이션 할 수 있게 담당롤 / 리모트 반전특정 엑터의 설정이 서버에서 이렇다면Role: ROLE_AuthorityRemote-Role : ROLE_SimulatedProxy클라이언트에서는 다음과 같이 보인다.Role : ROLE_SimulatedProxyRemoteRole : ROLE_Authority리플리케이션 빈도매 틱마다 리플리케이션 하지는 않음AAc..
서버는 하나의 오소리티가 있는 게임스테이트를 가짐서버는 게임 스테이트의 정보를 리플리케이트하여 클라이언트에 보내고 이 값을 토대로 클라이언트는 게임을 비슷하게 시뮬레이션 엑터의 리플리케이션리플리케이션을 통해 서버의 내용을 클라이언트로 복제 생성 및 소멸서버에서 오소리티 액터 스폰, 모든 클라이언트에 자동으로 원격프록시 엑터 생성 오소리티에 있는 엑터 소멸 시, 모든 클라이언트의 원격프록시도 소멸 무브먼트 리블리케이션오소리티있는 엑터에 대해 무브먼트 리플리케이트가 활성화되어 있거나 C++에서 bReplicateMovement = True가 되어 있다면 자동으로 위치, 회전, 속도가 리플리케이트 변수 리플리케이션리플리케이트 변수로 지정된 변수는 값이 변경..
개요보통 그래프 순회를 위해서 BFS, DFS를 활용한다.그래프의 일종인 트리도 BFS와 DFS로 순회를 할 수 있는데 방문했는지의 여부를 vis 배열로 확인하지 않고 방문할 노드가 부모노드인지만 확인하면 된다.기존 BFS기존 BPS의 경우 방문했는지의 여부를 알기 위해 vis 배열을 사용한다.int board[502][502];bool vis[502][502];그리고 방문할 때마다 vis가 true인지 확인한다. queue> Q; vis[0][0] = 1; Q.push({ 0, 0 }); int area = 0; while (!Q.empty()) { //탐색마다의 행동 area++; pair cur = Q.front(); Q.pop(); for (int dir = 0..