目次

    1. 概要
    2. デフォルトの処理の流れ
    3. プラグインで使用される引数
  1. 各プラグイン解説(abc順)
    1. assetScenePublisher
    2. checkTextureSize
    3. copyToCurrent
    4. diskCachePublisher
    5. geomCachePublisher
    6. ignorePublishedElement
    7. initAssetPublisher
    8. inputComment
    9. mkDir
    10. mrGIPublisher
    11. mrFGPublisher
    12. particleCachePublisher
    13. reduceImageSequence
    14. setAssetNodeProperty
    15. selectAssetNodes
    16. storeMetaData
    17. texturePublisher

概要

Asset Publisher によるパブリッシュ処理は、プラグインによって細かくモジュール化されている。

デフォルトの処理の流れ

デフォルトの処理の流れは baseProject/conf/AssetPublisher.xml.default に記述されている。

たとえば、Maya でのアセットのパブリッシュは以下のように定義されている

<maya>
        <assetPublishEngines>
                <publishEngine name="JCGS.Asset.plugins.initAssetPublisher" />
                <publishEngine name="JCGS.Asset.plugins.setAssetNodeProperty" />
                <publishEngine name="JCGS.Asset.plugins.mkDir" />
                <publishEngine name="JCGS.Asset.plugins.inputComment" />
                <publishEngine name="JCGS.Asset.plugins.selectAssetNodes" />
                <publishEngine name="JCGS.Asset.plugins.texturePublisher" />
                <publishEngine name="JCGS.Asset.plugins.geomCachePublisher" />
                <publishEngine name="JCGS.Asset.plugins.diskCachePublisher" />
                <publishEngine name="JCGS.Asset.plugins.particleCachePublisher" />
                <publishEngine name="JCGS.Asset.plugins.assetScenePublisher" />
                <publishEngine name="JCGS.Asset.plugins.storeMetaData" />
                <publishEngine name="JCGS.Asset.plugins.ignorePublishedElement" />
                <publishEngine name="JCGS.Asset.plugins.checkTextureSize" />
        </assetPublishEngines>
</maya>

プラグインで使用される引数

assetManager : asset manager
assetGroupPath : path of asset group
assetInfo : asset info got from asset manager
baseNode : base node to be published. this node indicates path like
           /assets/human/sato/satoHero/publish

[optional arguments]
revisionGroupPath : path of revision group
rev : revision number
destNode : destination node to be published. this node indicates path like
           /assets/human/sato/satoHero/publish/rig/renderHigh/rev001

※optional arguments となっているものは引数として渡されていればそれを使用して、渡されていなければプラグイン側で独自に用意する。

各プラグイン解説(abc順)

プラグインには、標準で以下の引数が渡される

※rev, assetInfo, destNode は initAssetPublisher プラグインにより生成される

destNode : destination node to be published. this node indicates path like
           /assets/human/sato/satoHero/publish/rig/renderHigh/rev001

assetGroupPath : path of asset group
revisionGroupPath : path of revision group
rev : revision name

assetInfo : asset info got from asset manager

assetScenePublisher

checkTextureSize

preProcess で、パブリッシュする素材の一覧とパブリッシュ元、パブリッシュ先、サイズなどを表示し、更に素材ごとにパブリッシュする/しないを選択できるようにする

checkTextureSizeDlg.png

パブリッシュ元が同じノードが複数ある場合(複数のノードで同じパスが指定されているなど)は、表示上は一つの項目としてまとめられ、まとめてオン/オフができる。 素材を一まとめにするのが bindPublishElements() である。

copyToCurrent

パブリッシュしたファイルのうち、 revXXX 直下にあるファイルを リビジョン 0 としてリンクし、リビジョン 0 をアクティブなリビジョンにセットする。 通常使用する必要はないが、特定のディレクトリを常に自動更新したい場合に使用する。

diskCachePublisher

geomCachePublisher

ジオメトリキャッシュのパブリッシュをおこなう。対象は DCCTools.util.listupGeomcacheNodes() で取得されるノード。

ignorePublishedElement

preProcess で、既にパブリッシュされているものを再度パブリッシュしないようにする。ただし、同じアセットのものは通常通りパブリッシュを行う。

これは、同じアセット内にあるものはリビジョンが上がったり別の LOD になったりして再度パブリッシュが必要になることが多く、 さらにパブリッシュされたものを一まとめにしておく必要があるためである。

パブリッシュを行わないようにするためには、publishElement.active を False にする。

initAssetPublisher

パブリッシュに必要な変数の生成を行う

in :
  assetGroupPath : path of asset group
  revisionGroupPath : path of revision group

out :
  rev : revision name
  destNode : destination node to be published. this node indicates path like
             /assets/human/sato/satoHero/publish/rig/renderHigh/rev001

  assetInfo : asset info got from asset manager
  revisionGroup : revision group got from asset manager

inputComment

process で、コメント入力を行うためのダイアログを表示し、パブリッシュ時のコメントを取得する

inputCommentDlg.png

mkDir

mrGIPublisher

※Maya 限定

mental ray の GI キャッシュをパブリッシュする。 パブリッシュ後のパスは絶対パスで指定される。

mrFGPublisher

※Maya 限定

mental ray の Final Gathering キャッシュをパブリッシュする。 パブリッシュ後のパスは絶対パスで指定される。

particleCachePublisher

reduceImageSequence

テンプレートをパブリッシュするときに、サンプルとして読み込んでおくファイルの数が多いと無駄な上にパブリッシュやテンプレート読み込み時に時間がかかるようになってしまう。そのような時に、フッテージの連番ファイルの数を制限する。

AssetPublisher.xml で

  :
  :
<publishEngine module="JCGS.Asset.plugins.texturePublisher" />
<publishEngine module="JCGS.Asset.plugins.reduceImageSequence" namePattern="\${footage\(&quot;.+&quot;\)}" start="1" end="1" /> <!-- add here -->
  :
  :

こんな感じで記述すると使用できる。texturePublisher の後に入れる必要がある。

setAssetNodeProperty

process で、 assetNode の名前の変更や、各種アトリビュートのセットを行う

assetNode.png

このときの名前の生成には Template Engine を使用して、projectInfo.nameTemplates.assetItem の設定を参照する

selectAssetNodes

storeMetaData

postProcess で、libAsset を通してパブリッシュ情報を登録する。

パブリッシュ処理としては、実質的には一番最後に処理が行われる。

texturePublisher