Link an existing character in a seperate Blend file

Hello Victor,

I want to use one CC5 character, linked from one .blend file and use it in other scenes. I managed to do this by Linking the collection with the character in it, and give it a Library Override on the rig and the body mesh, then connect the animations to the rig via the Action Editor and to the body mesh with the Shape Key editor.

It works, but to send the animation from iClone to Blender via the Datalink panel this way, I have to first send the avatar from iClone, because otherwise there is nothing in the Blender scene to receive the new animation data. And I have to keep it in the scene to receive future updated animation data. After that I have to connect the animation data to the linked character by hand the way I described above.

For that reason I would like to make use of this “Link” function:
“Link an existing Reallusion character in a seperate Blend file”

Because it sounds like that would connect the linked character in some smart way, so all these extra steps won’t be neccessary. Do I understand that right?

But I have no idea how to get it to work and I cant find any documentation about it.
Could you please point me to some documentation, or if there isn’t any available, help me setting this up?

Thank you very much in advance!

It’s very simple.

  • Save your main character blend file.

  • Start a new blend file. Press the link button, select the main character blend file, and it will link that character and import all it’s data. Then you can use it as if it was freshly imported from iClone.

If you’re linking you will still need to do the Library overrides by hand in the UI, as I leave the choice of what to override to the user.

Though Library overrides are a confusing mess, which is why I much prefer to append.

Hi Victor,

Thanks for your fast reply!
Haha, I really want to try this confusing mess because it sounds like it is gonna be super efficient too. :grin:

But… when I click the Link button, I can select a file, but then nothing happens.
Any idea what I’m doing wrong, or might there be a bug in the latest version?
(BTW The Append-button is also doing nothing.)

What version of the pipeline have you got and in what version of Blender?

Edit: And check the system console for any errors.

Hi,

CC/iC Tools 2.4.4
Blender 5.2.2

Python Console says nothing
Info says: bpy.ops.ccic.characterlink(param=“LINK”, filepath=“D:\CC5Test.blend”, filter_glob=“*.blend”)

When you send a character across from iClone, are there any errors then?

I’m wondering if the character isn’t set up properly because something went wrong. Then it wouldn’t link correctly.

Hi,

I tried with Aaron and Eddy, sent from CC and from iClone.
I get no error messages in iClone nor CC.

It is strange… when I Link the regular way, they come in the scene like they 're supposed to. (Only if I put them in a collection first ofcourse.)

Via the Link button in your addon, they don’t get imported (not the unchanged ones, and not when they are in a collection), but when I re-import (with your addon) a linked character that is already in the scene (linked the regular Blender way) the collection that is already there gets emptied, and just the empty is shown in the scene.
And when I try to link it again afterwards (the regular way), Blender only imports more empty collections.
Only when I open a new file, the regular Linking works again.

Does it work on your own setup?

This is why I said linking is a mess, because it remembers what you did. It hangs onto old references, even if you deleted them, and it won’t link them again.

It works perfectly for me. I can’t get it not to work.

In the “CC/iC Tools” add-on preferences in Blender. There’s a setting right at the bottom: “(Debug) Log Level”. Set this to “All”.

It will log everything it’s doing to the system console, see what that says when you try to link a character:

e.g. It says this when I link a Camila from another Blend file:

Link/Append Reallusion Character
--------------------------------
Found Add-on Import Properties
Character Data Found: camila
Character rig: camila
 - Character Object: Side_part_wavy
 - Character Object: Rolled_sleeves_shirt
 - Character Object: Knee_length_skirt
 - Character Object: High_Heels
 - Character Object: CC_Base_Tongue
 - Character Object: CC_Base_Teeth
 - Character Object: CC_Base_TearLine
 - Character Object: CC_Base_EyeOcclusion
 - Character Object: CC_Base_Eye
 - Character Object: CC_Base_Body
 - Character Object: Camila_Brow
 - setting: import_file F:\Exports\camila.fbx
 - setting: import_flags 3073
 - setting: character_name camila
 - setting: import_embedded False
 - excluding: object_cache
 - setting: link_id 0M6JXTHBF3HCAO9D2BZ2
 - setting: generation G3Plus
 - excluding: hair_material_cache
 - excluding: pbr_material_cache
 - excluding: head_material_cache
 - excluding: skin_material_cache
 - excluding: eye_material_cache
 - excluding: eye_occlusion_material_cache
 - excluding: tearline_material_cache
 - excluding: teeth_material_cache
 - excluding: tongue_material_cache
 - copying property group: basic_parameters
 - setting: eye_occlusion 0.5
 - setting: eye_occlusion_power 0.5
 - setting: eye_brightness 0.8999999761581421
 - setting: eye_specular 0.800000011920929
 - setting: eye_roughness 0.05000000074505806
 - setting: eye_normal 0.10000000149011612
 - setting: skin_ao 1.0
 - setting: hair_ao 1.0
 - setting: default_ao 1.0
 - setting: default_specular 0.5
 - setting: skin_specular 0.4000000059604645
 - setting: hair_specular 0.5
 - setting: scalp_specular 0.0
 - setting: teeth_specular 0.25

    (Lots of setting: ...)

