Thank you very much for your help and apologies for the slow reply (been off a few days)!
You are absolutely right, my question is too broad.
Had a few days to think about other options and perhaps I'm overthinking this.
Nevertheless, I will share with you the specifics.
- Use of 3 basic (procedural) shapes: cube, tube and cylinder.
- Shapes require to be changed dynamically to meet artists needs and required shapes. For example, a tube should be able to bend meet a 0, 90 and 180 degrees angle, without losing volume, while still be able to be shaped with secondary controls.
- Animators will need to use the rig to make the changes to this shape with all necessary controls. This could be with user data sliders or splines.
- Poly Counts needs to change depending on the shot and render software (Unreal or Cinema)
So this is the current rig:
You have a dynamic change of shapes that supports all the parameters that you see in the image.
It does lack the secondary controls needed to shape it as we want and this is a big point as I currently can't create the nuances with Xpresso.
A possible solution would be to use three poly objects with different levels of subdivisions that are controlled with the same rig. Keep some elements procedural, as the bevel and bend deformers and connected all by Xpresso.
This would give us the benefit of accessing the point information and deformed it manually for animation as we need.
Also as @zipit said, this can also be a potential design, if rest fails
And last but not least, a Python Tag doesn't seem to be the right choice for this kind of tool in the first place, due to its constant execution. A script manager script, a Python Generator Object or a fitting plugin type would be much appropriate choices.
I understand that this is a design question and not API, so please delete if it's inappropriate.
Will come back with some results!
Thank you all again for your time!