Unity 動画再生
ベタですがUnityで動画を再生する必要があり、
Unity標準機能であるMovieTextureではいまいちだったのでいろいろ調べました。
欲しい要素は下記の通り。
・高速
・早・遅送りができる
(ちなみにMovieTextureで早・遅送りしたい場合は、
シーンにAudio Sourceを追加しVideoの音声をAudio Clipとします。
そのAudio SourceのPitchを増減することで動画の再生スピードも変わります....
どういうこっちゃ...)
まずネットでよく見かけたのが、AVPro Windows Media
https://www.assetstore.unity3d.com/jp/#!/content/2546
高速で非常に惜しかったのですが、早・遅送りができない...
次にMedia Foundationというキーワードで見つけたのが、あたりでした!
MPMP - Multi Platform Media Player
https://www.assetstore.unity3d.com/jp/#!/content/53391
$175と少々高額ですが、Free Trialバージョンもあります
高速且つ早・遅送りも可能で要件を満たしています。
更にAndorid/iOS対応、動画ファイルをUnityにインポートする(=エンコードしている為かすんごい時間がかかる)必要が無いというオマケつき。
しかも使い方も簡単です。
1.適当なGameObjectに"MPMP" Scriptを付与します。
2.videoPathに動画ファイルへのパスを記述します。
動画ファイルがStreamingAssets内の場合、相対パスで記述可。
その他の場所にある場合はフルパスを記述すれば大丈夫。
(何れの場合も拡張子まで入力するのをわすれずに)
3.videoMaterialに動画の画をレンダリングするマテリアルを指定
4."AutoPlay" "Looping"などのオプションはご利用シーンに合わせて変更
5.プロジェクトを実行して、"Load"ボタン(→"Play"ボタン:AutoPlayがFalseの場合)を押下すると再生されます。
各ボタンをスクリプトで実行するには、
monoflow.MPMP.Load(), monoflow.MPMP.Play()など。
-- 以上、ちょうかんたん♪
Androidでも試してみたのですが、元気に再生しますw
Androidでの注意点は、私が所持している端末(Xperia Z4, Galaxy S6)のせいかもしれませんがOpenGL ES2.0じゃないと上手くレンダリングしてくれませんでした。
(マニュアルには3.0 or 2.0との記載がある)
草々