Cloth Physics settings detected as: HAIR
Activating cloth physics on Side_part_wavy / Hair_Transparency

(There’s a lot of log spam, you’ll need to scroll down to see it all)
It will be interesting to see where yours stops.

It doesn’t do much!

bpy.ops.outliner.delete(hierarchy=True)
Preferences saved
bpy.context.area.ui_type = ‘CONSOLE’
bpy.context.area.ui_type = ‘INFO’
bpy.context.region.active_panel_category = ‘CC & iClone’
bpy.context.region.active_panel_category = ‘CC & iClone’
bpy.ops.n_panel_sub_tabs.enable_tab(etype_name=“VIEW_3D”, tab_name=“CC/iC Pipeline”, category_name=“CC & iClone”)
bpy.context.space_data.bookmarks_active = 2
bpy.ops.ccic.characterlink(param=“LINK”, filepath=“D:\Eddy Test.blend”, filter_glob=“.blend")
bpy.ops.ccic.characterlink(param=“LINK”, filepath=“D:\Eddy Collection Test.blend”, filter_glob="
.blend”)
bpy.context.space_data.bookmarks_active = 2
bpy.ops.render.get_outlinesprops()
bpy.ops.outliner.item_activate(deselect_all=True)

I don’t know if it’s useful, but I tried with addon version 2.4.0 in Blender 4.2.3 and then I get:

bpy.context.space_data.bookmarks_active = 2
Python: Traceback (most recent call last):
File “C:\Users\info\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\cc_blender_tools-2_4_0\characters.py”, line 2289, in execute
link_or_append_rl_character(self, context, self.filepath, link=True)
File “C:\Users\info\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\cc_blender_tools-2_4_0\characters.py”, line 398, in link_or_append_rl_character
with bpy.data.libraries.load(blend_file, link=link) as (src, dst):
OSError: Error: Failed to read blend file ‘D:\Eddy Collection Test.blend’, not a blend file
bpy.ops.ccic.characterlink(param=“LINK”, filepath=“D:\Eddy Collection Test.blend”, filter_glob=“*.blend”)

In Blender 4.5.4 it works!
No idea why though

That’s not the system console, that’s the command log.

The system console is here:

All the errors show here.

Aha!

Okay, I fired up the right thing now. Sorry for the inconvenience.
At the first attempt, nothing happens and the console writes:

Link/Append Reallusion Character
--------------------------------

With the second attempt it says this:


Link/Append Reallusion Character
--------------------------------
01:24.031  blend.readfile   | WARNING Append: ID 'OBT_Shirt_Cut' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBStrap' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBProtect' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBPants' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBLight' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBKnee_Pad' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBJacket' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBHelmet' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBHair_Front' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBHair_Base' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBGun' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBGloves_Cut' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBGloves' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBEyebrows' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBCyber_Legs' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBCC_Base_Tongue' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBCC_Base_Teeth' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBCC_Base_TearLine' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBCC_Base_EyeOcclusion' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBCC_Base_Eye' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBCC_Base_Body' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBCC4 Eddy' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBCamera' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'OBBoots' is already linked
01:24.031  blend.readfile   | WARNING Append: ID 'SCScene' is already linked

Is that of any use to you?

It’s not finding any add-on data in the target Blend file.

The blend file you’re trying to link to, did you import the character into that file using the add-on’s Importer (or via DataLink)?

I tried a couple.
All sent from iClone or CC to Blender with Datalink.

I have a Blender 4.5.4 install that opens the same files without a problem. I tried it with a previous and the current version of the addon.

Are you using the Go-B function? What version of Blender does it send to?

I think it might be sending to an old version of Blender with a different named version of the add-on. It shouldn’t matter, but Blender can be funny with add-on names.

You could try making sure the DataLink is sending to the same version of Blender as you are Linking with:

i.e. make sure you’re sending to Blender 5.2

That sounded hopeful so I tried it right away, in iClone as well as CC, but unfortunately it still didn’t work.

Then there is one last roll of the dice.

  • Link your character by hand as you did originally.
  • Select the armature of the character.
  • Then, In the Rigging & Animation Panel (I cannot remember why I put it there)
    • Theres a button “Connect Character”
    • Press it and find the FBX file for the character
      • Which should be in the imports/CharacterName subdirectory of the blend file if you used the DataLink
    • This should connect the character with it’s Json, so you can use it as full import.

This works!

When I send a pose, Blender crashes, but animations work.

I think I’m gonna do the linkage the regular way and connect the animations by hand though, because it doesn’t feel very stable.
Too bad, because it is a great function.

Anyway, thank you for your help.
Hopefully, a future version works more stable because it actually is a great function.

Hey Victor,

Can you maybe explain what the difference is, under de hood, compared to standard linking in Blender?
Does the standard method still work if you have linked a character using this approach?
Or are certain things locked or different?

Because if I can fallback on the regular method in case things go south, I will definitely use your method.

Thanks!