Cryptomatteが何かしらの原因で壊れた際の対応に関してメモ


Cryptomatte エラー




ークリプトマットを使っているとたまにこわれた感じになって今までマスク生成できていたのにできない現象がたまにあります、そういった時の対応など軽くメモしときます(‘ω’)ー








MtoAとNukeのケース




NukeのCryptomatteを使っている際にたまに「Cryptomatteが壊れたシーンデータ」という現状がおきると思います、具体的にどういったケースかというと、以下の画像のように再度シーン開いたら以前はCryptomatteでマスクを生成できていたのに、マスクも生成されず「LayerSekection」の箇所も何も選択できない状態になってる状況です。








こういうケースが起きる原因は以下の場合があるかと思います、ですが決定的な原因というのはちょっと自分の方ではわかっていません、、、。




  • 相対パスでCryptomatteの入っているEXR等を読み込んでいる
  • Cryptomatte、Nukeのバージョン違いでシーンを開いている



上記のケースでたまにCryptomatteの壊れが発生する時があります。そうなるとマスクが機能しなくなり今までコンポしていた内容と結果が変わってしますことがあります(;´・ω・)
余談ですが、Nukeの相対パスの書き方で、以下のように書いている際は高い確率でCryptomatte内容が壊れる体感です。



[getenv NUKE_PATH]


以下のように書いた際はNukeのバージョンやCryptomatteのバージョンがあっていればそれ程壊れるケースは少ないような体感です(あくまでも個人の体感、、(‘ω’)



[file dirname [value root.name]]


解決手段!




自分個人としては壊れてしまったCryptomatteはどうしようもないと考えてます( ゚Д゚)(オイ
なので壊れたノードをリストアするより手掛かりになる情報を元に再度Cryptomatteでマスクを生成する手段を一応メモしておきます。




壊れたCryptomatteが選択していたジオメトリ、シェーダー等をDCCツール側で確認してNuke側で選択しなおす




、、、、、はい、結局マスク作り直すという感じです(;´・ω・)
データ引き継いだ際に壊れていた時などの解決策として見て頂けると助かります(;´・ω・)
ひとまずやり方を以下に記載しときます。




  1. Nuke:壊れたCryptomatteノードの「MatteList」を確認、何かネーミング(ジオメトリ、シェーダー名とか)記載が残っているのならテキスト等にメモしておく
  2. テキストエディタ:先ほどメモしたネーミングを元に複数選択するスクリプトを記載
  3. DCCツール(今回はMaya):上記で作成したスクリプトを実行して壊れたCryptomatteが選択していた内容を確認
  4. Nuke:再度Cryptomatteノードでマスクを作りなおす。。。。w



ぶっちゃけ、、、壊れたCryptomatteノードのMatteListの中身をメモして、新規で作成したCryptomatteノードのMatteListにコピペすれば工程は1つで終わるので、「引き継いだデータで何を選択していたかわからない、ネーミングスペースがついてたり数が多かったりで内容確認するのが大変」というケースがあった場合に使える手段かと思います( ゚Д゚)
あまりないかもしれませんが、、、w
書いてみてだいぶマイナーなケースだなとは感じてます(‘ω’)




■画像付きで説明




1、Nuke:壊れたCryptomatteノードの「MatteList」を確認、何かネーミング(ジオメトリ、シェーダー名とか)記載が残っているのならテキスト等にメモしておく












2、テキストエディタ:先ほどメモしたネーミングを元に複数選択するスクリプトを記載




今回はテキストエディタでNotepad++を使用
まずは先ほどメモとった内容を元にスクリプト作成








スクリプトは以下のような一括選択のpython(Mayaの場合)
以下のスクリプトでselect nameA~Dの箇所は上記でメモした内容に書き換えてください。



import maya.mel

cmds.select( 'select nameA','select nameB','select nameC','select nameD' )



余談ですが、テキストエディタを使う際正規表現というのを活用すると前後に文字を挿入するなどの対応が速くなります、今回のケースで言うとselect nameA‘,の箇所で‘,を追加する際の対応です。




















3、DCCツール(今回はMaya):上記で作成したスクリプトを実行して壊れたCryptomatteが選択していた内容を確認








4、Nuke:再度Cryptomatteノードでマスクを作りなおす








画像付きで内容書いてみましたが、改めて引き継いだシーンデータで再構築以外のケースではあまり必要ない知識かもしれませんね、、、w
壊れたCryptomatteノードのMatteListの中身をメモして、新規で作成したCryptomatteノードのMatteListにコピペすればホント一瞬で終わる内容なので(;´・ω・)




MtoA 4.0.1以降のcryptomatte の「crypto_asset」の仕様変更に関して




別の内容ですが、MtoA 4.0.1以降のMtoAでレンダリングした際に「crypto_asset」の内容が「crypto_object」と同じ感じでパーツごとバラバラのマスクになってしまう現象がありますが、RenderSettingsのSystemタブ→RenderSettings→ExportFullPathsのタブをオフにしておかないとこの現象が起きてしまいます。デフォルトの設定だとオンになっているので注意が必要です。
以下公式の掲示板ですがこのことに関して触れています。






コンポ作業でcryptomatte使うのが当たり前になってきたので今後も何か更新情報あったらメモしておこうかと思います。
今回はここまで(‘ω’)






















お仕事のご相談、その他お問い合わせはこちらからお願いします!




—————————————–




e-mail:
yut.rickeytone@gmail.com




—————————————–

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA