Hey @dew
The connect phase is the point of how the components connect together (figuring out the relationship). It could be a standard parent → child (hierarchy), or it could be a parent, orient constraint kind of connection. This now depends on the use case.
Here is an example with one of the arm components - as you will note there is a “standard” and “should_01” connection types. Most components use standard, and the odd one here and there has something unique for its own use case. The screen grabs are showing the UI and the attributes on the node.
In the arm_02 __init__.py
file, all the way at the bottom you will start seeing some of these connections being defined.
All that is happening is shifter trying to figure out the connection relationship. This is defined in the component itself, and like you mentioned there is a lot of core code within the main build class that is dealing with many other aspects - or functions that you can use for your own components. - This has nothing to do with the joint structure yet. At this point, you will have a fully functioning “rig” just without the joints and some of the clean-up steps. Only in the next step does shifter create the joints and the jointStructure()
class method is called.
The thing to remember is that with each step, every single component that is part of your guide will be built. During the connection step, everything should be working in terms of rig functionality. When it gets to the joint step, each component will have their respective joints created, one component at a time. Now because we store all our guide and build class instances, we can then further figure out the relationships between them too.
Hope that helps man!
PS Thanks @chrislesage the triple tick is exactly what I needed!