Version: 2019.1
동영상 개요
MovieTexture에서 VideoPlayer로 마이그레이션

Video Player 컴포넌트

비디오 플레이어 컴포넌트를 사용하여 비디오 파일게임 오브젝트에 연결하고 런타임 시점에 게임 오브젝트의 텍스처에서 재생할 수 있습니다.

아래 스크린샷에서 구형 게임 오브젝트에 연결된 Video Player 컴포넌트를 확인할 수 있습니다.

Video Player 컴포넌트의 Material Property 는 기본적으로 _MainTex 으로 설정되어 있습니다. 이 설정에서는 렌더러가 있는 게임 오브젝트에 Video Player 컴포넌트가 연결되면, 렌더러의 텍스처가 게임 오브젝트의 메인 텍스처이기 때문에 자동으로 해당 렌더러의 텍스처에 자신(비디오 플레이어)을 할당합니다. 여기에서는 게임 오브젝트에 Mesh Renderer 컴포넌트가 있으므로, 자동으로 비디오 플레이어가 Renderer 필드에 할당됩니다. 따라서 메시 렌더러의 텍스처에서 비디오 클립이 재생됩니다.

구형 게임 오브젝트에 연결되어 게임 오브젝트의 메인 텍스처(메시 렌더러의 텍스처)에서 비디오 클립을 재생하는 Video Player 컴포넌트
구형 게임 오브젝트에 연결되어 게임 오브젝트의 메인 텍스처(메시 렌더러의 텍스처)에서 비디오 클립을 재생하는 Video Player 컴포넌트

다음의 예와 같이 비디오를 재생할 대상을 직접 선택할 수도 있습니다.

Video Player 컴포넌트 레퍼런스

