今回は、サーフェイスID(又は オブジェクトID)を使ってボディーの色を変更します。
素材は、LightWave 3Dからプラグイン exrTrader を使ってマルチパスレンダリングをしているので、サーフェイスIDも 1個のファイルに全て含まれています。
サーフェイスIDがあると、After Effectsの 3Dチャンネルエフェクト「IDentifier」で、任意のサーフェイスを手早く選択できます。
Channel Infoをクリックして、ダイアログボックスが表示されれば、IDが含まれている事になり、IDが含まれていない時は、メッセージだけポップアップされます。
前回のRawレイヤーの複製を作成して、「IDentifire」で、ID "15"でボディーのサーフェイスを選択できています。
色調調整で、色を変更。
これで、ボディーの色は変更されました。
しかし、サーフェイスの輪郭に沿って、グリーン色がはみ出ています。
エフェクト「チョーク」を "-1"に設定して適用すると、目立たなくすることができます。
以上ですが、サーフェイスIDに関するネタを補足しておきます。
・サーフェイスIDを出力できない場合は、8bpcの色深度で色分けしたサーフェイスをレンダリングしたものでも利用できます。
エフェクト「色を変更」の「カラー補正マスク」表示にして、色を指定すればサーフェイスのマスクを作成できます。
・エフェクト「IDentifire」は、1個のレイヤーで 2回適用することができます。
同じサーフェイスを持ったオブジェクトが複数ある時に、オブジェクトIDとサーフェイスIDから、サーフェイスの選択が可能です。
続きは次回に・・・
<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
Adobe Cloudの利用を機にAfter Effects CS6を使い始めたのですが解らない事が多く、管理人様のブログを参考にさせて頂いております。
Maxwell Renderで書き出したOpenEXRを使ってコンポジットをしたく「【After Effects】3Dチャンネル コンポジット『車の色を変える』:Part 3 Surface ID」で解説されていることを試してはいるもののなかなか上手く行かず困っております。
ProEXR(体験版)やEXtractoRを使って各チャンネルを抽出する所までは出来ているので、IDentiferやIDマットが認識出来る形にOpenEXR_channel_map.txtを変更する必要があるかとも考え、内容を書き換えてもみましたが成功には至っておりません。
(※68行の「objectID」をMaxwell Renderで生成されるチャンネル名「OBJECTID」に変更するも影響せず、69行目などに「NORMAL NRML」等のMaxwell Renderが生成するチャンネル名で行を追加するとAfter Effects自体が起動しなくなることもありました)
管理人様もMaxwell Renderを使用されているようですが、Maxwell Renderで書き出したOpenEXRを使ってIDentiferやIDマットを使ってオブジェクトIDを選択出来た経験はありますでしょうか?
今のところはProEXR(体験版)やEXtractoRを使って抽出したオブジェクトIDチャンネルを使い、カラーキーや色を変更を利用して誤魔化し程度にマスクすることは出来ていますが、どうしても境界が美しくならないので可能であれば正規の方法で利用出来たらと考えています。
お手数とは存じますがご教授願いたく宜しくお願いします。
IDentiferをクリックした時にChannelを選択するダイアログが出ましたか?
エラーメッセージが出た場合は、OpenEXRファイルにObjectIDやSurfaceIDが含まれていないのが原因です。
IDentiferは、マルチチャンネル(マルチパス)のOpenEXRでのみ動作します。
調べてみましたがMaxwellRenderのレンダリングオプションには、マルチチャンネルのOpenEXR出力は無いように思います。
MaxwellRenderでは、MXIのファイルがマルチチャンネルになっています。
マルチチャンネルについては、下記リンクを参考にしてください。
http://gimon.blog.ocn.ne.jp/blog/2008/11/after_effects_c_b5e7.html
After EffectsでMXIファイルを開くプラグインをNext Limit社のサイトでダウンロード出来ますが、オブジェクトIDを選ぶ機能は付いていません。
前置きが長くなりましたが、境界が綺麗にならないのは、アンチエイリアスが原因です。
サーフェイスを選択するような作業では、アンチエイリアスを使わずにジャギーな状態でレンダリングすると境界は綺麗になります。下記のリンクを参考。
http://gimon.blog.ocn.ne.jp/blog/2009/09/after_effects_u.html
周囲のジャギーは、AEのエフェクト「マットを調整」で調整できます。
結局、アンチエイリアスを有効にしてレンダリングすると、サーフェイスIDを選択する方法でも、カラーキーで選択しても同じ結果になります。
しかし、MaxwellRenderでアンチエイリアスを無効にできないので?、「マットを調整」を使って調整したらどうでしょうか?
境界の隙間は埋まりますが、ディテールの品質は少し落ちそうです。
下記リンクのプラグインは、オブジェクトIDを使う作業に適していますが、CS6で廃止になったPixelBenderフィルターのため、CS5.5までの対応です。
チュートリアルビデオは何か役に立つかもしれないので、参考のために見られたら良いかもしれません。
http://gimon.blog.ocn.ne.jp/blog/2011/11/after_effects-3.html
http://www.youtube.com/watch?v=1V4hzznpL70&feature=player_embedded
余談ですが、Adobe Cloudで旧バージョンを使えるようにして欲しいという要望が多いので、検討されているようですよ。
早速検証をしてみました。
まず、
>IDentiferをクリックした時にChannelを選択するダイアログが出ましたか?
「No ID channels available.」というエラーメッセージが出ており、やはり正しく認識されていないようです。
http://livedoor.blogimg.jp/themartin130/imgs/d/0/d071b0a6.png
これはOpenEXR_channel_map.txtをカスタマイズすることで対応させることが出来ると考えているのですが勘違いしておりますでしょうか(汗)
>MaxwellRenderのレンダリングオプションには、マルチチャンネルのOpenEXR出力は無いように思います。
Maxwell RenderではRender OptionsのOutput ModeをEmbeddedにし、各チャンネルの画像形式をEXRにすることで一つのファイルにまとまった形で保存されるのですが、この仕様がマルチチャンネルとは非なるものということになるのでしょうか?
http://livedoor.blogimg.jp/themartin130/imgs/1/d/1d857d33.png
ちなみにEXtractoRではこの様に、
http://livedoor.blogimg.jp/themartin130/imgs/8/8/88b113ba.png
ProEXRでもこの様になり、各チャンネルの内容もちゃんと確認出来ます。
http://livedoor.blogimg.jp/themartin130/imgs/9/5/953076c3.png
なおShadeでもマルチレイヤーでのEXRの保存を試してみましたが、ProEXR・EXtratoR・IDentiferの反応はMaxwell Renderの時と同じでした。
http://livedoor.blogimg.jp/themartin130/imgs/3/2/32bb357a.png
アンチエイリアスの件は調べてみましたが、やはりMaxwell Renderではアンチエイリアスを制御する項目が無いので、教えて頂いた「マットを調整」などを使って調整するしかないようです。
ちなみにShadeには「データパスにアンチエイリアスを適用しない」というオプションがありましたので、Shadeでレンダリングする場合はこれを利用すると良いのですね。
>余談ですが、Adobe Cloudで旧バージョンを使えるようにして欲しいという要望が多いので、検討されているようですよ。
そうなんです、自分も切望している一人で、実はMaxwell Render用のプラグインはAfter EffectsもPhotoshopもCS6では機能しないんです。
各アプリケーションが皆で足並みを揃えて対応されて行く訳ではないですから、最新のものが利用出来ることは必ずしもありがたいことではありませんよね。
他の記事やチュートリアルのビデオが大変参考になりました。
3DCGのレンダリングデータというのは、言ってみればこれ以上無いほど整理されたソースであって、多くは様々な条件で撮影された映像を操らなければならないが故に、あの手この手で合成を目立たなくするための機能が用意されている訳ですね。
大変勉強になります。
ありがとうございます。
徐々に勉強して行きたいと思います。
このファイルでテストしてみましたが、M130さんと同じ結果になりました。
IDentiferでオブジェクトを選択できるEXRファイルとの違いを見ると、EXtractoRで開いたチャンネル一覧にObjectID・SurfaceIDの名前は表示されていません。
そのため、色分けされた画像はEXtractoRでプレビューできません。
埋め込み方が違うのか?それともOpenEXR_channel_map.txtで変更すれば対応できるのか? 私には わかりかねます。
最初のコメントで、AEを起動できなかった事があったそうですが、ダウンロードしたProEXRは<Plug-ins>-<Effects>フォルダーにインストールされていますか?
フォルダーの中にEXtratoR・IDentiferと同じ名前のプラグインがあるので、それを無効にしておかないと起動時に警告なしで立ちあっがって不安定になることがあります。
それと、IDマットはRLA・RPFファイル用のエフェクトなので、OpenEXRで使用できません。
IDentiferについてもう一つ、記事中の
<エフェクト「IDentifire」は、1個のレイヤーで 2回適用することができます> についてですが、
ダウンロードしたProEXRではこの機能は使えません。
AE標準の古いバージョンで起きる効果です。この件については、つい最近バグで報告しています。
>Maxwell Render用のプラグインはAfter EffectsもPhotoshopもCS6では機能しないんです。
一応、バージョン 2.72はAfter Effcts CS6で動作しているのでバージョンを確認して下さい。
AEでUVマッピングする様な時は、アンチエイリアスをオフにしますが、通常は適用した方が良いと思いますよ。
作業内容で臨機応変に使い分けて下さい。
>IDentiferでオブジェクトを選択できるEXRファイルとの違いを見ると、EXtractoRで開いたチャンネル一覧にObjectID・SurfaceIDの名前は表示されていません。?そのため、色分けされた画像はEXtractoRでプレビューできません。
なるほど、そのような違いがあるんですね。
今後も色々試してみようと思っているので、うまく行ったかどうか貴重な目安になりそうです。
>最初のコメントで、AEを起動できなかった事があったそうですが、ダウンロードしたProEXRは<Plug-ins>-<Effects>フォルダーにインストールされていますか??フォルダーの中にEXtratoR・IDentiferと同じ名前のプラグインがあるので、それを無効にしておかないと起動時に警告なしで立ちあっがって不安定になることがあります。
説明が足りず申し訳ありませんでした。
起動出来なかった例があったのはOpenEXR_channel_map.txtの内容を変更したことによるものでした。
例えばMaxwell RenderのNORMALのチャンネル名は「NORMAL」なので、68行目の下に「NORMAL NRML」(スペースはタブ)などと追加することで対応させられるのかと思ったのですが、余分なものを追加すると落ちてしまうケースがあるようなんです。
>それと、IDマットはRLA・RPFファイル用のエフェクトなので、OpenEXRで使用できません。
完全に勘違いしておりました。
そうしますとOpenEXRを使う場合は、ProEXRやEXtractoRでObjectIDのチャンネルを引き出してうまく使うのが良さそうですね。
>一応、バージョン 2.72はAfter Effcts CS6で動作しているのでバージョンを確認して下さい。
おかしいんですよねぇ...
Maxwell Renderも2.72にしていますし、After Effects用のプラグインも最新のものをダウンロードしていて、試しに入れ直しもしてみましたが読み込めないみたいなんです。
何か間違っている可能性もあるので、落ち着いて見直してみたいと思います。
検証までして頂いて本当にありがとうございます。
教えて頂いたことが活かせるように頑張ります!
After Effects CS6でもPhotoshop CS6でもmxiファイルを読み込ませることが出来ました。
一所懸命ダウンロードしていたのは古いバージョンのプラグインだったというお恥ずかしい原因でした(汗)
ステップに従って必要なプラグインをダウンロードすれば問題ありませんでした。
大変お騒がせ致しました。
処理が重くて使いにくいのが残念ですね。