def main(): if Blender.sys.exists(MainSceneMaker) != 1: Blender.Draw.PupMenu("Cannot found the scene creator (scene_maker.py). Aborting") return 0 Blender.Run(MainSceneMaker) scene = data.scenes.active # sources=data.groups['Audio_Sources'].objects sources = BlenderOSCSender.getSources(scene) for object in sources: object.setIpo( makeCircleIpo(object, object.name + "demo", 6, 2 * math.pi * list(sources).index(object) / len(sources)) ) firstFrame = Blender.Get("staframe") x = object.ipo.getCurve()[0].evaluate(firstFrame) y = object.ipo.getCurve()[1].evaluate(firstFrame) z = object.ipo.getCurve()[2].evaluate(firstFrame) object.setLocation((x, y, z))
def main(): if Blender.sys.exists(MainSceneMaker) != 1: Blender.Draw.PupMenu( 'Cannot found the scene creator (scene_maker.py). Aborting') return 0 Blender.Run(MainSceneMaker) scene = data.scenes.active # sources=data.groups['Audio_Sources'].objects sources = BlenderOSCSender.getSources(scene) for object in sources: object.setIpo( makeCircleIpo( object, object.name + "demo", 6, 2 * math.pi * list(sources).index(object) / len(sources))) firstFrame = Blender.Get('staframe') x = object.ipo.getCurve()[0].evaluate(firstFrame) y = object.ipo.getCurve()[1].evaluate(firstFrame) z = object.ipo.getCurve()[2].evaluate(firstFrame) object.setLocation((x, y, z))
def GenerateNetworkOSCReceiver(filename): liblos="" connections="" printers="" argumentNumbers=3 xPosition=50 yPosition=150 #create sources receivers and its monitors scene=Blender.Scene.GetCurrent() sources=BlenderOSCSender.getSources(scene) templatePath="/SpatDIF/sources/%(objectNumber)s/%(sufix_path)s" dictionary_paths=['xyz','ypr'] for source in sources: sourceName=source.name.replace(".","_") port=7000 # try to get the port on object name: portInName=re.search('_p([0-9]+)$',sourceName) if portInName!=None: port=int(portInName.group(1)) for sufix_path in dictionary_paths: libloName="source_%s_%s" % (sourceName,sufix_path) printerName="printer_source_%s_%s" % (sourceName,sufix_path) objectNumber=str(sources.index(source)) liblos+=makeLibloSource(libloName,templatePath % vars(),(xPosition,yPosition),3,port) printers+=makeControlPrinter(printerName,(xPosition,yPosition+150),3) for o in range(3): sufix="_"+str(o) connections+=makeControlConnection(libloName,(templatePath%vars()).replace("/","_")+sufix,printerName,"ControlPrinter"+sufix) xPosition+=300 xPosition+=150 xPosition=50 yPosition=600 #create listeners receivers and its monitors listeners=BlenderOSCSender.getListeners(scene) templatePath="/SpatDIF/listeners/%(objectNumber)s/%(sufix_path)s" for listener in listeners: listenerName=listener.name.replace(".","_") port=7000 # try to get the port on object name: portInName=re.search('_p([0-9]+)$',listenerName) if portInName!=None: port=int(portInName.group(1)) for sufix_path in dictionary_paths: libloName="listener_%s_%s" % (listenerName,sufix_path) printerName="printer_listener_%s_%s" % (listenerName,sufix_path) objectNumber=str(listeners.index(listener)) liblos+=makeLibloSource(libloName,templatePath % vars(),(xPosition,yPosition),3,port) printers+=makeControlPrinter(printerName,(xPosition,yPosition+150),3) for o in range(3): sufix="_"+str(o) connections+=makeControlConnection(libloName,(templatePath%vars()).replace("/","_")+sufix,printerName,"ControlPrinter"+sufix) xPosition+=300 xPosition+=150 #create sync receivers and it monitors path="/SpatDIF/sync/FrameChanged" libloName="sync_Framechanged" printerName="printer_sync_FrameChanged" liblos+=makeLibloSource(libloName,path,(50,0),1,port) printers+=makeControlPrinter(printerName,(300,0),1,(291,70)) connections+=makeControlConnection(libloName,path.replace("/","_")+"_0",printerName,"In Control") f=open(filename,'w') networkId="Exported_Blender_scene_receiver_network" body=liblos+printers+connections f.write(Network % vars()) f.close() print "OSC receivers CLAM Network exported as %(filename)s" % vars()
def GenerateNetworkOSCReceiver(filename): liblos = "" connections = "" printers = "" argumentNumbers = 3 xPosition = 50 yPosition = 150 #create sources receivers and its monitors scene = Blender.Scene.GetCurrent() sources = BlenderOSCSender.getSources(scene) templatePath = "/SpatDIF/sources/%(objectNumber)s/%(sufix_path)s" dictionary_paths = ['xyz', 'ypr'] for source in sources: sourceName = source.name.replace(".", "_") port = 7000 # try to get the port on object name: portInName = re.search('_p([0-9]+)$', sourceName) if portInName != None: port = int(portInName.group(1)) for sufix_path in dictionary_paths: libloName = "source_%s_%s" % (sourceName, sufix_path) printerName = "printer_source_%s_%s" % (sourceName, sufix_path) objectNumber = str(sources.index(source)) liblos += makeLibloSource(libloName, templatePath % vars(), (xPosition, yPosition), 3, port) printers += makeControlPrinter(printerName, (xPosition, yPosition + 150), 3) for o in range(3): sufix = "_" + str(o) connections += makeControlConnection( libloName, (templatePath % vars()).replace("/", "_") + sufix, printerName, "ControlPrinter" + sufix) xPosition += 300 xPosition += 150 xPosition = 50 yPosition = 600 #create listeners receivers and its monitors listeners = BlenderOSCSender.getListeners(scene) templatePath = "/SpatDIF/listeners/%(objectNumber)s/%(sufix_path)s" for listener in listeners: listenerName = listener.name.replace(".", "_") port = 7000 # try to get the port on object name: portInName = re.search('_p([0-9]+)$', listenerName) if portInName != None: port = int(portInName.group(1)) for sufix_path in dictionary_paths: libloName = "listener_%s_%s" % (listenerName, sufix_path) printerName = "printer_listener_%s_%s" % (listenerName, sufix_path) objectNumber = str(listeners.index(listener)) liblos += makeLibloSource(libloName, templatePath % vars(), (xPosition, yPosition), 3, port) printers += makeControlPrinter(printerName, (xPosition, yPosition + 150), 3) for o in range(3): sufix = "_" + str(o) connections += makeControlConnection( libloName, (templatePath % vars()).replace("/", "_") + sufix, printerName, "ControlPrinter" + sufix) xPosition += 300 xPosition += 150 #create sync receivers and it monitors path = "/SpatDIF/sync/FrameChanged" libloName = "sync_Framechanged" printerName = "printer_sync_FrameChanged" liblos += makeLibloSource(libloName, path, (50, 0), 1, port) printers += makeControlPrinter(printerName, (300, 0), 1, (291, 70)) connections += makeControlConnection(libloName, path.replace("/", "_") + "_0", printerName, "In Control") f = open(filename, 'w') networkId = "Exported_Blender_scene_receiver_network" body = liblos + printers + connections f.write(Network % vars()) f.close() print "OSC receivers CLAM Network exported as %(filename)s" % vars()