Contents

  1. 概要
  2. 注意事項
  3. つかいかた
    1. 初期状態
    2. グループの作成
    3. グループへのアセットの追加
    4. レイヤメンバの削除
    5. レイヤの削除
    6. グループの削除
  4. 制限事項
    1. レイヤの設定は同一である必要がある
    2. レイヤ毎に同じ場所が別の値でオーバーライドされている場合

概要

Maya の render layer ベースでアセット毎の素材わけの設定をおこなうと、ショットシーンで作業をおこなってレンダリングをおこなう際にアセット数×レイヤ数分のレンダリング素材ができてしまうため、管理が煩雑になってしまいます。

renderLayerManager は、ショットシーン上でアセット毎にわかれている renderLayer をグループ化した新たな renderLayer を作成し、管理の一元化をします。

注意事項

弊社としては Maya の render layer を用いてレンダリング素材わけをおこなうような方法は推奨していませんしかし、既にアセットに対して render layer の設定をおこなってしまい、それを前提としてプロジェクトが走ってしまっているというケースが多々あることも事実です。

特に受託案件の場合、アセット管理やショット管理の手法を社内で決めることができず、クライアントの要望に沿った形でプロジェクトを進める必要があります。

renderLayerManager は、そのような諸事情によりどうしても render layer を使わざるを得ないような場合に、何とかプロジェクトを瓦解させないようにするためのツールです。

つかいかた

初期状態

render layer として Beauty, Mask, Base の三つを作成したアセットを 2 つリファレンスしたシーンを元に操作方法を説明していきます。

renderLayerManager_initialLayers.png

グループの作成

Groups の欄で右クリックをして、"Add Group" を選びます

renderLayerManager_addGroup.png

グループ名を入力して OK を押すとグループが作成されます。

グループ名をつける際、幾つか制限があります

グループへのアセットの追加

追加したいアセットと、追加先のグループを選択してアセットの上で右クリックし、 "Add Selected Asset To Selected Group" を選択するとグループにアセットが追加されます。

アセットの数やグループの数が多いと、この登録作業には少々時間がかかります。

また、この時にグループに登録するレイヤを Asset Layers から選択することができます(デフォルトでは全て登録されます)。

renderLayerManager_addSelectedAssetToSelectedGroup.png

処理がおわると新しい renderLayer が追加されているのがわかります。

renderLayerManager_addedNewLayers.png

renderLayer は登録したアセットで用意されているレイヤ名に対して (グループ名)_(レイヤ名) という形式で作成されます。 例では、アセット毎に Beauty, Mask, Base が存在するので characters_Beauty, characters_Mask, characters_Base の三つが作成されています。

この場合、characters_Beauty レイヤには layerTest:Bauty と layerTest1:Beauty の内容が含まれています。そのため、 characters_Beauty を選択すると下図のようにそれぞれのアセットの Beauty レイヤの内容が再現された状態になります。

renderLayerManager_characters_BeautyLayer.png

レイヤメンバの削除

グループのレイヤに登録されているメンバを削除します

renderLayerManager_removeLayerMember.png

レイヤの削除

グループのレイヤを削除します

renderLayerManager_removeGroupLayer.png

グループの削除

グループを削除します

renderLayerManager_removeGroup.png

制限事項

レイヤの設定は同一である必要がある

別アセットで同名のレイヤなのに、レイヤの設定が異なる場合はどちらを優先すればいいのかわからないため、エラーとして処理をおこないません。

例えば、render layer の Member Overrides の値が異なるような場合です。

レイヤ毎に同じ場所が別の値でオーバーライドされている場合

同名のレイヤなのにレンダラの指定が異なるような場合、グループに追加されるアセットの順番によって最終的にどのアセットの内容が優先されるかは一定になりません。