본문 바로가기

유니티/워크플로

[Unity] 유니티에서 360 영상 실행 및 촬영 (Unity VR 360)

반응형

게임 엔진에서의 360 영상

유니티 엔진에서는 고프로(GoPro)등으로 촬영된 360도 영상을 실행할 수 있고, 반대로 유니티 환경을 360 영상으로 촬영할 수도 있다. 다양한 방법이 있지만 그 중 간단한 방법을 하나씩 살펴보고자 한다.


촬영된 360영상 실행방법

이 방법은 스카이 박스 머테리얼에 360 영상을 렌더텍스처로 입히는 방식이다.

따라서 코딩이 필요 없고 간단하게 적용할 수 있다.

 

우선 360 영상을 에셋 폴더에 넣는다.

360 영상

이때 확장자는 .360이 아닌 실행가능한 비디오 포맷 이어야 한다. (만약 다른 형태라면 변환을 해야 한다)

 

그리고 비디오를 렌더링 할 렌더러가 하나 필요하다. 마찬가지로 에셋 폴더에서 렌더 텍스처를 하나 추가해 준다.

Assets/Create/Render Texture

생성된 렌더 텍스처를 누르면 인스펙터에 Size를 입력하는 칸이 있는데, 이 필드를 비디오의 해상도와 일치시켜 주는 것이 좋다. (가장 퀄리티가 좋다)

 

Size

영상의 사이즈는 에디터 외부(윈도우 파일)에서 직접 찾아도 되지만 에디터 내부에서 아래와 같은 방식으로 찾을 수도 있다.

 

비디오 인스펙터/Source Info

Info에 Pixels가 있는데 해당 정보를 Size에 기입하면 된다.

 

이제 영상을 실행해서 생성된 렌더 텍스처에 이미지를 입히는 작업이 필요하다.

우선 아래처럼 Video Player라는 빈 오브젝트를 만든다.

 

그리고 Video Player 컴포넌트를 추가해야 한다.

 

이제 여기에 영상과 렌더 텍스처를 각각 지정해 주면 된다.

 

이렇게 하면 렌더 텍스처에 영상은 덧입혀지지만 실제 화면에는 보이지 않는다.

우리는 스카이박스에 해당 영상을 틀어서 보여줄 것인데, 그렇게 하기 위해서는 머테리얼(스카이박스)이 필요하다.

 

빈 머테리얼을 하나 만들고 셰이더를 파노라믹으로 변경해 준다.

 

Skybox/Panoramic

그리고 Spherical의 텍스처를 아까 생성했던 렌더 텍스처를 적용한다.

 

마지막으로 이 머테리얼을 스카이박스에 집어넣기만 하면 된다.

스카이 박스 머테리얼 경로 : Window/Rendering/Lighting/Environment/Skybox Material

Window/Rendering/Lighting/Environment/Skybox Material

그리고 실행하면 다음과 같은 360도 영상을 얻을 수 있다.

 

실행 결과


유니티에서 360 영상 촬영 방법

다행히도 360도 촬영 방법은 실행 방법보다 훨씬 간단하다.

 

우선 Package Manager에서 Recorder를 Install 한다.

 

Recorder

Unity Registry에 있음을 주의하자.

 

이제 Recorder Window를 켜서 Source를 360 View로 해두고 녹화하면 된다.

(Recorder Window 경로: Window/General/Recorder/Recorder Window)

자세한 세팅은 아래와 같다.

 

Window/General/Recorder/Recorder Window

이렇게 촬영된 영상은 마찬가지로 유니티에서 실행할 수도 있다.

반응형