Added Blender map renderer tool
This commit is contained in:
parent
dfafe76293
commit
a605f4b6a9
67
tools/map_render.py
Normal file
67
tools/map_render.py
Normal file
@ -0,0 +1,67 @@
|
||||
import bpy, math
|
||||
import os
|
||||
from mathutils import Matrix
|
||||
|
||||
|
||||
# Specify OBJ files
|
||||
model_files = [
|
||||
'objOut/data/level/lv_0',
|
||||
'objOut/data/level/lv_1',
|
||||
'objOut/data/level/lv_2',
|
||||
'objOut/data/level/lv_3',
|
||||
'objOut/data/level/lv_4',
|
||||
'objOut/data/level/lv_5',
|
||||
'objOut/data/level/lv_6',
|
||||
'objOut/data/level/lv_7',
|
||||
'objOut/data/level/lv_8',
|
||||
'objOut/data/level/lv_9',
|
||||
'objOut/data/level/lv_a',
|
||||
'objOut/data/level/lv_b',
|
||||
'objOut/data/level/lv_c',
|
||||
'objOut/data/level/lv_d',
|
||||
'objOut/data/level/lv_e',
|
||||
'objOut/data/level/lv_f',
|
||||
'objOut/data/level/lv_g',
|
||||
'objOut/data/level/lv_h',
|
||||
'objOut/data/level/lv_i',
|
||||
'objOut/data/level/lv_j'
|
||||
]
|
||||
|
||||
|
||||
# Remove default cube
|
||||
bpy.data.objects.remove(bpy.data.objects["Cube"], do_unlink=True)
|
||||
|
||||
# Set camera and light position/angle for each map/frame
|
||||
bpy.context.scene.objects.keys()
|
||||
cam = bpy.data.objects['Camera']
|
||||
light = bpy.data.objects['Light']
|
||||
cam.matrix_world = Matrix.Identity(4)
|
||||
cam.matrix_world @= Matrix.Translation((0.0, 57.0, 36.0))
|
||||
cam.matrix_world @= Matrix.Rotation(math.radians(122.0), 4, 'X') @ Matrix.Rotation(math.radians(180.0), 4, 'Y') @ Matrix.Rotation(math.radians(0.0), 4, 'Z')
|
||||
light.matrix_world = Matrix.Identity(4)
|
||||
light.matrix_world @= Matrix.Translation((0.0, 0.0, 10.0))
|
||||
for frame in range(20):
|
||||
bpy.context.scene.frame_set(frame + 1)
|
||||
cam.matrix_world = Matrix.Identity(4)
|
||||
cam.matrix_world @= Matrix.Translation((frame * 70.0 - 700.0, 57.0, 36.0))
|
||||
cam.matrix_world @= Matrix.Rotation(math.radians(122.0), 4, 'X') @ Matrix.Rotation(math.radians(180.0), 4, 'Y') @ Matrix.Rotation(math.radians(0.0), 4, 'Z')
|
||||
cam.keyframe_insert(data_path="location", index=-1)
|
||||
light.matrix_world = Matrix.Identity(4)
|
||||
light.matrix_world @= Matrix.Translation((frame * 70.0 - 700.0, 0.0, 10.0))
|
||||
light.keyframe_insert(data_path="location", index=-1)
|
||||
|
||||
# Load OBJ file in scene
|
||||
i = 0
|
||||
for f in model_files:
|
||||
head, collection_name = os.path.split(f)
|
||||
f_path = str(f + '/mapmesh.obj')
|
||||
bpy.ops.import_scene.obj(filepath=f_path)
|
||||
myCol = bpy.data.collections.new(collection_name)
|
||||
bpy.context.scene.collection.children.link(myCol)
|
||||
for ob in bpy.context.selected_objects:
|
||||
myCol.objects.link(ob)
|
||||
ob.matrix_world = Matrix.Identity(4)
|
||||
ob.matrix_world @= Matrix.Rotation(math.radians(90.0), 4, 'X')
|
||||
ob.matrix_world @= Matrix.Translation((i * 70.0 - 700.0, 0.0, 0.0))
|
||||
i += 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user