diff options
author | Isaac <isaclien9752@gmail.com> | 2024-08-14 22:48:16 -0400 |
---|---|---|
committer | Isaac <isaclien9752@gmail.com> | 2024-08-14 22:48:16 -0400 |
commit | 17fd2304270b2ef619cceb980b9f49cb656a6d13 (patch) | |
tree | decd5572cf766c781c2bb6a604aa66155041cdb4 /basic_settings.py | |
parent | b907bcc414eb742f45e2a0c2ea0232256c226a92 (diff) | |
download | blenxy-17fd2304270b2ef619cceb980b9f49cb656a6d13.tar.gz blenxy-17fd2304270b2ef619cceb980b9f49cb656a6d13.zip |
updated Collada importer/exporter for SuperBMD
Diffstat (limited to 'basic_settings.py')
-rw-r--r-- | basic_settings.py | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/basic_settings.py b/basic_settings.py new file mode 100644 index 0000000..1b16e45 --- /dev/null +++ b/basic_settings.py @@ -0,0 +1,87 @@ +import bpy + +# SMG was made under the centimeter unit +# SuperBMD assumes everything is in meters so I will scale down the models when being imported + +scene = bpy.context.scene + +print("Setting length/rotation units...") +scene.unit_settings.system = 'METRIC' +scene.unit_settings.scale_length = 0.01 +bpy.ops.scene.units_length_preset_add(name="Galaxy Unit") +scene.unit_settings.system_rotation = 'DEGREES' +scene.unit_settings.use_separate = False + +# scale grid to fit new length unit +# Reference used: +# https://blender.stackexchange.com/a/210749 + +print("Scaling 3D View grid...") + +for area in bpy.context.screen.areas: + if (area.type == 'VIEW_3D'): + view_3d_area = area.spaces.active + view_3d_area.grid_scale = 0.01 + view_3d_area.grid_lines = 400 + view_3d_area.show_axis_x = True + view_3d_area.show_axis_y = True + view_3d_area.show_axis_z = True + view_3d_area.clip_start = 0.001 + view_3d_area.clip_end = 1000000 + break + +# import Mario's model from DAE file included in the template +# get blenxy template location for that and select it +# but first delete all objects in scene so it is clean + +bpy.ops.object.select_all(action='SELECT') +bpy.ops.object.delete() + +print("Importing Mario's Model...") +blenxy_path = bpy.utils.user_resource('SCRIPTS', "startup/bl_app_templates_user/blenxy/") +bpy.ops.wm.collada_import(filepath = blenxy_path + "Mario.dae") +Mario = bpy.data.objects.get("Mario") +Mario.select = True + +# set a SMG axis for reference when doing models +# it is just a visual queue to get how the model will appear on game +# select a model --> create transform orientation --> modify its matrix + +# References used: +# https://blenderartists.org/t/how-to-set-transform-orientation-in-code/542536/4 +# for context incorrect bypass: +# https://blender.stackexchange.com/a/6105 + +print("Setting SMG Axis Reference...") + +Mario.select = True +override = bpy.context.copy() +override['area'] = area +bpy.ops.transform.create_orientation(override, name = "SMG Axis", use = True) +bpy.context.scene.orientations[-1].matrix = [[ 1.0, 0.0, 0.0], + [ 0.0, 0.0, 1.0], + [ 0.0, -1.0, 0.0]] + + +# set initial 3d viewport camera location +# just a rotation and a camera view distance change + +print("Adjusting 3D Viewport camera location...") +# set rotation (quaternions) +view_3d_area.region_3d.view_rotation = (0.8001, 0.4619, 0.1913, 0.3314) +# set camera distance to origin +view_3d_area.region_3d.view_distance = 4 + +# extra stuff to set >:] + +print("Extra stuff to set...") +# set environment lightnning (material display suggestion) +bpy.context.scene.world.light_settings.use_environment_light = True +# set framerate (SMG runs at 59.94 fps in THP videos) +bpy.context.scene.render.fps = 60 +bpy.context.scene.render.fps_base = 1.001 +# set start frame at 0 +bpy.data.scenes["Scene"].frame_start = 0 +bpy.data.scenes["Scene"].frame_current = 0 + +print("Done with the basic settings!\n") |