/
Standalone Simulationの作成
Standalone Simulationの作成
import os import sys # if is windows environment if os.name == "nt": atoms_folder = "C:/Program Files/Toolchefs/AtomsMaya/" else: # if is linux environment atoms_folder = "/opt/Toolchefs/AtomsMaya/" os.environ["ATOMS_DATA"] = atoms_folder + "data" sys.path.insert(0, atoms_folder + "python/2017/") sys.path.insert(0, atoms_folder + "scripts") if os.name == "nt": os.environ["PATH"] += atoms_folder + "bin/2017;" os.environ["PATH"] += atoms_folder + "bin;" os.environ["PATH"] += atoms_folder + "python/2017;" else: os.environ["LD_LIBRARY_PATH"] += atoms_folder + "lib/2017:" os.environ["LD_LIBRARY_PATH"] += atoms_folder + "lib:" import AtomsMath import json import AtomsUtils import AtomsCore import Atoms import AtomsModules from Atoms.ui.staticdata import MODES from Atoms.constants import EVENT_TYPES, JSON_KEYS import Atoms from Atoms.hostbridge.atomsnode import BaseAtomsNodeHostBridge from Atoms.utils.setup import register_all_from_stored_json_data class StandaloneHost(BaseAtomsNodeHostBridge): JSON_DATA = {} def __init__(self): super(StandaloneHost, self).__init__() self.simulation = Atoms.AgentsSimulation() Atoms.AgentsSimulations.instance().addAgentsSimulation("main", self.simulation) @classmethod def load_scene(cls, data_path): with open(data_path) as f: json_data = json.load(f) cls.JSON_DATA = json_data @classmethod def get_json_data(cls): return cls.JSON_DATA @classmethod def set_json_data(cls, data): data_ = {} if not JSON_KEYS.VERSION in data: data_[JSON_KEYS.VERSION] = JSON_VERSION data_[JSON_KEYS.DATA] = data else: data_ = data cls.JSON_DATA = data_ @staticmethod def get_agents_simulation(): return Atoms.AgentsSimulations.instance().agentsSimulation("main") data_path = os.environ["ATOMS_DATA"] + "/atomsRobot.json" host = StandaloneHost() host.load_scene(data_path) register_all_from_stored_json_data(host) simulation = host.get_agents_simulation() modulesFactory = Atoms.BehaviourModules.instance() agGroup = simulation.createAgentGroup() agGroup.setMultithread(True) agGroup.addBehaviourModule("gridLayout", "gridLayout") agGroup.addBehaviourModule("stateMachine", "stateMachine") gridLayout = agGroup.behaviourModule("gridLayout") gridLayout.attributes()["agentType"].set("atomsRobot") gridLayout.attributes()["size"].set(AtomsMath.V3d(10, 0, 10)) stateMachine = agGroup.behaviourModule("stateMachine") stateMachine.attributes()["state"].set(1) atomsTime = Atoms.SimulationTime.instance() atomsTime.set(0) atomsTime.setFps(24.0) simulation.initSimulation() for i in range(0, 50): atomsTime.set(i) simulation.initFrame() simulation.computeFrame() simulation.endFrame() print "Frame", i simulation.endSimulation()
Related content
WindowsにAtoms Houdiniプラグインをインストール
WindowsにAtoms Houdiniプラグインをインストール
More like this
LinuxにAtoms Houdiniプラグインをインストール
LinuxにAtoms Houdiniプラグインをインストール
More like this
Pythonプラグインシステム
Pythonプラグインシステム
More like this
フォルダ構造を理解する
フォルダ構造を理解する
More like this
LinuxにAtomsエージェントをインストールする
LinuxにAtomsエージェントをインストールする
More like this
WindowsにAtomsエージェントをインストールする
WindowsにAtomsエージェントをインストールする
More like this
Copyright © 2017, Toolchefs LTD.