Video Player 컴포넌트
Video Player 컴포넌트
프로퍼티 기능
Source 비디오 소스 타입을 선택합니다.
Video Clip 비디오 클립을 비디오 플레이어에 할당합니다.
Video Clip 이 필드에서 Video Player 컴포넌트에 할당할 비디오 클립을 선택할 수 있습니다. 비디오 파일을 이 필드로 끌어다 놓거나, 필드 오른쪽에 있는 원 아이콘을 클릭한 후 에셋 목록에 있는 파일을 선택합니다.
URL URL(예: http:// 또는 file://)에 있는 비디오를 할당합니다. Unity 에디터는 런타임 시점에 이 URL에서 비디오를 읽어옵니다.
URL Video Player 컴포넌트에 할당할 비디오의 URL을 입력합니다.
Browse… 로컬 파일 시스템에서 파일을 찾아 file://로 시작하는 파일의 URL을 입력하려면 클릭합니다.
Play On Awake Play On Awake 체크박스를 선택하면 씬이 실행될 때 비디오를 재생합니다. 비디오 재생을 런타임 도중의 특정 시점에 비디오를 재생하려면 선택 해제합니다. 스크립트를 통해 Play() 커맨드를 사용하여 비디오 재생을 트리거할 수 있습니다.
Wait For First Frame Wait For First Frame 체크박스를 선택하면 Unity 에디터는 게임이 시작되기 전에 소스 비디오의 첫 프레임을 표시할 준비가 될 때까지 기다립니다. 선택 해제하면 비디오 시간과 게임이 실행되는 부분을 일치시키기 위해 비디오의 처음 일부 프레임이 생략될 수 있습니다.
Loop Loop 체크박스를 선택하면 소스 비디오가 끝에 도달하면 Video Player 컴포넌트가 비디오를 반복해서 재생합니다. 선택 해제하면 비디오가 끝에 도달하면 재생을 중지합니다.
Playback Speed 슬라이더를 조절하거나 숫자를 입력하여 0과 10 사이의 값으로 재생 속도를 설정합니다. 기본값은 1(보통 속도)입니다. 값을 2로 설정하면 비디오가 보통 속도의 2배로 재생됩니다.
Render Mode 드롭다운을 사용하여 비디오 렌더링 방법을 정의합니다.
Camera Far Plane 카메라의 후방 절단면에 비디오를 렌더링합니다.
Camera Near Plane 카메라의 전방 절단면에 비디오를 렌더링합니다.
Camera 비디오를 수신하는 카메라를 정의합니다.
Alpha 소스 비디오에 추가되는 전역 투명도 수준입니다. 절단면 뒤에 있는 요소가 절단면을 통해 보이도록 설정할 수 있습니다. 알파 채널에 대한 자세한 내용은 비디오 투명도 지원 문서를 참조하십시오.
Render Texture 렌더 텍스처에 비디오를 렌더링합니다.
Target Texture 비디오 플레이어의 이미지가 렌더링되는 렌더 텍스처를 정의합니다.
Material Override 렌더러의 머티리얼을 통해 게임 오브젝트의 선택된 프로퍼티에 비디오를 렌더링합니다.
Renderer Video Player 컴포넌트가 이미지를 렌더링하는 렌더러입니다. None 으로 설정하면 Video Player 컴포넌트가 소속된 게임 오브젝트의 Renderer 가 사용됩니다.
Material Property Video Player 컴포넌트 이미지를 수신하는 머티리얼 텍스처 프로퍼티의 이름입니다.
API Only 비디오를 VideoPlayer.texture 스크립팅 API 프로퍼티에 렌더링합니다. 스크립트를 사용하여 텍스처를 원하는 대상에 할당해야 합니다.
Aspect Ratio Render Mode 사용할 때 Camera Near Plane, Camera Far Plane, Render Texture 를 채우는 이미지의 종횡비입니다.
No Scaling 스케일을 사용하지 않습니다. 비디오가 대상 사각형의 중앙에 표시됩니다.
Fit Vertically 대상 사각형의 세로 길이에 맞추어 소스를 스케일하고 필요에 따라 왼쪽과 오른쪽을 일부 자르거나 좌우에 검정색 영역을 남깁니다. 소스 종횡비가 유지됩니다.
Fit Horizontally 대상 사각형의 가로 길이에 맞추어 소스를 스케일하고 필요에 따라 위쪽과 아래쪽을 일부 자르거나 위아래에 검정색 영역을 남깁니다. 소스 종횡비가 유지됩니다.
Fit Inside 소스를 자를 필요가 없도록 대상 사각형에 맞추어 스케일합니다. 필요에 따라 좌우 또는 아래위에 검정색 영역을 남깁니다. 소스 종횡비가 유지됩니다.
Fit Outside 좌우 또는 위아래에 검정색 영역을 생기지 않도록 필요에 따라 잘라서 좌우 또는 위아래를 일부 잘라서 대상 사각형에 맞게 소스를 스케일합니다. 소스 종횡비가 유지됩니다.
Stretch 대상 사각형에 맞게 가로 또는 세로로 스케일합니다. 소스 종횡비가 유지되지 않습니다.
Audio Output Mode 소스의 오디오 트랙을 출력하는 방법을 정의합니다.
None 오디오를 재생하지 않습니다.
Audio Source Unity의 오디오 프로세싱을 적용할 수 있도록 오디오 샘플을 선택된 오디오 소스에 전송합니다.
직접 기여(Direct) Unity 오디오 프로세싱을 건너뛰고 오디오 샘플을 오디오 출력 하드웨어로 직접 전송합니다.
API Only (Experimental) 오디오 샘플은 연결된 AudioSampleProvider에 전달됩니다.
Controlled Tracks 비디오의 오디오 트랙 수입니다.

SourceURL 로 설정되어 있을 때에만 표시됩니다. SourceVideo Clip 으로 설정되어 있을 때에는 비디오 파일을 조사하여 트랙 수를 확인합니다.
Track Enabled 관련 체크박스를 선택하여 활성화하면 연결된 오디오 트랙이 재생에 사용됩니다. 재생 전에 설정해야 합니다.

체크박스 왼쪽에 있는 텍스트는 트랙 번호, 언어, 채널 수 등 오디오 트랙에 대한 정보를 제공합니다.

예를 들어 위 스크린샷에서 이 텍스트는 Track 0 [und. 1 ch]로 나타나는데, 첫 번째 트랙(Track 0)이고 언어가 정의되지 않았고(und.) 트랙에 채널이 하나(1 ch) 있는 모노 트랙임을 의미합니다.

소스가 URL이면 이 정보는 재생 중에만 제공됩니다.

이 프로퍼티는 소스가 오디오 트랙(하나 이상)을 포함하는 비디오 클립이거나 소스가 URL(재생 중에 URL에서 제공될 것으로 예상되는 트랙 수를 표시할 수 있음)로 설정되어 있을 때에만 표시됩니다.
Audio Source 오디오 트랙을 어느 오디오 소스를 통해 재생할 것인지 설정합니다. 타겟 오디오 소스도 오디오 클립을 재생할 수 있습니다.

오디오 소스의 재생 컨트롤(스크립팅 API의 Play()Play On Awake)은 오디오 소스의 오디오 트랙에 적용되지 않습니다.

이 프로퍼티는 Audio Output ModeAudio Source 로 설정되어 있을 때에만 표시됩니다.
Mute 연결된 오디오 트랙의 소리를 끕니다. Audio Source 모드에서는 오디오 소스의 컨트롤이 사용됩니다.

이 프로퍼티는 Audio Output ModeDirect 로 설정되어 있을 때에만 표시됩니다.
Volume 연결된 오디오 트랙의 볼륨입니다. Audio Source 모드에서는 오디오 소스의 볼륨이 사용됩니다.

이 프로퍼티는 Audio Output ModeDirect 로 설정되어 있을 때에만 표시됩니다.

비디오 플레이어 스크립팅 예시

다음 스크립트는 VideoPlayer 컴포넌트의 몇 가지 기능을 보여줍니다.

// Examples of VideoPlayer function

using UnityEngine;

public class Example : MonoBehaviour
{
    void Start()
    {
        // Will attach a VideoPlayer to the main camera.
        GameObject camera = GameObject.Find("Main Camera");

        // VideoPlayer automatically targets the camera backplane when it is added
        // to a camera object, no need to change videoPlayer.targetCamera.
        var videoPlayer = camera.AddComponent<UnityEngine.Video.VideoPlayer>();

        // Play on awake defaults to true. Set it to false to avoid the url set
        // below to auto-start playback since we're in Start().
        videoPlayer.playOnAwake = false;

        // By default, VideoPlayers added to a camera will use the far plane.
        // Let's target the near plane instead.
        videoPlayer.renderMode = UnityEngine.Video.VideoRenderMode.CameraNearPlane;

        // This will cause our Scene to be visible through the video being played.
        videoPlayer.targetCameraAlpha = 0.5F;

        // Set the video to play. URL supports local absolute or relative paths.
        // Here, using absolute.
        videoPlayer.url = "/Users/graham/movie.mov";

        // Skip the first 100 frames.
        videoPlayer.frame = 100;

        // Restart from beginning when done.
        videoPlayer.isLooping = true;

        // Each time we reach the end, we slow down the playback by a factor of 10.
        videoPlayer.loopPointReached += EndReached;

        // Start playback. This means the VideoPlayer may have to prepare (reserve
        // resources, pre-load a few frames, etc.). To better control the delays
        // associated with this preparation one can use videoPlayer.Prepare() along with
        // its prepareCompleted event.
        videoPlayer.Play();
    }

    void EndReached(UnityEngine.Video.VideoPlayer vp)
    {
        vp.playbackSpeed = vp.playbackSpeed / 10.0F;
    }
}

  • 2017–05–07 편집 리뷰를 거쳐 페이지 수정됨

  • Unity 5.6의 새로운 기능

동영상 개요
MovieTexture에서 VideoPlayer로 마이그레이션