4305


Unityでムービー再生をするときは、MovieTextureを使うのが基本だと思います。

<http://docs-jp.unity3d.com/Documentation/Components/class-MovieTexture.html>

ですが、これはProライセンス（iOSProとAndroidProも必須？）のため、できればBasicライセンスでも動かせる実装をしたいと思っています。
Unityでムービー再生をUnityProライセンスなしで行う方法やAssetがあったらお願いします。


CC BY-SA 3.0
2015-01-08T06:03:31.170
4272
2015-01-20T03:54:24.103
3593
question
unity3d
Unityでムービー再生をUnityProライセンスなしで行うには？


調べた限り、これはUnityFreeで使えそうでした。（未確認・未購入）

<https://www.assetstore.unity3d.com/jp/#!/content/15580>

MPEGなどの純粋な動画ファイルではなく、MJPG（動画を大量のJPGテクスチャの形にするという形式）のようです。この形式だとMPEG等に比べて、ファイルサイズやメモリ消費等が大きいかもしれないですね。


CC BY-SA 3.0
2015-01-08T06:09:19.450
4273
2015-01-09T10:30:19.087
2015-01-09T10:30:19.087
3593
3593
4272
answer


プラグインになりますがiOSのWebViewで動画再生してみたことがあります。  
[https://www.youtube.com/watch?v=Wxd6dUXsq9g&t=50s](https://www.youtube.com/watch?v=Wxd6dUXsq9g&t=50s)  
WebViewを Objective-C で3Dライクに苦労して傾けてあります。

WebPlayerですとJavascript経由でYoutubeの動画などが再生できます。  
テスト画面  
![ScreenShot](https://i.stack.imgur.com/h5sEu.jpg)

Unity WebPlayer  
<https://museum3d.azurewebsites.net/v1/fb/170251749687065_103246>

参考までに、テストしたJavascriptのコードです。

[code]

    function showVideo(videoId, source){
      $("#video").show();
      var el = document.getElementById("video");
      if (source == "youtube") {
        var html = '<iframe width="560" height="315" src="https://www.youtube.com/embed/';
        html += videoId + '?wmode=opaque&autoplay=1&enablejsapi=1" frameborder="0" allowfullscreen></iframe>';
        var userAgent = window.navigator.userAgent.toLowerCase();
        console.log("showVideo: userAgent" + userAgent);
        if (userAgent.indexOf('chrome') != -1) {
          console.log("showVideo: userAgent" + userAgent);
        } else if (userAgent.indexOf('safari') != -1) {
          html ='<object width="560" height="315">';
          html +='<param name="movie" value="http://www.youtube.com/v/';
          html += videoId + '?version=3&amp;hl=en_US&amp;rel=0"></param>';
          html +='<param name="allowFullScreen" value="true"></param>';
          html +='<param name="allowscriptaccess" value="always"></param>';
          html +='<embed src="http://www.youtube.com/v/';
          html += videoId + '?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash"';
          html +=' width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed>';
          html +='</object>';
        }
      } else if (source == "xxx") {
        console.log("showVideo:" + source);
      }
        el.innerHTML = html 
    }
    
[/code]

unity の生成する html に  
`<div id="video" style="opacity:0.8;"></div>`  
を追加。

3D空間にあわせて  
<http://thewebrocks.com/demos/3D-css-tester/>  
を参考にCSSを作成することで動画スクリーンを傾け(uGUIのカメラのような設定)。

[code]

     <style>
     #logosVideo {
       position:absolute;
       -webkit-perspective: 700px;
       perspective: 700px; 
     }
     #cubeVideo {
       display: block;  position: relative;  margin: 30px auto;
       height: 315px;  width: 560px;
       -webkit-transform-style: preserve-3d;
       -webkit-transform:  rotateY(30deg) rotateZ(0.5deg) rotateX(0.5deg);
       transform-style: preserve-3d;
       transform:  rotateY(30deg) rotateZ(0.5deg) rotateX(0.5deg);
     }
     </style>
    
    <div id="logosVideo">
       <div id="cubeVideo">
         <div id="video" style="opacity:0.8;"></div>
      <div>
    </div>`
    
[/code]

画面上に動画を表示すると uGUI のマウス操作と干渉するので、動画用に設定した領域は表示しないときは確実に閉じておく必要があります。

[code]

    $("#video").hide();
    
[/code]

Youtube の表示 on/off は以下を参照。  
<https://stackoverflow.com/questions/8667882/how-to-pause-a-youtube-player-
when-hiding-the-iframe>


CC BY-SA 3.0
2015-01-08T15:41:34.313
4305
2015-01-20T03:54:24.103
2017-05-23T12:38:55.250
-1
2108
4272
answer