Pythonプラグインシステム

Atoms Crowd 2.0.0から、さらにAt​​oms Crowdをパイプラインに統合するためのpythonプラグインシステムを利用することができます。

pythonプラグインは__init__.pyファイルとatomsinit.pyファイルを含む、ディスク上のフォルダとして定義されます。もちろん、そのフォルダの下に他のファイルを配置することもできます。


ユーザーのpythonプラグインをAtomsにロードするために、ユーザーはATOMS_PYTHON_PLUGINS_PATH環境変数を定義する必要があります。

このenv変数は、ユーザーのpythonプラグインの親フォルダを指す必要があります。このように、ユーザーは同じフォルダの下にいくつかのpythonプラグインを持つことができます。 (ATOMS_PYTHON_PLUGINS_PATH C:\ projects \ atomscrowd \ pythonplugin)


atomsinit.py

atomsinit.pyファイルは、Atomsによって、いくつかの段階で呼び出されます。 Atomsは、以下の関数を検索して、それらが定義されている場合は、それらを呼び出すことができます。

  • def load():Atomsが初期化された場合に、呼び出されます。
  • def unload():Atomsが単一化された場合に、呼び出されます。
  • def loadScene():Atomsを使用した新しいシーンがロードされた場合に、呼び出されます。
  • def unloadScene():Atomsを使用しているシーンがアンロードされた場合に、呼び出されます。



Example

次の例は、新しいVariation フィルタを作成して登録する方法を説明しています。

import Atoms
import Atoms.ui.constants
from Atoms.singletons import get_atoms_variation_filters_singleton
import random

'''
This is an example how a filter can edit the variation table at runtime
'''

class VariationFilter:
    def filter(self, variations, atomsNode, origin_data):
        atv = variations.getAgentTypeVariation("atomsRobot")
        if atv:
            for mat in atv.getMaterialNames():
                material = atv.getMaterial(mat)
                if material:
                    material.setDiffuseColorBlue(random.randint(0,255))
                    material.setDiffuseColorGreen(random.randint(0,255))
                    material.setDiffuseColorRed(random.randint(0,255))
        #print variations.toString(True)
        print "My variation filter"
        return variations
        
def load():
    print "Hello!!!"  
    filters = get_atoms_variation_filters_singleton()
    filters.append(VariationFilter())
    
def unload():
    print "Bye bye"
    
def loadScene():
    print "Scene Loaded"
    
def unloadScene():
    print "Scene unloaded"





Copyright © 2017, Toolchefs LTD.