Maya で作成したカメラを Houdini に持ち込み、Maya でレンダリングするジオメトリと Houdini で作成し Mantra でレンダリングするエフェクトが正しく合成できるようにする (2017年2月更新)。
参考シーンファイルへのリンクは一番下にあり。
1. 初めに
前提知識として以下のことを知っておく。
Maya
- Maya はカメラにレンダリング (画像) 解像度の設定を持たない。解像度は Render Globals (レンダリング設定) の中にある。
- よって、カメラ (cameraShape) の Film Back 以下にある Film Aspect Ratio の値が重要になる。
- Maya でカメラの設定を行う場合には、ビューポートの上にある View メニューの Camera Settings で Film Gate を選択、Gate Mask をオンにしておくとFilm Aspect Ratio による画角の設定がわかり易い。
- カメラを伴うシーンの出力は次の二つの方法で可能:
- FBX: File->Export All... (FBX Export)
- Alembic: Pipeline Cache -> Alembic Cache -> Export All to Alembic
- よってレンダリング解像度は Houdini の中で再設定する必要がある。
Houdini
- Houdini はカメラにレンダリング画像解像度の設定 (View タブの Resolution) を持ち、これが画角を決定する。
- Resolution を 1920x1080 に設定、Pixel Aspect Ratio が1.0であれば、画角 (Maya で言うところの Film Aspect Ratio) は 1.78 となる。
- Houdini のレンダー設定 (Mantra ROP) は基本的にカメラの設定を使うが、以下の画像のようオーバーライドすることも可能。
Override Camera Resolution のトグルをオンにすればプルダウンメニューが有効になる。 - 単体オブジェクトだけでなくカメラを伴うシーンのインポートは、
- FBX: File->Import->Filmbox FBX...
- Alembic: File->Import->Alembic Scene...
以下2014年の記述
2. Mayaでのカメラ設定
Maya でカメラを一つ作成 (camera1)。この例では、Maya 2013, レンダリング解像度は 1280x720 という前提。
- Angle of View: 33.33
- Focal Length: 35.0
- Near Clip Plane: 0.1 (default)
- Far Clip Plane: 10,000.0 (default)
- Film Gate: "35mm 1.85 Projection" とすることで以下の設定になる。
- Camera Aperture: 0.825, 0.446
- Film Aspect Ratio: 1.85
3. カメラアニメーションの設定とレンダリング
- これに対して簡単な Translate と Rotate のアニメーションを追加。60~120フレームぐらい。
- リファレンスとして形状もいくつか配置し、後ほど別ファイルで書き出す。
- 作成したカメラから配置した形状に対し、レンダリングを実行。ここでは
- Mental Ray
- Image Size Presets で HD720を選択。
- Draft Quality
- Targa で保存。
4. カメラをFBXの出力
- 作成したカメラ(camera1)を選択、File->Export Selection、FBXでファイルとして出力。Optionsの中で、必ず cameras がONになっていること。ここでは、maya_cameraAnim2013.fbx というファイル名で保存。
- 作成した形状も別ファイル(maya_2013_geos.fbx)としてFBXで出力。
5. Houdini でFBXの読み込み
Houdini を起動。
- File->Import->Filmbox FBX... を実行。
- File の部分にカメラのFBXファイル(maya_cameraAnim2013.fbx)を指定。
- Filter Options で Cameras と Animation がオンになっていることを確認。他はオフでもよい。
- パネル一番下の "Merge" ボタンを押して、現行のシーンに追加。Importを押すと新しいシーンが作成される。
- 形状のFBX (maya_2013_geos.fbx) にも同じ動作を繰り返す。この場合、Filter OptionsでGeometryがオンになっている必要がある。"Merge" ボタンを押して、現行のシーンに追加。Importを押すと新しいシーンが作成される。
- この時点でファイルを一度保存すると良いかもしれない。この作業によって環境変数 HIP がファイルが保存されたディレクトリに設定され、この後に続くファイル保存先指定が容易になる。
- 二つのファイルが読み込まれるとネットワークビューは以下のようになっている。
- maya_cameraAnim2013_fbx サブネットをダブルクリックして中に入り、camera1 ノードを選択、View タブの Resolutionの右脇のプルダウンメニューから "HD 720" を選択。これでレンダリング解像度が 1280x720 になる。
- Render View タブへ行き、ROP Camera となっているプルダウンにFBX経由で読み込んだカメラ(/obj/maya_cameraAnim2013_fbx/camera1)を指定。 Render ボタンを押してレンダリングを一度実行。
- ネットワークビューで/out へ移動、先ほどのレンダリングの結果できたmantra_ipr ノードを選択。Main タブの Camera の一番右にある'+' アイコンをクリックして、Choose Operator ウィンドウを開き、階層をたどって、camera1を選択、Acceptボタンをクリックしてウィンドウを閉じる。
- Properties タブ以下の Output タブに行き、Output Picture にファイル名を指定。先ほど (#6で) ファイルを保存したことにより、$HIP (現在のシーンファイルの保存場所)を頭につけることが出来る。 ここでは $HIP/houdini13_out_$F3.pic として保存している。$F3 はフレーム番号を3桁で。$F2で2桁。$F4で4桁。$F で桁揃えなし。
- ここまでできたら、Render ボタンをクリックしてレンダリングを実行。
6. コンポジットモジュール
- Network View で /img へ移動。TABメニューからImage Networkノードを作成。img1 というノードが出来る。ダブルクリックで中へ。
- Fileノードを作成、Mayaでレンダリングした画像シーケンスを読み込む。
- Fileノードをもう一つ作成、Houdiniでレンダリングした画像シーケンスを読み込む。
- 二つのFileノードをDiffノードで接続。
- Render View タブから Composite View タブへ移動。ビュー下のAlphaチャネル表示ボタンをクリックすれば、アルファの差分が表示される。
- タイムスライダーをスクラブすれば、各フレームでの差分が確認できる。表示されるのは、レンダリングされた形状のアウトラインと言って良い細い線で、これは、アンチエイリアスの差分といって差し支えない。これを完全に消すには同じレンダラーを使うしかないと思われる。
7. まとめ
これにより、Mayaで作成したカメラもHoudiniに持っていって同じ画角の画像をレンダリングすることが出来、Mayaで形状、Houdiniでエフェクトという切り分けを可能にし、最終的に問題なく合成が可能になる。
参考シーンファイル:
- m2h_fbxCameraImport.zip (11.1MB)
0 件のコメント:
コメントを投稿