Home  Previous Next

如果您需要:

- 选择场景Rig任意部分,然后MG-Picker工作室有办法加载相对应的picker并设置好namespace.

- 无需选择,点击右上角 openIcon 按钮访问更多打开功能菜单,在里面的“加载所有Picker” 菜单里,点击任意一个菜单项,来加载全部的picker。

- 所有这些rig及picker的对应规则完全可以自定义。

那么这一章就是你需要的!

 

怎么做 ?

1.创建一个python模块。

2.创建两个类,分别从MGP.loader.MGPickerRigListerBase 及 MGP.loader.MGPickerLoaderBase继承.
MGPickerRigListerBase 的子类用来为特定类别的资产列出一些rig名称(就是namespace) ,也就是告诉啊具,场景里有哪些角色,道具,等。
你只需要定义名叫 mayaScene_* 的方法,如:
    def mayaScene_characters(self):
这个方法将会列出场景里所有的角色, 同时,一个叫“加载全部Characters”的菜单就将出现在"加载所有Pickers"菜单里。
这种类别名称完全由你定义,只需要它让有一个"mayaScene_"的方法前缀就好。

3.通过上面的lister, 我们目前知道场景里有哪些rig的名称(namespace), 下一步就是加载对应的picker !
MGPickerLoaderBase 用来对于个特定的rig名称,返回一个picker文件的绝对路径,你只需要重载一个方法:
    def pickerFileForAssetName(self, assetName)
这个方法将返回对于assetName来讲,对应的picker文件的完整路径。

4.一旦准备好python模块,你有两个方式来让它生效(任选一种):
a. 将python模块放在AutoLoaders目录里。这个目录在MG-Picker工作室安装目录下的MGPicker_Program目录.
b. 将python模块名称或完整路径放到一个叫"MGPICKER_LOADER_PY_MODULES"的环境变量。
   如果不想硬写这个环境变量的名称,可以使用MGP.loadermanager.MGPICKER_LOADER_LISTER_MODULES_ENV_NAME。
  如果放进去的只是一个模块名称,则要注意事先让这个模块所在路径在python搜索路径中,即sys.path。

5.可以参考 "loader_example.py" 这个例子来了解细节。 这个例子文件在MGPicker_Program/AutoLoaders/Examples目录里.

Warning  如果有多个lister & loader 的python模块有环境变量MGPICKER_LOADER_PY_MODULES里, 可以用 ; 来分隔开。  
      多个模块的情况下,同类别的资产名称将会合并,但loader则会互相覆盖,一个loader加载成功,就没下一个loader的事了。

 

Home Previous Next