【Unity】透過動画をVideoPlayerで再生させる方法

どうもです~

先日、After Effect CCを使用してアルファ値(透過情報)入りの映像を制作し、それをUnityで再生しようと思ったのですが…

どうやらUnityでサポートされている透過動画の形式が「.webm」ということを初めて知り、よくわからなかったので備忘録を兼ねて記事にしようと思います!


大まかな手順

私が行った手順としては以下です!

①After Effect CCでアルファ値入りの映像を制作

②Adobe Media Encoder CCにプラグインを追加する

③Adobe Media Encoder CCでエンコード設定を行う

④UnityのVideoPlayerで透過動画を再生!


Adobe Media Encoder CCに追加するプラグイン

エンコードは基本的にAdobe Media Encoderで行うのですが、「そもそもwebmなんて形式がないじゃん!」となり、さっそくつまづきました。どうやらAdobe標準ではサポートされていないみたいなので、プラグインの導入から行います。

 

まずは以下のサイトからインストーラーをダウンロードします

http://www.fnordware.com/WebM/

赤枠で囲ったところからご自身のOSのものを落としてください。

怪しいサイトではないので安心してください。Adobe公式が案内を行っていた(気がします)

 

次に、インストーラーを起動し、保存先はいじらずそのままインストールします

 

そしてAdobe Media Encoderを起動するとなんと!!

webm形式の項目が増えています!


<スポンサーリンク>


Unityで再生するためのエンコード設定

ですが、そのままレンダリングしてもUnityでは再生することはできません。以下のように設定を行いましょう。

 

こうすることでUnityで再生できる形式になります。

 

そして、レンダリングを済ませて動画ファイルをUnityにインポートしVideoPlayerに紐付ければ透過動画を再生することができます!

 

他にも透過動画を再現する方法はありましたが、個人的にはこれが1番簡単にできた方法でした!

2019/03/13 注意事項追記

すいません、1つ最後のステップを記載するのを忘れておりましたm

Unityに取り込んだ後、動画ファイルを選択して「Keep Alpha」の項目にチェックを入れないとおかしな表示になってしまいます!

また、Android向けの場合、メニューのFile > Build Setting > Player Settings で「Multithreaded Rendering」のチェックを外しておかないと表示がおかしくなります。

ついでに、シーン上の「Main Camera」のClear Flagsの設定によってもおかしな表示になります。不安な方はSkyboxをおすすめします。

さらにさらに!メニューの Edit > Project Settings > Quality から「V Sync Count」に Don`t Sync 以外を設定していると、iOSで検証を行った時にものすごくカクついてしまいました。原因ははっきりとつかめていないのですが、私の場合は下記のように設定し、フレームレートはScriptで定義しました。

という感じで追記しましたが、「ここ間違ってる!」や「もっといい方法がある」等ございましたら、是非コメントよろしくお願いします!

<スポンサーリンク>

コメント

  1. ひなな より:

    やり方分からなくて困っていたので助かりました!
    ありがとうございます!!