MovieTexture 사용 방법

6874 단어 Unity
이 기사는 Unity 5입니다.5를 대상으로 하다.
Unity5.왜냐하면 6 이후부터 비디오 플레이어를 실시했거든요.
나는 네가 그것을 사용하는 것을 건의한다.
Unity로 애니메이션을 재생할 때 MovieTexture를 사용하는 방법이 있습니다.
공식 안내서http://docs.unity3d.com/ja/current/Manual/class-MovieTexture.html라면
"해당 형식의 비디오 파일을 항목에 넣으면 자동으로 변환됩니다.
변환할 때 Quicktime을 사용하기 때문에 설치해야 합니다."
이와 같이 Windows QuickTime은 안전하다고 기록되어 있습니다.
문제가 남아 있는 상태에서 버전 업그레이드가 중단되어 사실상 사용할 수 없습니다.
또 수첩에 기재된 내용이라면 구체적인 방법이 있을 것이다
이해하기 어려워 실제 영상을 재생하는 방법을 총결하기로 했다.

1) 비디오 데이터 준비


MovieTexture가 실제로 ogv를 재생하는 것 같기 때문에 Unity 변환을 사용하지 마십시오
ogv를 미리 준비하세요.ffmpeg로 ogv를 변환할 수 있습니다.
구축된 ffmpeg는 https://ffmpeg.zeranoe.com/builds/ 정도에서 살 수 있습니다.

변환 예


enc.bat
ffmpeg -y -i "title.mp4" -b 8M -ab 128k "title.ogv"

2) Unity 프로젝트에 배치


변환된 ogv 파일을 StreamingAssets 폴더로 복사합니다.

3) 재생할 스크립트 쓰기


Inspector에서 소재를 텍스쳐로 설정하는 MovieTexture
프로세스 대신 MovieTexture를 처리하는 스크립트를 작성합니다.
이것을 직접 복사해서 사용할 수 있다.
Movie.cs

    using UnityEngine;
    using System.Collections;

    public class Movie : MonoBehaviour {

        public string _movieFile;

        // Use this for initialization
        void Start () {

            StartCoroutine(moviePlay(_movieFile));
        }

        // Update is called once per frame
        void Update () {

        }

        private IEnumerator moviePlay(string movieFile)
        {
            string  movieTexturePath    = Application.streamingAssetsPath + "/" + movieFile;
            string  url                 = "file://" + movieTexturePath;
            WWW     movie               = new WWW(url);

            while (!movie.isDone) {
                yield return null;
            }

            MovieTexture movieTexture = movie.movie;

            while (!movieTexture.isReadyToPlay) {
                yield return null;
            }

            var renderer = GetComponent<MeshRenderer>();
            renderer.material.mainTexture = movieTexture;

            movieTexture.loop = true;
            movieTexture.Play ();

    #if false
            //オーディオを使用する場合はこの部分を有効にしてください
            var audioSource = GetComponent<AudioSource>();
            audioSource.clip = movieTexture.audioClip;
            audioSource.loop = true;
            audioSource.Play ();
    #endif
        }
    }

4) 구성 요소 설정


GameObject에서 스크립트를 설정하면 애니메이션을 재생하는 GameObject가 됩니다.
(일단 적당한 재료를 설정해보자)

설정 예



잡담


방송 후에 오류가 발생할 수 있는데 찾아봤어요.
유닛 버그인 것 같아요.

좋은 웹페이지 즐겨찾기