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.
3 changed files with 45 additions and 43 deletions
Showing only changes of commit da6826578b - Show all commits

View File

@ -350,48 +350,6 @@ def import_data_from_lib(
## DRIVERS ## DRIVERS
def copy_driver(from_fcurve, target, data_path=None, index=None):
if not data_path:
data_path = from_fcurve.data_path
new_fc = None
if index:
new_fc = target.driver_add(data_path, index)
else:
new_fc = target.driver_add(data_path)
copy_attributes(from_fcurve, new_fc)
copy_attributes(from_fcurve.driver, new_fc.driver)
# Remove default modifiers, variables, etc.
for m in new_fc.modifiers:
new_fc.modifiers.remove(m)
for v in new_fc.driver.variables:
new_fc.driver.variables.remove(v)
# Copy modifiers
for m1 in from_fcurve.modifiers:
m2 = new_fc.modifiers.new(type=m1.type)
copy_attributes(m1, m2)
# Copy variables
for v1 in from_fcurve.driver.variables:
v2 = new_fc.driver.variables.new()
copy_attributes(v1, v2)
for i in range(len(v1.targets)):
copy_attributes(v1.targets[i], v2.targets[i])
return new_fc
def find_drivers(drivers, target_type, target_name):
found_drivers = []
for driver in drivers:
if f'{target_type}["{target_name}"]' in driver.data_path:
found_drivers.append(driver)
return found_drivers
def get_other_ids(collection): # TODO find better name def get_other_ids(collection): # TODO find better name
ref_map = get_id_reference_map() ref_map = get_id_reference_map()
all_ids_of_coll = get_all_referenced_ids(collection, ref_map) all_ids_of_coll = get_all_referenced_ids(collection, ref_map)

View File

@ -0,0 +1,44 @@
import bpy
from rigify.utils.misc import copy_attributes
def copy_driver(from_fcurve, target, data_path=None, index=None):
if not data_path:
data_path = from_fcurve.data_path
new_fc = None
if index:
new_fc = target.driver_add(data_path, index)
else:
new_fc = target.driver_add(data_path)
copy_attributes(from_fcurve, new_fc)
copy_attributes(from_fcurve.driver, new_fc.driver)
# Remove default modifiers, variables, etc.
for m in new_fc.modifiers:
new_fc.modifiers.remove(m)
for v in new_fc.driver.variables:
new_fc.driver.variables.remove(v)
# Copy modifiers
for m1 in from_fcurve.modifiers:
m2 = new_fc.modifiers.new(type=m1.type)
copy_attributes(m1, m2)
# Copy variables
for v1 in from_fcurve.driver.variables:
v2 = new_fc.driver.variables.new()
copy_attributes(v1, v2)
for i in range(len(v1.targets)):
copy_attributes(v1.targets[i], v2.targets[i])
return new_fc
def find_drivers(drivers, target_type, target_name):
found_drivers = []
for driver in drivers:
if f'{target_type}["{target_name}"]' in driver.data_path:
found_drivers.append(driver)
return found_drivers

View File

@ -1,7 +1,7 @@
import bpy import bpy
from bpy import context from bpy import context
from ..asset_suffix import get_basename from ..asset_suffix import get_basename
from ..core import find_drivers, copy_driver from ..drivers import find_drivers, copy_driver
from . import transfer_core # TODO FIX from . import transfer_core # TODO FIX
from .. import constants from .. import constants
import mathutils import mathutils