실감
실감 심화편 실시간 협업과 엔디스플레이 제어 설정
CC사관학교
멀티 유저와 스위치보드 활용을 위한 네트워크 기초
안녕하세요
오늘 실시간 협업과 앤디스플레이 제어 설정에 대한 강의를 진행하게 될 박지용입니다
이번 강의에서는 앞서 배웠던 퍼포스와
앤디스플레이를 실제로 구동하기 위한
멀티유저와 스위치보드에 대한 이해를 바탕으로
실습을 통해 실제 활용방법에 대해 살펴보려고 합니다
앞서 배웠던 퍼포스, 앤디스플레이, 스위치보드, 멀티유저의 사용은
다수의 머신을 네트워크 기반으로 연동 및 작동하는 시스템입니다
그래서 본격적으로 들어가기 전에
이러한 시스템을 사용하기 위한 네트워크에 대한
정말 매우 구체적인 간략한 정보만 빠르게 짚고 넘어가려고 합니다
먼저 네트워크의 어원은 넷과 워크의 합성어입니다
컴퓨터, 스마트폰, 데이터 송수신 장치들을 노드라 부르며
이런 노드를 통신할 수 있도록 연결된 통신 형태를 말합니다
몇 개의 독립적인 장치가 적절한 영역 내에서
적당히 빠른 속도의 물리적 통신 채널을 통하여
서로 직접 통신할 수 있도록 지원해주는 데이터 통신 체계입니다
여기서 노드끼리 데이터를 주고 받는 것을 통신이라고 합니다
데이터를 주고 받기 위해서는
즉 컴퓨터와 컴퓨터의 통신을 하기 위해서는 프로토콜이 필요합니다
이 프로토콜은 데이터 통신에 사용되는 규칙을 말합니다
링크를 통해 서로 간의 회선과 패킷을 교환함으로써 데이터 통신을 하는 것입니다
링크는 노드 사이에 패킷을 전달하기 위한 물리적인 통신 경로를 말합니다
패킷은 데이터를 작은 단위로 분할한 것을 의미합니다
패킷 형식을 사용하는 이유는 여러 가지가 있지만
그 중 가장 큰 장점은 데이터를 분할하여 전달함으로써 여러 대의 컴퓨터
즉 노드들이 효율적으로 데이터를 공유하고 사용할 수 있다는 점입니다
IP 주소는 인터넷 프로토콜의 약자로
네트워크 상의 노드를 식별하기 위해 부여되는 고유한 주소입니다
주로 사용되는 IP 주소 체계는 IPv4와 IPv6 두 가지가 있습니다
IPv4는 인터넷 초기에 도입된 첫 번째 인터넷 프로토콜로
32비트 방식을 주소 체계로 사용합니다
이를 통해 약 42억 개의 고유 주소를 제공합니다
그러나 인터넷 사용량의 급증으로 인해 주소가 부족해지는 문제가 발생하면서
IPv6가 개발되었습니다
IPv6는 128비트 방식의 주소 체계를 사용하여
이를 통해 340억 개의 10억 배 이상의 광대한 주소를 제공합니다
이는 사실상 무한에 가까운 주소 공간을 제공하여
인터넷 장치의 폭발적 증가에도 대응할 수 있습니다
IPv4의 장점은 상대적으로 간단한 구조로 인해 설정이 쉬운 점과
대부분의 웹사이트와 네트워크 환경에서 지원된다는 점입니다
그러나 주요 단점은 공간이 제한적이라는 점과
주소 부족 문제가 이미 현실화된 상태입니다
반면 IPv6는 장점이 거의 무제한에 가까운 주소 공간을 제공한다는 점과
최신 디바이스 및 프로토콜 지원한다는 점입니다
다만 설정이 복잡하여 잘못된 설정으로 인한 오류가 발생할 가능성이 높고
주소가 길어 외우기 어렵다는 장점이 있습니다
또한 아직 일부 웹사이트나 네트워크 환경에서
IPv6가 완전히 지원되지 않는 경우도 있습니다
IP 주소는 고정 IP, 유동 IP
그리고 공인 IP와 사설 IP로 나눌 수 있습니다
각각의 특징을 살펴보겠습니다
고정 IP는 변하지 않고 고정적으로 부여된 IP 주소를 말합니다
이러한 방식은 보안성이 우수하며
주로 고정된 IP가 필요한 장비나 서버에서 사용됩니다
유동 IP는 고정적이지 않고 필요에 따라 할당이 변경되는 IP 주소입니다
이는 일반 사용자들이 외부망에서 인터넷을 사용할 때 주로 사용되는 방식으로
모든 사용자에게 고정 IP를 부여할 수 없기 때문에
효율적인 네트워크 자원 활용을 위해 유동 IP가 사용됩니다
공인 IP는 전 세계적으로 유일한 IP 주소로 임의로 부여되는 것이 아니라
국제인터넷 주소관리기관인 ICANN에서 각 국가별로 IP 대역을 할당합니다
우리나라에서는 한국인터넷진흥원이 이 IP 대역을 관리하며
통신사들은 KISA로부터 공인 IP를 발급받아 사용자들에게 제공합니다
공인 IP는 인터넷상에서 외부와 직접 연결될 수 있는 주소입니다
사설 IP는 특정 내부 네트워크에서만 사용되는 고유한 IP 주소입니다
일반적으로 공인 IP는 발급받아
가정이나 회사의 네트워크에서 라우터 또는 네트워크 장치를 통해
IP 시설로 네트워크에서 라우터 또는 네트워크 장치를 통해
사설 IP로 변환하여 사용합니다
사설 IP는 내부 네트워크에서만 접근이 가능하여
외부 인터넷과 직접 연결되지 않습니다
이는 내부 네트워크 자원을 효율적으로 활용하고
보안을 강화하는데 유용합니다
요약하자면 고정 IP는 변하지 않는 안정적인 연결을 제공하며 보안성이 높습니다
유동 IP는 네트워크 자원을 효율적으로 활용하기 위한 방식으로
대부분의 일반 사용자들에게 사용됩니다
공인 IP는 전 세계적으로 고유하며 외부와 직접 통신할 수 있는 주소인 반면
사설 IP는 내부 네트워크에서만 사용되며
보안을 강화하는데 적합합니다
이번에는 포트에 대해서 알아보도록 하겠습니다
포트는 데이터를 주고받을 때 사용하는 응용 프로그램의 상세한 주소라고 할 수 있습니다
이를 이해하기 쉽게 택배로 예를 들어보겠습니다
택배를 보내려면 받는 사람의 시, 구와 같은 큰 범위의 주소가 필요합니다
이 큰 범위의 주소는 IP 주소에 해당합니다
그리고 아파트 이름, 동, 호수와 같은 세부적인 주소가 필요합니다
이것이 바로 포트라고 보시면 됩니다
즉 IP 주소가 컴퓨터의 위치를 나타낸다면
포트는 그 컴퓨터 내에 특정 응용 프로그램을 지정한다고 보시면 됩니다
포트 번호는 크게 3가지로 나눌 수 있습니다
첫번째는 잘 알려진 포트로
0번부터 1023번까지의 번호가 해당합니다
이 번호들은 표준 서비스에 예약이 되어 있습니다
예를 들어 HTTP는 80번 포트를 사용하고
HTTPS는 443번 포트를 사용합니다
두번째는 등록된 포트입니다
1024번부터 29151번까지의 번호로
특정 응용 프로그램에 등록되어 사용하는 포트입니다
세번째로는 다이나믹 포트로 29152번부터 65535번까지의 번호를 말합니다
이 포트는 동적으로 할당되어 자유롭게 사용할 수 있습니다
이제 네트워크에서 데이터를 전송하는 방식을 살펴보겠습니다
네트워크 데이터 전송 방식은 크게 4가지가 있습니다
먼저 유니캐스트는 1대1 통신 방식으로
특정 대상과 직접 통신할 때 사용됩니다
두번째로는 브로드캐스트입니다
이 방식은 1대 전체 통신 방식으로
네트워크 상의 모든 기기에 데이터를 전송합니다
예를 들어 특정 수신자의 주소를 모를 때 사용되며
네트워크 장치가 데이터를 어디로 보낼지 확인하는 과정에서 사용됩니다
세번째는 멀티캐스트로 1대 그룹 통신 방식입니다
이는 특정 그룹의 여러 대상에게 동시에 데이터를 전송합니다
마지막으로 애니캐스트는 1대1 통신 방식이지만
동일한 주소를 가진 여러 수신자 중
가장 가까운 수신자에게 데이터를 전송하는 방식입니다
정리하자면 포트는 데이터를 주고받는 상세 주소이며
네트워크 데이터 전송 방식은 유니캐스트, 브로드캐스트, 멀티캐스트, 애니캐스트로 나눕니다
이 개념들은 네트워크 기본이자
다양한 응용 서비스에 근간이 되는 중요한 요소입니다
이렇게 포퍼스, 앤디스플레이, 스위치보드, 멀티유저 사용을 위해
꼭 필요한 네트워크와 관련된 개념에 대해 이해해 봤으며
본격적인 실습을 통해 멀티유저와 스위치보드에 대해 알아보려고 합니다
엔디스플레이 및 협업 과정 실습
이제는 지금까지 배웠던 것을 토대로 실습을 진행해 볼텐데요
가장 기본적인 것 먼저 한번 살펴보도록 하겠습니다
앞서 말했던 모든 NDC는 멀티, 다중 시스템을 활용하기 때문에
데이터 통신이 매우 중요합니다
그래서 우선 윈도우 디펜더 방화벽을
윈도우 디펜더 방화벽을 들어가서 방화벽 설정을 해제해줘야 됩니다
추가적으로 제가 연결해서 사용할 랜더노드의 방화벽 상태도
한번 확인하도록 하겠습니다
네 여기도
잘 꺼져 있네요
여기까지 됐으면
한 번 더 복습한다는 의미로
저번 연습시간에 보긴 했지만
제가 사용하는 랜더노드의 IP주소와 핑이 잘 통하는지 한번 확인해 보도록 하겠습니다
이게 확인이 되었으면
이제 스위치보드로 한번 넘어가 보도록 하겠습니다
이제 스위치보드에 대해서 실제로 들어갈텐데요
스위치보드에 대해서 간략하게 설명을 드리면
스위치보드는 여러 기기들을 한번에 제어할 수 있는 플러그인입니다
기본적으로 파이썬으로 제작되었습니다
스위치보드는 다른 기기들과 통신하기 위해서
스위치보드 리스너와 함께 사용됩니다
스위치보드 리스너는 C++로 제작된 프로그램입니다
스위치보드는 멀티 유저와 앤디스플레이, 테이크 레코더 등 다양하게 할 수 있습니다
한번 실제 보면서 얘기해 보겠습니다
스위치보드를 실행해 보도록 하겠습니다
스위치보드 상단에는 시퀀서, 슬레이트, 테이크 이름을 정의할 수 있습니다
바로 아래에서는 여러 디바이스를 추가할 수 있습니다
추가하게 되면 아래 부분에 추가된 디바이스의 이름을 확인할 수 있습니다
옆에는 스위치보드를 통해 실행되는 언리얼 엔진의 레벨을 사전에 확인할 수 있습니다
바로 아래에는 프로젝트 CL이라는 것이 있는데
이것은 퍼포스에서의 체인지 리스트의 줄임말입니다
체인지 리스트에 넘버가 다 나올 수 있고요
이것을 통해서 예전 체인지 리스트로 변경하거나 최신으로 변경할 수 있습니다
여기는 버튼들이 여러가지가 있는데
순서대로 리프레시 버튼
싱크 버튼
빌드 버튼, 싱크 앤 빌드 버튼이 있습니다
리프레시는 소스 정보를 업데이트하는 버튼입니다
싱크는 모든 연결된 모든 장치의 연결을
선택한 버전과 동기화하는 버튼입니다
빌드는 연결된 모든 장치를 기반으로 빌드하는 버튼입니다
싱크 앤 빌드는 싱크와 빌드를 같이 작동하는 버튼으로
연결된 모든 장치를 동기화하여 빌드하는 버튼입니다
오른쪽에 있는 버튼 중 가장 오른쪽부터 설명드리겠습니다
리스너 연결은 눌렀을 때 연결이 잘 되었다고 확인되면
이렇게 버튼이 파란색으로 표기가 됩니다
해당 스타트 버튼을 누르게 되면 실제로 해당 디바이스가 실행이 됩니다
여기 보시면 디바이스의 IP나 이름을 확인할 수가 있구요
연결을 끊으면 IP도 수정해서 간단하게 설정을 변경할 수가 있습니다
여기서 연결 버튼을 눌렀을 때
해당 머신의 체인지 리스트를 확인할 수가 있습니다
상단에 있는 체인지 리스트는 서버의 체인지 리스트고
여기 있는 것은 디바이스의 체인지 리스트로 동기화를 쉽게 할 수 있습니다
해당 버튼은 멀티 유저에 자동으로 조인을 시킬지 선택하는 체크 버튼입니다
스위치 보드에 대해서 좀 더 크게 열어놓고 한번 확인해 볼게요
엔디스플레이 관련된 것들도 한번 연결해서 싱크를 맞춘 상태구요
오른쪽은 연결된 노드들의 전반적인 상태를 점검할 수 있습니다
렌더 노드의 이름, IP
그리고 그래픽 카드의 버전
이 프리센터 보드는 엔디스플레이를 실행했을 때 나오는 겁니다
싱크가 잘 되었는지
컬러 비트 뎁스는 몇 비트인지 확인할 수 있고
싱크 상태
모자이크 상태
그리고 윈도우 버전 자체도 확인할 수 있고요
추가로 CPU
메모리, GPU 사용 상태나
GPU 온도구도 확인할 수 있습니다
여기 하단에 보시면은 이거는 로그들의 상태로
지금 제가 진행하고 있는 모든 작업에 대한 로그를 확인할 수 있습니다
여기는 멀티 유저 세션 이름입니다
이 멀티 유저 세션의 이름은 매우 중요합니다
그 이름의 텍스트 기반으로 패치가 되어 연결된다고 보시면 됩니다
언리얼 엔진을 다시 실행해 보겠습니다
네, 언리얼 엔진이 켜졌구요
이건 저번 시간에 저희가
테스트했던 프로젝트입니다
플러그인이 잘 켜져 있는지 한번 확인해 보겠습니다
스위치 보드 플러그인이 켜져 있는 걸 확인할 수 있고요
그리고 톡을 더 열면 런치 스위치 보드가 여기 있습니다
또한 그 하단에 보면 스위치 보드 리스너를 켜는 칸이 있습니다
프로젝트 세팅 들어가 보시면은
이제 스위치 보드 설치하는 것을 한번 다시 말씀드리겠습니다
저는 이미 실행이 되어서 설치가 되었는데
만약에 에러가 있거나 재설치를 해야 될 경우
여기 들어와서 인스톨 누르게 되면은 재설치가 되게 됩니다
기본적으로 이 모든 것은 인터넷 연결된 상태에서 작동이 되는 걸로
온라인에 있는 데이터를 끌고 와서 설치하는 방식입니다
설치를 누르게 되면은 이렇게 파이썬으로 설치가 진행되게 되고요
이런 식으로 자동으로 설치가 진행이 되고
맨 하단에 피니쉬가 된 것을 확인한 다음에 다음으로 진행하시면 됩니다
저는 기본적으로 윈도우 켜졌을 때
리스너를 실행하게 설정해 놨습니다
이렇게 되면은 스위치 보드가 실행이 되는데요
이것을 진행하기 전에 정확한 경로를 한번 알아보도록 하겠습니다
우선 워크스페이스 네임 같은 경우는
P4V에 들어갔을 때 왼쪽 상단에 나와 있는 네이밍이
저의 워크스페이스 네임입니다
여기서 보시면 제 로컬에는 있는데
서버에는 안올라가있는것을 확인할 수 있는데요
보시면 아이콘이 그냥 흰색 페이지인 것을 볼 수 있습니다
동기화가 안되서 스위치 보드가 작동할 수가 없기 때문에
이제 포포스로 돌아가서
해당 프로젝트를 동기화할 수 있도록 한번 해보도록 하겠습니다
보시면
이제 리비전 컨트롤에 저희가
눌러서 들어갈 수 있지만
포포스에 연결이 안되어 있기 때문에 작동 불가능합니다
그래서 저희가 배웠던 것을 한번 복습하는 차원에서 해보도록 하겠습니다
우선 P4 어드민에 한번 들어가 볼 건데요
이 P4 어드민에서 저희가 기본적으로 디팟을 먼저 만들어 보려고 합니다
네 지금 거의 다 들어왔구요
보시면
제가 만든 프로젝트 폴더 이름은 ndc_test 입니다
이거와 동일하게 디팟을 만들어 보겠습니다
만들면 이번에는 로컬로 만들어 보겠습니다
만들게 되면 디팟 리스트에서 ndc_test를 찾아볼 수 있습니다
이제 디팟이 만들어졌고
디팟과 워크스페이스를 연결하고
워크스페이스 데이터를 올리는 작업을 한번 해보도록 하겠습니다
이거는 P4V에 들어가서 진행하도록 하겠습니다
P4V에 들어가시면
이제 이걸 올리기 위해서
기본적으로 방금 만든 디팟에 연결하는 맵핑 작업이 필요합니다
체크를 하고
어플라이
OK를 눌러줍니다
이렇게 되면 기본적인 맵핑이 끝났구요
저희 저번 시간 배웠던 것처럼
컨피그, 콘텐츠, 유프로젝트만 올릴 수 있도록 해보겠습니다
add를 눌러주고
서밋을 클릭해서
올려 보도록 하겠습니다
디스크립션 작성은 당연히 하구요
이런 작업이 빨리 될 수 있도록 텐지망이 필요합니다
네, 지금 보시면 NDC 테스트에 올라간 것을 확인할 수 있습니다
이렇게 되면 기본적인 준비는 끝났구요
한번 체크하기 위해서 리비전 컨트롤에서 한번 연결하도록 해보겠습니다
포커스 선택한 뒤 워크스페이스를 선택하고
이제 연결해보겠습니다
연결된 걸 확인할 수가 있구요
확인 문구를 확인한 뒤에 스위치 보드를 실행하겠습니다
새로운 컨피그를 만들어 볼텐데요
새로운 컨피그
아까 확인하긴 했지만
다시 한 번 보면 ndc_test_v1 이라고 기입하겠습니다
U프로젝트 경로 잘 기입되는지 확인하고
네, 이건 동일합니다
그 다음에 엔진이 설치되어 있는 디렉터리 또한
정확하게 맞는지 한번 확인해 볼 필요가 있습니다
네, 이런식으로 확인할 수 있구요
그 다음에 제일 중요한 퍼포스 관련된 패치 설정인데요
패치 같은 경우는
방금 만든 디팟
이름과 동일해야 됩니다
NDC_test죠
여기서 NDC_test를 입력해 줄 겁니다
워크스페이스 네임은
아까 말씀드렸던 것처럼 P4V 왼쪽 상단에
보거나 워크스페이스에서 확인할 수 있습니다
여기까지 했으면 OK를 해서 진행해 보도록 하겠습니다
연결이 되면 모든게 비어있는 스위치 보드가 보입니다
이제 보시면
gk나씩 간단히 추가하면서 확인하고 테스트해 보겠습니다
첫번째로 언리얼 디바이스를 추가해 보도록 하겠습니다
우선은 원격이 아닌 제 자신 컴퓨터를 먼저 등록을 해 볼텐데요
이름은 main_10
어드레스는 지금 제 IP를 입력해 줍니다
이 상태에서 한번
리스너를 끄고 실행해 보겠습니다
이렇게 되면 소켓 에러라고 해서 연결이 되지 않습니다
이 이유는 방금 제가 리스너를 껐기 때문인데요
다시 한번 리스너를 켜 보겠습니다
이렇게 리스너를 실행하게 되면은
신호를 주고 받을 수 있는 준비가 되어 연결이 잘 되는 것을 확인할 수 있습니다
언리얼 엔진을 꺼 보구요
여기에서
원격으로 실행할 수 있습니다
멀티 유저 세션네임과 오토존을 제가 일부러 잠깐 껐습니다
이렇게 실행되는 것을 볼 수가 있죠
또한 다시 X를 눌러서 종료를 할 수가 있습니다
이렇게 해서 이제 여러 대의 언리얼 엔진 머신을
동시에 컨트롤 할 수도 있는데
저희가 한번 더 다른 디바이스를 추가해 보도록 하겠습니다
두 번째로는 N디스플레이를 추가해 볼텐데요
컴피그 파일을 불러야 됩니다
저희가 이전 시간에 만들어놨던 NDC 컴피그를 한번 불러 보도록 하겠습니다
경로에 들어가서
저희가 만들었던 컴피그를 선택해서
열고 이 상태에서 바로 OK를 하는게 아니라
퍼플레이터 버튼을 눌러서 한번의 변환의 과정을 거칩니다
이 상태에서 OK를 누르겠습니다
이렇게 되면 N디스플레이가 추가가 된 거구요
IP를 보는 것 같이 렌더노드의 머신입니다
연결을 하면은 특이한 점이 또 다른 에러가 떴는데요
이제 보시면 체인지 리스트가
안 뜨는 에러가 발생하고 있습니다
위에는 잘 되어있는데 렌더노드는 잘 안되어있죠
이걸 한번 같이 해결해 보겠습니다
보시면 세팅에 들어가시면 기본적인 모든 설정을 할 수가 있는데요
여기에서
방금 저의 추가한 앤디스플레이 관련된 세팅으로 들어가 봤습니다
여기보시면 워크스페이스 네임이
맨 처음 저희가 메인 설정할 때랑 똑같이 들어가서
main_10으로 되어있는데
렌더 노드의 워크스페이스 이름은 다릅니다
확인하는 방법은 vnc 에 들어가서
여기도 마찬가지로
P4V에 들어가서 정확하게 한번 확인해 보겠습니다
P4V 왼쪽 상단에 보시면 렌더_20입니다
이게 해당 Ndisplay의 워크스페이스 이름입니다
정확하게 입력한 뒤에 다시 한번 연결하도록 해 보겠습니다
다시 해도 안뜨죠?
이 이유는 또 다른 방면에서 찾을 수 있습니다
스위치 보드 세팅은 잘 되어있지만
저희가 한가지 빼먹은게 있는데요
그건 바로 렌더 머신에서 제가 올렸던 프로젝트를 받은 적이 없기 때문입니다
보시면
디팟에는 있지만
렌더 노드의 워크스페이스에서는 찾을 수 없습니다
다시 한번 받는 행위를 해야 되는데
맵핑을 먼저 진행을 한 뒤에
제가 받으려고 하는 디팟을 클릭한 뒤에
싱크를 진행합니다
다행히 프로젝트가 매우 작아서 바로 되었는데요
이렇게 되면 메인 머신과 렌더 머신
둘 다 동일한 파일을 가지고 있는 상태가 되었습니다
이 상태에서 다시 연결을 누르면 연결이 잘 되는 것을 확인할 수 있습니다
연결이 되면 엔디스플레이 모니터에
제가 설정해놓은 렌더 머신에 대한 모든 설정값을 정확하게 다시 볼 수 있습니다
세팅에 잠깐 들어가보면
기본적으로 저희가 해줘야 되는 세팅들이 몇 개 있거든요
여기 보시면
이건 저희가 엔디스플레이 컴피그를 새로 만들 때 기입했던 정보들이고요
그 밑에 멀티 유저 서버에 보시면 몇 가지 수정해야 되는 내용이 있습니다
우선 서버 네임은 이 컴퓨터의
시스템 장치 이름을 기입해 줍니다
그리고 오토 런처랑 UI 모드를 꺼줍니다
이제 엔디스플레이 세팅 들어오면
여기 유니캐스트 엔드 포인트를 입력해 줍니다
그리고 지금은 저희가 입력하지는 않았지만
라이브링크 프리셋은 나중에
실제로 진행할 때는 트래킹 데이터를 여기서 입력을 해줘야 됩니다
한번 끊었다가
이번에는 엔디스플레이가 아니라
각 머신을 다 언리얼 디바이스로 추가해 보겠습니다
이번에도 오류가 났죠
이거는 세팅 들어가서
워크스페이스 이름을 수정해 줘야 됩니다
랜더_20으로 수정을 하고요
유니캐스트도 기입을 해줍니다
여기까지 됐으면 다시 한번 연결해 볼게요
네 잘 되는 거 확인할 수 있죠
이번에는 멀티 유저에 대해서 한번 알아보겠습니다
기본적으로 세션에다가 이름을 기입해 줍니다
그리고 오토 조인을 켜줍니다
그 상태에서
이 스타트 버튼을 누르면 멀티 유저 서버가 실행되는 것을 확인할 수 있습니다
이 상태까지 되면
서버 자체가 실행이 된 거고
방금 제가 입력한 세션 이름으로
두 대의 컴퓨터가 접속한다고 보시면 됩니다
그리고 오토 조인 위에
멀티 유저 서버와 서버가 실행되고
구축된 ip 주소가 뜨게 됩니다
이제 멀티 유저 같은 경우는 우선 이런 방식을 하게 되면
다중작업으로 동시에
레벨을 디자인 할 수 있는 좋은 기능이 됩니다
네 지금 언리얼 프로젝트가 실행이 됐구요
지금 보고 계신 프로젝트는 메인 컴퓨터입니다
멀티 유저 브라우저에 들어가 보면
메인 컴퓨터와 랜덤 머신이 같은 서버에 잘 들어온 것을 확인할 수 있습니다
이게 어떠한 방식으로 작동되는지 한번 같이 살펴보도록 하겠습니다
화면을 분할하여 왼쪽은 메인
오른쪽은 랜더 머신으로 띄워보도록 하겠습니다
둘 다 동일한 프로젝트인 거구요
조금 원격이라서 살짝 느리긴 하지만
감안하고 봐주시면 너무 좋을 것 같습니다
메인을 왼쪽으로 보내고
랜더 머신을 오른쪽으로 보내겠습니다
한번 저희가 액터를 움직여 보겠습니다
앤디스플레이를 한번 움직여 보면
오른쪽에 랜더머신이 다른 컴퓨터인데
실시간으로 제가 움직이는게 자동으로 반영되는 것을 확인할 수 있습니다
이게 멀티 유저 에디팅이 가장 큰
장점 기능이라고 보시면 됩니다
보시면 카메라도 잘 움직이구요
그리고 아래에 보시면 히스토리가 나오는데
제가 어떤 작업들을 했는지
클라이언트 누가
어떤 것을 움직였는지
시간별로 모든 기록을 확인할 수 있습니다
반대로 랜더머신에서도 한번 움직여 보겠습니다
랜더머신에서 움직이면 메인에서도 움직이는 것을 실시간으로 확인할 수 있습니다
이런 기능 자체가 멀티 유저 에디팅을 할 수도 있고
또는 NDC에서도
여러가지 기능을 할 수 있게 지원을 해주는 역할을 하고 있습니다
보시면 제가 아까 기입했던 세션 네임으로 정확하게
접속한 것을 확인할 수 있고
메인에서 한번 나가 보겠습니다
나가면
이렇게 제가 움직여도
같이 움직이지 않는 것을 확인할 수 있습니다
이건 서버 나가서 그런거구요
아래 내려 보시면 제가 만들었던
세션을 확인할 수 있고
이걸 다시 클릭해서 다시 접속도 가능합니다
이 상태에서 한번 종료하겠습니다
방금 보여드린게
여러 언리얼 디바이스가
함께 멀티 유저 에디팅을 하는 방식을 보여드렸구요
이제 그 다음으로는 한대는 메인 오퍼레이팅
다른 한대는 앤디스플레이 디바이스가 접속되는 것을 한번 보여드리겠습니다
사실상 개념은 완전히 동일합니다
세션 네임을 입력을 해주고
스타트 버튼으로 실행을 시켜줍니다
이제 이렇게 실행되게 되면 곧 저희가 볼 수 있는 것은
오른쪽 앤디스플레이 모니터에
다른 상태창이 뜨는 것을 확인할 수 있습니다
보시면
첫번째로 퍼센트모드가 변경되서
올바르게 작동되고 있는 것을 볼 수가 있구요
그리고 오른쪽으로 가보면
지금 gpu 사용량도 함께 확인할 수가 있습니다
이제 제 메인 오퍼레이팅 컴퓨터로 와보면
이런식으로 동일하게 아까처럼 확인할 수가 있구요
랜더머신에 가보면
잠시만 화면 사이즈 바꾸겠습니다
네 이런식으로 최종 이미지 아웃풋이 나가는 것을 확인할 수가 있습니다
이 이미지가 led 전체의 크기에 출력이 된다고 보시면 될 것 같습니다
지금은 그냥 모니터로 보는 것이지만
이 화면이 led 나간다 라고 생각하시면 좋을 것 같아요
보시면
제가 공을 움직여서 사라졌죠
다시 한번 분할 화면을 봤을 때
앤디스플레이 움직이거나
아니면 액터를 움직이거나
이런 수정 사항들이 실시간으로 반영이 되기 때문에
카메라 트래킹 같은 움직임도
동시에 모든 랜더머신에 반영할 수 있는 거고
만약에 라이팅을 수정한다던지
추가적으로 뭐 액팅, 액터
이런것들 모든 것을 수정한 사항들이 실시간으로 모든 랜더머신에 적용되서
말 그대로 실시간 icvfx를 할 수 있도록
해주는 중요한 기능입니다
종료하겠습니다
추가적으로 보자고 하면
이제 라이브링크를 저희가 한번 넣어볼텐데요
사실 지금 제가 받고 있는 소스는 없어서
들어오는 것은 없지만 하나 한번 테스트를 해보겠습니다
이렇게 되면 받고는 있지만 들어오는 데이터가 없습니다
이거는 카메라 트래킹 데이터를 진행하는 거고요
기본적으로 저희는 항상 프리셋을 만들어서 사용해야 됩니다
vp 폴더에 라이브링크에 보통 만드는 편이고요
이런 식으로 별도의 프리셋을 만들어 놓습니다
이게 만약에 카메라 데이터가 들어오는 트래킹 데이터라고 생각하시면
이 카메라 액터에다가
라이브링크 컨트롤을 넣어주신 다음에
여기서 제가 받고 있는 걸 넣어준다고 생각하시면 됩니다
지금은 받고 있는 데이터가 없기 때문에 이런 식으로 나오지만
이런 식으로 진행을 하시고
추가적으로 프로젝트 세팅에 들어가시면
라이브링크 탭이 있습니다
여기서 라이브링크를 검색하면 디폴트 라이브링크 프리셋이 있는데요
얘를 추가해 줄 수 있도록 하겠습니다
이걸 추가하면 이 프로젝트를 실행할 때 어떤 라이브링크를 불러올지를 할 수 있습니다
이 상태에서 체크아웃을 진행을 하고
서밋을 진행하겠습니다
이렇게 된 다음에
보시면 스위치 보드에서
보시면 체인지 리스트가 다시 업이 되고요
이 앤드스프레이 노드도 동일한 라이브링크 프리셋을 불러도 설정을 해야 되는데요
예 같은 경우 방금 제가 설정을 해놨었고
얘 같은 경우는 세팅에 들어오신 다음에
엔디스플레이 오셔서
좀 내려보시면
이 노드에서 켤 때
라이브링크 프리셋을 어떤 걸 불러올지를 선택할 수 있습니다
여기서 선택하신 다음에
제가 방금 만들었던 카메라 트래킹 라이브링크 프리셋을 눌러줍니다
이렇게 진행하시면
이걸 실행했을 때
올바르게 제가 만들었던 프리셋이 들어오는 것을 알 수가 있습니다
이 모든 것의 가장 큰 핵심은
내 컴퓨터에 있는 모든 컨트롤이나 설정들이
렌더 노드에도 올바르고 동일하게 들어가는 것이 가장 중요합니다
여기까지 앤디스플레이를 활용한 icvfx를 하기 위해
전반적인 개념과 실습을 진행했습니다
직접 실습을 하다보면 여러 에러와 버그를 만날 수 있습니다
이를 하나씩 해결해 나가다보면 전반적인 이해가 더욱 높아질 것입니다
그럼 이번 시간 학습한 내용을 복습하면서 마무리하겠습니다
감사합니다
멀티유저와 스위치보드 활용을 위한 네트워크 기초 네트워크 기초 네트워크:컴퓨터,스마트폰,데이터 송수신 장치 등을 일컫는 노드를 통신할 수 있도록 연결된 통신 형태
통신:노드끼리 데이터를 주고 받는 것 프로트콜:데이터 통신에 사용되는 규칙 링크:노드 사이에 패킷을 전달하기 위한 물리적인 통신 경로
패킷:데이터를 작은 단위로 분할한 것 ip주소:네트워크의 노드 식별을 위해 부여되는 고유한 주소
ipv4 32비트 방식 주소 체계로 약 42억개의 주소 제공 간단한 구조 및 쉬운 설정으로 대부분의 웹사이트,네트워크 환경에서 지원 가능함
인터넷 사용 급증으로 이한 주소 부족 문제 발생
ipv6 128비트 방식의 주소 체계로 약 340억개의 주소 제공 최신 디바이스 및 프로토콜을 지원함 복잡한 설정으로 오류 발생 가능성이 높으며,주소가 길어 외우기 어려움
ip의 구분 고정ip:변하지 않는 안정적인 연결을 제공하며 보안성이 높음 유동 ip:네트워크 자원을 효율적으로 활용하기 위한 방식으로 대부분의 일반 사용자들이 사용함
공인 ip:전 세계적으로 고유하며 외부와 직접 통신할 수 있는 주소 사설 ip:내부 네트워크에서만 사용되며 보안 강화에 적합함
포트 데이터를 주고 받을 때 사용하는 응용프로그램의 상세한 주소 잘 알려진 포트:0~1023번, HTTP는80포트,HTTPS는 443포트 사용
등록된 포트:1024~49151번,특정 응용프로그램에 등록되어 사용 다이내믹 포트: 49152~65535번,동적으로 할당되어 자유롭게 사용 가능
네트워크 전송 방식 유니캐스트:1대1 통신을 위한 전송 방식으로 특정 대상과 직접 통신 시 사용함 브로드캐스트:1대 전체 통신 방식,네트워크 상의 모든 기기에 데이터를 전송함
멀티캐스트:1대 그룹 통신 방식,특정 그룹의 여러 대상에게 데이터를 동시에 전송함 애니캐스트:1대1 통신 방식,특정 다수 그룹 중 하나를 선택해 데이터를 전송함
엔디스플레이 및 협업 과정 실습 스위치보드 다수의 원격 디바이스를 제어하는 언리얼 엔진 플러그인으로 보조 애플리케이션인 스위치보드리스너와 함께 사용됨
스위치보드리스너:멀티유저,엔디스플레이,테이크레코더 등 다양한 기능 활용이 가능한 언리얼 엔진 C++ 애플리케이션
언리얼 엔진 실행 후 스위치 보드 활성화 및 런처 스위치보드 리스너 확인 퍼포스드민 실행 후 프로젝트 폴더 이름과 동일한 NDC_test Depot생성
Depot와 워크스페이스 연결 후 워크스페이스 데이터 올리기 p4v에서 NDC_test_uproject를 NDC_test_Depot에 연결하는 매핑 작업 실행
컨피그,콘텐트,유프로젝트 선택 후 애드 버튼 클릭 서밋 버튼 클릭 후 체인지리스트 디스크립션 입력하고 서밋 선택
리비전 컨트롤 연결 후 프로바이더에 퍼포스 선택 워크스페이스를 main_10으로 설정
컨피그 생성 컨피그 패치에 NDC_test_v1으로 이름 설정 엔진 다이어에 엔진의 정확한 설치 경로를 입력
p4프로젝트 패치는 해당 디팟 이름과 동일해야함 워크스페이스 이름은 p4v의 좌측 상단에 있는 이름과 동일하게 입력함
언리얼 디바이스 추가 애드 디바이스 언리얼 디바이스 선택해 메인 pc 등록 이름은main_10으로,어드레스는 현재 ip로 설정
엔디스플레이 추가 애드 디바이스 엔디스플레이 선택 후 테스트_엔디스플레이컨피그.uasset파일 불러오기 populate버튼을 클릭해 변환 후 ok버튼 선택
렌더 노드의 워크스페이스 이름을 render_20으로 변경 에디트 워크스페이스 render_20클릭 후 NDC_test를 연결하는 매핑 작업 실행
NDC_test 디팟을 클릭하고 싱크를 진행함
멀티유저 세션에 테스트1으로 이름 설정 및 오토 조인 활서오하 좌측에 메인,우츠겡 렌더 머신으로 화면 분할 엔디스플레이의 움직임이 렌더 머신에도 실시간 자동 반영되는 것 확인
라이브링크 콘텐트 0_vp 라이브링크 폴더에 카메라트래킹_라이브링크프리셋 생성 디테일 창의 카메라 액터에 라이브 링크 콘트롤러 추가 후 해당 데이터를 적용함
에디트 프로젝트 세팅 라이브 링크의 디폴트 라이브 링크 프리셋에 카메라트래킹_라이브링크프리셋 추가
체크아웃 후 서밋 진행 세팅 엔디스플레이세팅의 라이브링크프리셋 항목에 카메라트래킹_라이브 링크 프리셋 적용