clean up on the fbx and max_scene code

This commit is contained in:
Kayla Man 2023-08-16 22:39:36 +08:00
parent 8aa150cfe5
commit 3342ceff2c
3 changed files with 16 additions and 9 deletions

View file

@ -57,7 +57,11 @@ class FbxLoader(load.LoaderPlugin):
rt.FBXImporterSetParam("Preserveinstances", True)
rt.ImportFile(
path, rt.name("noPrompt"), using=rt.FBXIMP)
current_fbx_objects = rt.GetCurrentSelection()
inst_container = rt.getNodeByName(inst_name)
for fbx_object in current_fbx_objects:
if fbx_object.Parent != inst_container:
fbx_object.Parent = inst_container
update_custom_attribute_data(
inst_container, rt.GetCurrentSelection())
with maintained_selection():

View file

@ -47,13 +47,15 @@ class MaxSceneLoader(load.LoaderPlugin):
inst_container = rt.getNodeByName(inst_name)
# delete the old container with attribute
# delete old duplicate
prev_max_object_names = [obj.name for obj in rt.getLastMergedNodes()]
prev_max_object_names = [obj.name for obj
in rt.getLastMergedNodes()]
rt.MergeMaxFile(path, rt.Name("deleteOldDups"))
current_max_objects = rt.getLastMergedNodes()
current_max_object_names = [obj.name for obj in rt.getLastMergedNodes()]
for obj in current_max_object_names:
idx = rt.findItem(prev_max_object_names, obj)
current_max_object_names = [obj.name for obj
in current_max_objects]
for name in current_max_object_names:
idx = rt.findItem(prev_max_object_names, name)
if idx:
prev_max_object_names = rt.deleteItem(prev_max_object_names, idx)
for object_name in prev_max_object_names:

View file

@ -46,19 +46,20 @@ class FbxModelLoader(load.LoaderPlugin):
node_name = container["instance_node"]
node = rt.getNodeByName(node_name)
inst_name, _ = node_name.split("_")
rt.select(node.Children)
inst_container = rt.getNodeByName(inst_name)
rt.FBXImporterSetParam("Animation", False)
rt.FBXImporterSetParam("Cameras", False)
rt.FBXImporterSetParam("Mode", rt.Name("merge"))
rt.FBXImporterSetParam("AxisConversionMethod", True)
rt.FBXImporterSetParam("UpAxis", "Y")
rt.FBXImporterSetParam("Preserveinstances", True)
rt.importFile(path, rt.name("noPrompt"), using=rt.FBXIMP)
inst_container = rt.getNodeByName(inst_name)
current_fbx_objects = rt.GetCurrentSelection()
for fbx_object in current_fbx_objects:
if fbx_object.Parent != inst_container:
fbx_object.Parent = inst_container
update_custom_attribute_data(
inst_container, rt.GetCurrentSelection())
inst_container, current_fbx_objects)
with maintained_selection():
rt.Select(node)