概要
Publisher のパブリッシュモードやパブリッシュタイプ、パブリッシュ時の処理内容はプロファイルとして作成しておきます。 本ページではプロファイルについて解説をしていきます。
プロファイルの格納場所
プロファイルはプロジェクトの conf ディレクトリに格納します。 Publisher はプロジェクトの派生情報を参考にし、
- 現在のプロジェクトの conf ディレクトリ
- 派生元のプロジェクトの conf ディレクトリ
- Publisher 標準のプロファイル
の順でプロファイルを探し、指定した名前のものが見つかったらそれを使用します。
ディレクトリ構成
プロファイル自体はディレクトリで、その中に入っている .csv ファイルがパブリッシュモードになります。.csv ファイルは [パブリッシュモード名].csv と [パブリッシュモード名]UI.csv の二つで一組になっています。 それ以外のファイルが含まれていた場合は無視されます。
上図の例では、tutorial プロジェクトの中に publishProfiles_max, publishProfiles_Maya, publishProfiles_simpleMaya の三種類のプロファイルがあり、publishProfiles_Maya の中には assets と shots というパブリッシュタイプがあります。
publishProfile_Maya を指定して起動すると、下図のように assets と shots の二つが選択可能になっています。
プロファイル名やパブリッシュタイプ名は任意のものを指定できますが、パブリッシュタイプに関しては assets と shots という名前を指定しておくと assets 階層以下のファイルを開いていた場合は assets が、 shots 階層以下のファイルを開いていた場合は shots が自動的に選択されます。
パブリッシュモードの中身
UI ファイル
assetsUI.csv ファイルを Excel で開いたのが下図になります(図をクリックすると拡大したものを見ることができます)。
assetsUI.csv ファイルでは列ごとに一つのパブリッシュタイプの設定をおこなうようになっています。
一行目がタイトルです。ここの内容が Publisher のパブリッシュタイプ選択ボタンに対応します。 二行目が GUI で使用するオプションで、作業フェーズ/LODメニューで使用する値を指定しています。
本体
assets.csv ファイルを Excel で開いたのが下図になります(図をクリックすると拡大したものを見ることができます)。
一列目は使用するプラグインの指定です。パブリッシュ実行時には上から順にプラグインが実行されていきます。 assets.csv ファイルの二列目以降の列は assetsUI.csv の列と対応しています。
プラグインは python のモジュールとしてインポートできる名前になっていればどこに置かれていてもよいです。プラグインについては Plugin Architecture も参考にしてください。
プラグインへの引数
二列目以降は各モードを実行するときにプラグイン実行時の引数となっています。引数は python の辞書形式で記述し、ここが空の場合そのパブリッシュタイプではプラグインが実行されないことを意味します。
上図を例に詳しく解説します。図の中では
- model
- rig
の二つのモードがあり、プラグインは
AssetPublisher.libJCGS.util.profilerBegin
AssetPublisher.plugins.initAssetPublisher
AssetPublisher.plugins.setAssetNodeProperty
AssetPublisher.plugins.selectTopNodes
AssetPublisher.plugins.selectAssetNodes
AssetPublisher.plugins.selectMayaNodes
の 6 つが登録されています。
ここで、model 列 AssetPublisher.libJCGS.util.profilerBegin 行のところには
{ 'name' : 'Publisher_Maya', }
という記述があります。これは、model モードの時には AssetPublisher.libJCGS.util.profilerBegin が実行され、その引数がこれになるということを意味しています。
また、rig 列の AssetPublisher.plugins.initAssetPublisher 行には {} とだけ書かれています。これは rig モードの時には AssetPublisher.plugins.initAssetPublisher が実行され、引数の内容は空であるということになります。
更に model 列 AssetPublisher.plugins.selectAssetNodes 行には何も書かれていません。これは model モードの時には AssetPublisher.plugins.selectAssetNodes は実行されないことを意味します。