def create_room(path, room_name, clean_placeholders): import shutil template = hpms_utils.get_current_dir() + "/templates/template_room.txt" script = path + "/" + room_name + ".lua" shutil.copyfile(template, script) if clean_placeholders: remove_user_placeholders(path, room_name)
def export_room_data(output_path, room_list, update_all, do_render, preview): import hpms_utils scripts_path = output_path + "/data/scripts" maps_path = output_path + "/data/maps" screens_path = output_path + "/data/screens" depth_path = output_path + "/data/masks" rooms = bpy.context.scene.hpms_room_list import hpms_lua import hpms_maps import hpms_render for cam in bpy.data.cameras: hpms_render.config_cam(cam) if do_render: hpms_render.configure_renderer(preview) import os if not os.path.isdir(hpms_utils.get_current_dir() + "/../syslogs"): os.mkdir(hpms_utils.get_current_dir() + "/../syslogs") open(hpms_utils.get_current_dir() + "/../syslogs/blender_render.log", "w+") open(hpms_utils.get_current_dir() + "/../syslogs/blender_export.log", "w+") for room in rooms: room_name = str(room.name) if room_name.rstrip() == "": hpms_utils.warn("Found a room with no name, skipping to next") continue hpms_lua.create_or_update_room_script(scripts_path, room_name, room_list, update_all) import hpms_filters sectors = hpms_filters.filter_sectors(room_name) hpms_maps.create_or_update_room_map(maps_path, room_name, sectors, room_list, update_all) if do_render: hpms_render.create_or_update_screens(screens_path, depth_path, room_name, room_list, update_all)
def render_image(path, cam_name): bpy.context.scene.render.filepath = path + "/" + cam_name + ".png" img_type = "view" if "/masks/" in path: img_type = "depth mask" import hpms_utils hpms_utils.debug("Rendering " + img_type + " " + cam_name) from os import open, close, dup, O_WRONLY old = dup(1) close(1) open(hpms_utils.get_current_dir() + "/../syslogs/blender_render.log", O_WRONLY) bpy.ops.render.render(write_still=True) close(1) dup(old) close(old)
def create_map(path, room_name, sectors): bpy.ops.object.select_all(action='DESELECT') bpy.ops.object.mode_set(mode='OBJECT', toggle=False) [sector.select_set(True) for sector in sectors] from os import open, close, dup, O_WRONLY import hpms_utils old = dup(1) close(1) open(hpms_utils.get_current_dir() + "/../syslogs/blender_export.log", O_WRONLY) bpy.ops.export_scene.obj(filepath=path + "/" + room_name + ".hfdat.raw", check_existing=False, axis_forward='-Z', axis_up='Y', filter_glob="*.obj;*.mtl", use_selection=True, use_animation=False, use_mesh_modifiers=False, use_edges=False, use_smooth_groups=False, use_smooth_groups_bitflags=False, use_normals=False, use_uvs=False, use_materials=False, use_triangles=True, use_nurbs=False, use_vertex_groups=False, use_blen_objects=True, group_by_object=False, group_by_material=False, keep_vertex_order=False, global_scale=1, path_mode='AUTO') bpy.ops.render.render(write_still=True) close(1) dup(old) close(old)
def unzip_templates(output_path): shutil.unpack_archive(hpms_utils.get_current_dir() + "/templates/data.zip", output_path, 'zip')