QUOTE
the problem about full DAG path and animation ...
usually the animation pipeline relies on generic tools, searching for given strings inside the nodeNames in the scene.
When animator is pressing the button "pleaseBuildMySuperSpecialAnimationUI", a tool goes trough all the nodes searching for specific strings and builds the animation UI and other tools based on the so found data.
If there are duplicating names then which node is the needed ( right ) one ?
Yes i understand that , thats what ive been doing the past 4 years. But what your saying is that your code breaks just beacaue there two nodes with the same name, then that means it does break whan the same identifying part is present too! Infact its very prone to breakdown. Then i say your tools arent generic enough.
Thet does still not explain why you MUST use short names, all that info is part of the long name too!
I mean the parser does not need to be horrendeously stupid. Let us suppose that you have two contolls called hand-cntrl now then is proceeds creating controlls if it encounters a duplicate name no prob. Since the gui allways binds absolute names to its controlls theres no way of this causing conflict for the contoroll itself. And if it subsequently encounters a hand controll it goes ahead and builds a second hand controll. It now also knows incidentaly that theres 2 hand controlls present so it can now go back and correnct the naming to reflect the fact that the second contoll belongs to the left hand and the other to the right, and in the case of a 12 handed moster it calls it the secondlowestleftbehindhand because thets what the hierarchy indicates.
now if i added another similliar character it would also incidentaly know that the other hand belongs to bob and the other to lisa.
However your apprach seems to indicate that you somehow make the binding to the ui in some permanent fashion that does not account for changes in the scene. For example tahts hwo final rig in is done and its way badly designed in this aspect!
how do i solve it. Well i allways scan the base characters a new every time they are loaded (i can easily do this with a scriptNode), infact i also present the user a option to rescan the characters just incase i change its structure during the session so if i indeed cnaged the hand to stick in the back for some reason i just tell the ui to update. How do i identify the characters? By Name (tough i also sometimes use sets or attribs to do so), but even the characters name does not need to be unique, because i can allways identify the namespace/group it resides in. and it isnt slow ist fast enough for the user not to notice the difference.
i mean even if i had 100 hands i can easily make a script that can figure out where it belongs even if its not in the same hiearachy trough sets.
But sound like your base identifying sceme is much like finalrigs flawed in the core. No offense.