Added blender scripts
This commit is contained in:
81
assets/blender/scripts/mixamo/lib/objects.py
Normal file
81
assets/blender/scripts/mixamo/lib/objects.py
Normal file
@@ -0,0 +1,81 @@
|
||||
import bpy, os
|
||||
|
||||
def delete_object(obj):
|
||||
bpy.data.objects.remove(obj, do_unlink=True)
|
||||
|
||||
|
||||
def duplicate_object():
|
||||
try:
|
||||
bpy.ops.object.duplicate(linked=False, mode='TRANSLATION')
|
||||
except:
|
||||
bpy.ops.object.duplicate('TRANSLATION', False)
|
||||
|
||||
|
||||
def get_object(name):
|
||||
return bpy.data.objects.get(name)
|
||||
|
||||
|
||||
def set_active_object(object_name):
|
||||
bpy.context.view_layer.objects.active = bpy.data.objects[object_name]
|
||||
bpy.data.objects[object_name].select_set(state=True)
|
||||
|
||||
|
||||
def hide_object(obj_to_set):
|
||||
obj_to_set.hide_set(True)
|
||||
obj_to_set.hide_viewport = True
|
||||
|
||||
|
||||
def is_object_hidden(obj_to_get):
|
||||
if obj_to_get.hide_get() == False and obj_to_get.hide_viewport == False:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
def append_cs(names=[]):
|
||||
context = bpy.context
|
||||
scene = context.scene
|
||||
addon_directory = os.path.dirname(os.path.abspath(__file__))
|
||||
filepath = addon_directory + "\cs.blend"
|
||||
|
||||
# load the objects data in file
|
||||
with bpy.data.libraries.load(filepath, link=False) as (data_from, data_to):
|
||||
data_to.objects = [name for name in data_from.objects if name in names]
|
||||
|
||||
# Add the objects in the scene
|
||||
for obj in data_to.objects:
|
||||
if obj:
|
||||
# link in collec
|
||||
scene.collection.objects.link(obj)
|
||||
|
||||
cs_grp = bpy.data.objects.get("cs_grp")
|
||||
if cs_grp == None:
|
||||
cs_grp = bpy.data.objects.new(name="cs_grp", object_data=None)
|
||||
bpy.context.collection.objects.link(cs_grp)
|
||||
cs_grp.location = [0,0,0]
|
||||
cs_grp.rotation_euler = [0,0,0]
|
||||
cs_grp.scale = [1,1,1]
|
||||
|
||||
# parent the custom shape
|
||||
obj.parent = cs_grp
|
||||
|
||||
# assign to new collection
|
||||
assigned_collections = []
|
||||
for collec in cs_grp.users_collection:
|
||||
try:
|
||||
collec.objects.link(obj)
|
||||
assigned_collections.append(collec)
|
||||
except:# already in collection
|
||||
pass
|
||||
|
||||
if len(assigned_collections):
|
||||
# remove previous collections
|
||||
for i in obj.users_collection:
|
||||
if not i in assigned_collections:
|
||||
i.objects.unlink(obj)
|
||||
# and the scene collection
|
||||
try:
|
||||
scene.collection.objects.unlink(obj)
|
||||
except:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user