feat(rcf): add gpencil support
This commit is contained in:
parent
f10a546585
commit
f05d33e303
@ -50,7 +50,6 @@ SUPPORTED_DATABLOCKS = ['collections', 'meshes', 'objects',
|
|||||||
'materials', 'textures', 'lights', 'cameras', 'actions', 'armatures', 'grease_pencils']
|
'materials', 'textures', 'lights', 'cameras', 'actions', 'armatures', 'grease_pencils']
|
||||||
SUPPORTED_TYPES = ['Collection', 'Mesh', 'Object', 'Material',
|
SUPPORTED_TYPES = ['Collection', 'Mesh', 'Object', 'Material',
|
||||||
'Texture', 'Light', 'Camera', 'Action', 'Armature', 'GreasePencil', 'Scene']
|
'Texture', 'Light', 'Camera', 'Action', 'Armature', 'GreasePencil', 'Scene']
|
||||||
|
|
||||||
CORRESPONDANCE = {'Collection': 'collections', 'Mesh': 'meshes', 'Object': 'objects', 'Material': 'materials',
|
CORRESPONDANCE = {'Collection': 'collections', 'Mesh': 'meshes', 'Object': 'objects', 'Material': 'materials',
|
||||||
'Texture': 'textures', 'Scene': 'scenes', 'Light': 'lights', 'Camera': 'cameras', 'Action': 'actions', 'Armature': 'armatures', 'GreasePencil': 'grease_pencils'}
|
'Texture': 'textures', 'Scene': 'scenes', 'Light': 'lights', 'Camera': 'cameras', 'Action': 'actions', 'Armature': 'armatures', 'GreasePencil': 'grease_pencils'}
|
||||||
# UTILITY FUNCTIONS
|
# UTILITY FUNCTIONS
|
||||||
@ -189,6 +188,8 @@ def update_selected_object(context):
|
|||||||
|
|
||||||
|
|
||||||
def init_scene():
|
def init_scene():
|
||||||
|
for gp in bpy.data.grease_pencils:
|
||||||
|
dump_datablock(gp, 9)
|
||||||
for cam in bpy.data.cameras:
|
for cam in bpy.data.cameras:
|
||||||
dump_datablock(cam, 1)
|
dump_datablock(cam, 1)
|
||||||
for light in bpy.data.lights:
|
for light in bpy.data.lights:
|
||||||
@ -304,7 +305,6 @@ def load_scene(target=None, data=None, create=False):
|
|||||||
except:
|
except:
|
||||||
print("Collection loading error")
|
print("Collection loading error")
|
||||||
|
|
||||||
|
|
||||||
def load_material(target=None, data=None, create=False):
|
def load_material(target=None, data=None, create=False):
|
||||||
try:
|
try:
|
||||||
if target is None and create:
|
if target is None and create:
|
||||||
@ -350,15 +350,46 @@ def load_material(target=None, data=None, create=False):
|
|||||||
except:
|
except:
|
||||||
print("Material loading error")
|
print("Material loading error")
|
||||||
|
|
||||||
|
def load_gpencil_layer(target=None,data=None, create=False):
|
||||||
|
|
||||||
|
dump_anything.load(target, data)
|
||||||
|
|
||||||
|
|
||||||
|
for frame in data["frames"]:
|
||||||
|
try:
|
||||||
|
tframe = target.frames[frame]
|
||||||
|
except:
|
||||||
|
tframe = target.frames.new(frame)
|
||||||
|
dump_anything.load(tframe, data["frames"][frame])
|
||||||
|
for stroke in data["frames"][frame]["strokes"]:
|
||||||
|
try:
|
||||||
|
tstroke = tframe.strokes[stroke]
|
||||||
|
except:
|
||||||
|
tstroke = tframe.strokes.new()
|
||||||
|
dump_anything.load(tstroke, data["frames"][frame]["strokes"][stroke])
|
||||||
|
|
||||||
|
for point in data["frames"][frame]["strokes"][stroke]["points"]:
|
||||||
|
p = data["frames"][frame]["strokes"][stroke]["points"][point]
|
||||||
|
try:
|
||||||
|
tpoint = tstroke.points[point]
|
||||||
|
except:
|
||||||
|
tpoint = tstroke.points.add(1)
|
||||||
|
tpoint = tstroke.points[len(tstroke.points)-1]
|
||||||
|
dump_anything.load(tpoint, p)
|
||||||
|
|
||||||
|
|
||||||
def load_gpencil(target=None, data=None, create=False):
|
def load_gpencil(target=None, data=None, create=False):
|
||||||
try:
|
try:
|
||||||
if target is None and create:
|
if target is None and create:
|
||||||
bpy.data.grease_pencils.new(data["name"])
|
target = bpy.data.grease_pencils.new(data["name"])
|
||||||
|
|
||||||
if "layers" in data.keys():
|
if "layers" in data.keys():
|
||||||
for layer in data["layers"]:
|
for layer in data["layers"]:
|
||||||
print(layer)
|
if layer not in target.layers.keys():
|
||||||
|
gp_layer = target.layers.new(data["layers"][layer]["info"])
|
||||||
|
else:
|
||||||
|
gp_layer = target.layers[layer]
|
||||||
|
load_gpencil_layer(target=gp_layer,data=data["layers"][layer],create=create)
|
||||||
# Load other meshes metadata
|
# Load other meshes metadata
|
||||||
dump_anything.load(target, data)
|
dump_anything.load(target, data)
|
||||||
except:
|
except:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user