Adding Extra Attributes



Hey there!

This might be a simple question, but I would love the help.

I was watching the GDC talk from Bungie today and would like to find out how to do this feature. Basically, under the attributes tab, there is a extra Attributes section, they added in more headings such as “IK Chain”, “Bind Joints” and so on. Here’s a screen shot of what I am talking about:

Would this be done with the API or is there some normal maya commands that can do this?

Thank you very much in advance, I look forward seeing what you guys have to say!


The most likely answer is creating a custom attribute editor template for their nodes.

It has been a good while since I’ve looked at it,but it was always a bit of an arcane art from what I remember.


Thank you very much for your suggestion @R.White I’ll take a look into it and see what I can conjure up. Any “gotchas” that I should look out for when using these templates?


I find there’s a lack of examples online on how to write these mysterious templates, so if it helps, here’s one example of a custom node with an associated template, along with accessing and modifying the template via PySide/PyQt.


I agree, there is a lack of examples online on how to write these templates. I also find the documentation a bit tedious to go through. I am going to play around a bit with the examples that you have given me and see if I come right. Thank you very much for the help @marcuso :+1:


AETemplates done the “maya” way are pretty nasty, since they’ve never really wrapped these up properly to let them escape from their heritage in MEL. Here’s a tutorial on the MEL version :

You can render this a little less awful and more Pythonic like this.

First find the the existing AETemplate for your mode type – it’ll be a mel file named something like AEYourNoderHere.mel. Then make a new mel procedure with the same name that shims a line of python in after the creation of the default UI (or in place of it if that’s what you prefer). Heres’ one I did a long time ago to customize the properties in a StingrayPBS material node:

global proc AEStingrayPBSPropUI()
	eval("shaderfx -nodeUI -sfxnode $StingrayPBSActiveShaderName[0]");
	python("import as ae; ae.add_ui()");

This replaced the original AEStingrayPBSPropUI() with a new one that I could define in Python. The Python function created the UI with all the usual Python tools and callbacks.

AETemplates are one of Maya’s worst features, and they’ve gotten very little attention from ADSK in the last decade