hibitekitou
Unityで再生できる Ogg Theora を作る。
cg |2015-10-17
所で、Theoraってなんて読むの? しおら?
特許上の懸念無くフリーで使えるフォーマットということでFirefoxやChromeで再生可能な動画フォーマットですけど、ちっとも広がらない印象があります。
しかしてUnityではMovieTextureとして読み込まれたmovやmp4なんかのファイルは、Ogg Theoraに変換して利用されるそうです。
ということで、テクスチャに動画を貼り付けるなら、そのフォーマットにしておくのが好ましいようなのだけど、これってどうやって作るの?って思うわけじゃないですか。
Mac使いとしては、QuickTime 7 Playerから変換できればうれしいわけで、Xiph.Orgっていうおあつらえむきのコンポーネントが配布されています。こちらは/Library/QuickTimeなんかにいれてやればQT Playerから使えるのですけど、吐き出されたoggファイルは、僕の検証環境だと、Unityを固まらせてしまいました(Choromeで再生可能なムービーでしたがね)。
次にvlcを試してみますと、これで変換したのはうまく動いてくれましたですよ。けれども画質が悪い。
ということで、Adobe MediaEncoderで拡張子.webmや.oggに変換する [Qiita] という記事を参考にfnordware/AdobeOgg [GitHub]からAdobeアプリ向けのプラグインを入れてみました。んで、MediaEncoderで書き出してみたところ、とりあえずは再生されましたですよ。
![](https://blogimg.goo.ne.jp/user_image/3f/30/233b774273752f7d71c494d48409aa5b.gif?random=78c94b765b224c3bd5ec8d87df652237)
ちなみに検証は
#pragma strict //↓oggファイルの場所 var url = "file:///Users/username/Desktop/testOgg.ogg"; function Start () { var www : WWW = new WWW(url); var aClip : AudioClip; var aSource : AudioSource; var movTex : MovieTexture = www.movie; while ( !movTex.isReadyToPlay) yield; GetComponent.<Renderer>().material.mainTexture = movTex; aSource = GetComponent.< AudioSource>(); aSource.clip = movTex.audioClip; movTex.loop = true; aSource.loop = true; movTex.Play(); aSource.Play(); }
これをQuadに適用して、さらにAudioSourceコンポーネントを追加の上、実行しております。
コメント ( 0 )|Trackback ( )
・