Asset Pipeline v2 #145

Closed
Nick Alberelli wants to merge 431 commits from (deleted):feature/asset-pipeline-v2 into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
2 changed files with 19 additions and 0 deletions
Showing only changes of commit 33cb36d8c7 - Show all commits

View File

@ -136,6 +136,7 @@ def apply_transfer_data(context: bpy.types.Context, transfer_data_map) -> None:
)
if transfer_info.type == constants.SHAPE_KEY_KEY:
transfer_functions.transfer_shape_key(
context=context,
target_obj=target_obj,
source_obj=source_obj,
shape_key_name=transfer_info.name,

View File

@ -321,6 +321,21 @@ def transfer_material_slot(material_slot_name, target_obj, source_obj):
# SHAPE KEYS
def shape_key_set_active(obj, shape_key_name):
for index, shape_key in enumerate(obj.data.shape_keys.key_blocks):
if shape_key.name == shape_key_name:
obj.active_shape_key_index = index
def shape_key_active_move(context, obj, shape_key_name, top=True):
move_type = "TOP" if top else "BOTTOM"
shape_key_set_active(obj, shape_key_name)
with context.temp_override(active_object=obj, object=obj):
bpy.ops.object.shape_key_move(type=move_type)
def shape_key_closest_face_to_point(bm_source, p_target, bvh_tree=None):
if not bvh_tree:
bvh_tree = mathutils.bvhtree.BVHTree.FromBMesh(bm_source)
@ -383,12 +398,14 @@ def init_shap_keys(scene, obj):
def transfer_shape_key(
context: bpy.types.Context,
shape_key_name: str,
target_obj: bpy.types.Object,
source_obj: bpy.types.Object,
):
# BASIS SHAPE KEY MUST BE PASSED FIRST OTHERWISE THIS WILL ERROR OUT
sk_source = source_obj.data.shape_keys.key_blocks.get(shape_key_name)
print(f"Moving shape key: {shape_key_name}")
# TODO Restore Shape Key Index Position after Transfer
@ -415,6 +432,7 @@ def transfer_shape_key(
sk_target.relative_key = target_obj.data.shape_keys.key_blocks[
sk_source.relative_key.name
]
shape_key_active_move(context, target_obj, shape_key_name)
bm_source = bmesh.new()
bm_source.from_mesh(source_obj.data)