Skip to content

Instantly share code, notes, and snippets.

@versluis
Created August 15, 2017 18:26
Show Gist options
  • Save versluis/2e092b466b989b1e91f316599bcce016 to your computer and use it in GitHub Desktop.
Save versluis/2e092b466b989b1e91f316599bcce016 to your computer and use it in GitHub Desktop.
Export all Shape Keys from Blender to OBJ files
# Export all Shape Keys as OBJs in Blender
# Version 1.0 - August 2017
# =========================================
# Original Script by Tlousky
# https://blender.stackexchange.com/questions/86674/how-to-batch-export-shapekeys-as-obj-from-the-active-object/86678#86678
# with small tweaks by Jay Versluis
# https://www.versluis.com
import bpy
from os.path import join
# Reference the active object
o = bpy.context.active_object
# CHANGE THIS to the folder you want to save your OBJ files in
# NOTE: no spaces, no trailing slash
exportPath = "/Users/you/somewhere"
# Reset all shape keys to 0 (skipping the Basis shape on index 0
for skblock in o.data.shape_keys.key_blocks[1:]:
skblock.value = 0
# Iterate over shape key blocks and save each as an OBJ file
for skblock in o.data.shape_keys.key_blocks[1:]:
skblock.value = 1.0 # Set shape key value to max
# Set OBJ file path and Export OBJ
objFileName = skblock.name + ".obj" # File name = shapekey name
objPath = join( exportPath, objFileName )
bpy.ops.export_scene.obj( filepath = objPath, use_selection = True, global_scale = 1 )
skblock.value = 0 # Reset shape key value to 0
# THE END
@OmLachake
Copy link

bpy.ops.wm.obj_export(filepath = objPath,export_selected_objects=True,export_uv=True,scaling_factor=1.0,apply_modifiers=True,export_materials=False)

Thanks! It works. I mean, I get the basic things working. Need to test this with complex UV Maps.

@ecktoreckzahn
Copy link

In 4.2.2 I had to change the expression for scaling back to global_scale:
bpy.ops.wm.obj_export(filepath = objPath,export_selected_objects=True,export_uv=True,global_scale=1.0,apply_modifiers=True,export_materials=False)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment