Pythonプラグインシステム
Atoms Crowd 2.0.0から、さらにAtoms 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.