どうもです~
先日、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で定義しました。
という感じで追記しましたが、「ここ間違ってる!」や「もっといい方法がある」等ございましたら、是非コメントよろしくお願いします!
<スポンサーリンク>
コメント
やり方分からなくて困っていたので助かりました!
ありがとうございます!!