def METHOD_NAME(self, libpath, container_name, objects):
    with open(libpath, "r") as fp:
        data = json.load(fp)
    path = os.path.dirname(libpath)
    materials_path = f"{path}/resources"
    materials = []
    for entry in data:
        file = entry.get('fbx_filename')
        if file is None:
            continue
        bpy.ops.import_scene.fbx(filepath=f"{materials_path}/{file}")
        mesh = [o for o in bpy.context.scene.objects if o.select_get()][0]
        material = mesh.data.materials[0]
        material.name = f"{material.name}:{container_name}"
        texture_file = entry.get('tga_filename')
        if texture_file:
            node_tree = material.node_tree
            pbsdf = node_tree.nodes['Principled BSDF']
            base_color = pbsdf.inputs[0]
            tex_node = base_color.links[0].from_node
            tex_node.image.filepath = f"{materials_path}/{texture_file}"
        materials.append(material)
        for obj in objects:
            for child in self.get_all_children(obj):
                mesh_name = child.name.split(':')[0]
                if mesh_name == material.name.split(':')[0]:
                    child.data.materials.clear()
                    child.data.materials.append(material)
                    break
        bpy.data.objects.remove(mesh)
    return materials, objects