Community
Maya Programming
Welcome to Autodesk’s Maya Forums. Share your knowledge, ask questions, and explore popular Maya SDK topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Any way to query keyframe -tickDrawSpecial?

3 REPLIES 3
Reply
Message 1 of 4
theazz
582 Views, 3 Replies

Any way to query keyframe -tickDrawSpecial?

Hey all

 

This is a real head scratcher, is there any way to query the state of "keyframe -tickDrawSpecial" I've tried just -q but I dont get the results I expect at all.

 

thanks

3 REPLIES 3
Message 2 of 4
prakasv
in reply to: theazz

The “-tickDrawSpecial” flag is NOT queryable. It will work only in create/edit mode. Please check the following link for confirmation.

http://help.autodesk.com/cloudhelp/2015/ENU/Maya-Tech-Docs/Commands/keyframe.html

 

So, If you want to set the “-tickDrawSpecial” falg. You can do the following.

To set: keyframe  -e –tickDrawSpecial 1; // no-op if it is already set

To unset: keyframe  -e –tickDrawSpecial 0;//no-op if it is already unset


Vijaya Prakash
Developer Technical Services
Autodesk Developer Network


Message 3 of 4
theazz
in reply to: prakasv

Thanks, I thought not, thats a bit strange.

 

I was just using a workflow for the following

 

I have a lot of dense basked mocap data on a character set

 

I go through and mark key poses on keyframes in the animation using my own script to set the -tickdrawspecial on my chosen poses

 

I wanted to then have a script that would go through and delete all keys except those with tickdrawspecial enabled, I guess this is impossible, I don't suppose you could suggest an alterante soltuion? (I could just make a list of frames as I go I guess)

 

I'm not as clever as you guys 🙂

 

thanks so much for your help.

Message 4 of 4
sibleon
in reply to: theazz

Very old topic, but still ranks high in search.

 

I recently came across a method for querying the tickDrawSpecial state of keys. The gist of it is, that every animation curve has an attribute with the state of each key by index.

 

Given an object, you can iterate all animation curves at the current time like this, and see if ANY curve has the tick draw special attribute set to true.

import maya.cmds as cmds

for obj in cmds.ls(sl=True):
    foundspecial = False
    animcurves = cmds.listConnections(obj, type='animCurve')
    time = cmds.currentTime(q=True)
    
    if animcurves is not None:
        for animCurve in animcurves:
            if foundspecial:
                break
                
            indices = cmds.keyframe(animCurve, q=True, time=[(time, time)], indexValue=True)
            
            if indices is not None:
                for index in indices:
                    if cmds.getAttr('%s.keyTickDrawSpecial[%d]' % (animCurve, index)):
                        foundspecial = True
                        break
    
    if foundspecial:
        print('Found special tick at frame %.1f for %s' % (time, obj))
    else:
        print('Did not find special tick at frame %.1f for "%s"' % (time, obj))

 

 

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report