Jump to content
  • 0
Jarom Brand

Maya NURBS curveShape attributes


Ever since Autodesk included Arnold in maya, every NURBS curveShape now has these attributes:

  • aiRenderCurve
  • aiCurveWidth
  • aiSampleRate
  • aiCurveShaderR
  • aiCurveShaderG
  • aiCurveShaderB



I like to place instanced NURBS curveShapes under controls to give animators access to the same attributes across multiple controls, say a fk/ik switch. So, to clean things up, I will lock and hide those new attributes and add my own:


For the most part this works great, but those attributes that I locked and hid will randomly pop back into the Channel Box on their own. 



I assume it has something to do with Arnold plugin and that its putting them back, but I'd like to stop that from happening. Any Ideas? 



Edited by Jarom Brand

Share this post

Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 1

thats annoying. i remember mental ray did somthing similar way back.

Does this only happen on instanced curve shapeNodes?

have you tried scrubbing the attrs from the may aascii file.. and  once erased from the aascii do they return magically?

one solution may be to buy into the maya "controller node" workflow. This has some cool stuff assiciated with it, and it does allow an abstration layer between the animation attrs you care about and the animator's access to those controls. it would let you always show those attrs in "more than one place" so to speak.. and various animator "points-of-access"

another bad solution may be to add an "on scene open"  callback to always lock/hide or delete these pesky attrs.

i will dig into this some more..

see if i can reproduce it; im using maya 2017 and right now i cant reproduce this in our assets...

but i'll give it a go ion 18 as well.

Share this post

Link to post
Share on other sites
  • 0

Hey thanks for the suggestions Mark, I have not tried scrubbing it from the ascii file, but Ill give it a try. Its a hard one to reproduce because it only happens sometimes. Ill open and close the file multiple times over several days without any issue, then randomly it will happen. Ill also look into the controller node workflow. I've known about it, but have not spent the time to really look into it. 

I tend to avoid using scriptNodes, but that would definitely work



Share this post

Link to post
Share on other sites
  • 0

I have actually not had the attributes reappear since posting this question. It seems to be such a random thing that it's hard to debug. if/when it does happen again, I'll give that a try. 

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Jarom Brand
      Does anyone know how to get a list of all the attributes that show up in the channelBox? I have something that works for transforms, but if I try it on shapes I get way more than I want. 
      This is what I have so far:
      import pymel.core as pm def getChannelBoxAttrs(obj): ''' Returns a list of all the visible attributes @param PyNode: object The ojects whoes attributes will be toggled @return list: Returns a list of the attributes in the channelBox ''' visible_attrs = [] attribs = obj.listAttr(k=True, u=True) attribs.extend(obj.listAttr(k=True, l=True)) attribs.extend(obj.listAttr(cb=True)) #remove the parent transform attributes from the list parent_attrs = ['translate', 'rotate', 'scale'] for attrib in attribs: if not attrib.attrName(longName=True) in parent_attrs: visible_attrs.append(attrib) return visible_attrs obj = pm.selected()[0] getChannelBoxAttrs(obj)  
      If I have a  shape selected when I run this I will get this as a return:
      # Result: [Attribute(u'nurbsCircleShape1.controlPoints[-1].xValue'), Attribute(u'nurbsCircleShape1.controlPoints[-1].yValue'), Attribute(u'nurbsCircleShape1.controlPoints[-1].zValue'), Attribute(u'nurbsCircleShape1.uvSet[-1].uvSetName'), Attribute(u'nurbsCircleShape1.colorSet[-1].colorName'), Attribute(u'nurbsCircleShape1.colorSet[-1].clamped'), Attribute(u'nurbsCircleShape1.colorSet[-1].representation'), Attribute(u'nurbsCircleShape1.aiUserOptions'), Attribute(u'nurbsCircleShape1.aiTraceSets'), Attribute(u'nurbsCircleShape1.aiSssSetname'), Attribute(u'nurbsCircleShape1.aiRenderCurve'), Attribute(u'nurbsCircleShape1.aiCurveWidth'), Attribute(u'nurbsCircleShape1.aiSampleRate'), Attribute(u'nurbsCircleShape1.aiCurveShader'), Attribute(u'nurbsCircleShape1.aiCurveShaderR'), Attribute(u'nurbsCircleShape1.aiCurveShaderG'), Attribute(u'nurbsCircleShape1.aiCurveShaderB')] # Even though most of those don't actually show up in the channelBox. 
      Also If anyone has a more elegant way of stripping out parent attributes, I'd love to see it. I never like hard coding things like that. 
    • By Jason
      I was getting a TON of crashes in Maya yesterday... like nearly every 5 minutes!
      The rig i'm using is super simple, basically just a bunch of constraints. So I set my evaluation mode to serial instead of parallel, and got zero crashes.
      I know this isn't a long-term solution.. but for now, at least I can work.
      To do this, go to:
      Windows -> Settings / Preferences -> Preferences
      Click on  Animation
      Set evaluation mode to Serial.

    • By Jason
      I was thinking about rigging systems and was wondering if anyone had any experience with mgear or other systems in Maya?  @Brad Clark you said you got mgear working in Nimble - can you tell us about it?
  • Create New...