The first thing I thought is it needs automated control hierarchy. At 0:31 you show setting up sub-chunks via selection. That may be worth automating so that every N controls gets a master, or it makes N masters spread as evenly as possible.
Another thing I thought of is that I want an API. It’s nice you’ve got your own standalone tool. But if I were to use this, I’d want to be able to integrate it into my auto-rigger for some of my custom subsystems without opening or instantiating your UI, or even importing Qt (so it’ll run in batch mode). And I’d also want to add a panel to my existing rig setup tool that can call your interactive functions, or at least show your UI as a widget in my own tool.
And really, FK is OK. But if FK exists, I know of at least 2 of my animators that will immediately ask for IK controls. If you don’t implement it, then I’d definitely want the API to return the lists of objects so that I could build my own IK solution on top of your FK one.
At work, I have a very specific naming convention I’ve got to adhere to for both object names and attribute names. Can I customize that?
And why are you using PyQt? PySide comes with Maya already. If you want to maintain compatibility with PyQt, then I’d suggest using mottosso’s Qt.py so people that don’t want to mess with the PyQt dependency are still able to use your tool.
Oh, and how well does it handle Undos?
And now for something I absolutely do not expect you to change about your code. But I’m gonna ask it anyway because it gives me a chance to rant a bit, and it gives you a chance to think about how you’d make this change.
Can the setup be built with just transforms, and not bones? I have an aversion to bones. They’re a terrible half-way legacy solution to a problem that can be solved better and more intuitively with extra transform nodes, or the offset parent matrix.
2 Likes
First of all Thank you so much for taking time to give me feedbak on this
A- for setting the number of master controls automatically I was going to do that until a rigger friend asks me to give him the control over wich controls he chooses to have a master, But you have a good point and i’ll add the feature in next version
B- for ik thing i’ll add the splineIk behavior with control over the number of ctrls driving it
C- for naming convesion, now its not dynamic, but i’ll consider adding control for the naming convension for the jnts/ctrls
D- I said Iam using PyQt but actually I did use PySide2 and PySide6 for later versions of maya
I know that PyQt/Pyside is the same thing so I didn’t think that would cause a misconception
E- for undo thing, i put the jnt/ctrl creation into an undo chunck
so that with only ctrl+z you can undo the hole thing
F- for the transform it’s a good idea to add this into the code so it will be more dynamic and not working for only the joints
G- about the API i didn’t actually understand what you mean about API
did you mean sharing the code itself ?! or making a commands that interacts with setup after creation ?!
i did add a button for attaching the setup to any existing rig though
again Thanks very much for your FeedBack !
D- PyQt and PySide are not the same thing. They are both libraries that do the same thing, but they are not compatible with each other. And Qt.py makes them compatible. (I’ve had to deal with this, so I’m picky about it)
G- No, not sharing the code itself. An API is just a list of functions that you share without sharing the code. Like how you can call a maya command without having the code it runs.
An API is an advanced thing. It’s probably not useful to the people who want to use your tool. I was too eager to share my thoughts, and didn’t consider that.
However, as your tools get more complex, it will become useful. So it’s good practice to make one, I think. It is not required, though.
3 Likes
I appreciate your advice and valuable feedback.
Thank you for explaining the difference between PyQt and PySide—the API idea is definitely worth considering.
I’ll put in the hard work and see what comes out of it!
1 Like
once I got the time to re work on the script I added this small feature "Dynamic Master Fk For The Fk Ctrrls Number "