Last active
March 3, 2024 18:19
-
-
Save redglasses67/8ba1ce2d6b10d2762dc64c1cbbd3cea1 to your computer and use it in GitHub Desktop.
Maya で float 値をビューポート上に注釈として表示する
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import maya.cmds as mc | |
import maya.mel as mel | |
def displayFloatAttrAnnotation(offsetY=0): | |
selList = mc.ls(sl=True) | |
if len(selList) == 0: | |
mc.warning("Please select any object...") | |
return | |
channelBox = mel.eval('global string $gChannelBoxName; $temp=$gChannelBoxName;') | |
selAttrList = mc.channelBox(channelBox, q=True, selectedMainAttributes=True) | |
if selAttrList is None: | |
mc.warning("Please select any attribute in ChannelBox.") | |
return | |
selObj = selList[0] | |
selAttr = selAttrList[0] | |
displayAttrName = "{}_{}".format(selObj, selAttr) | |
defaultFloatAttrAnnName = "FloatAttrAnnotationNode" | |
floatAttrAnnName = "{}_{}".format(defaultFloatAttrAnnName, displayAttrName) | |
oldFloatAttrAnn = mc.ls("*{}*".format(floatAttrAnnName)) | |
if len(oldFloatAttrAnn) > 0: | |
mc.delete(oldFloatAttrAnn) | |
pt = mc.particle(name=floatAttrAnnName, position=[0, 0, 0], conserve=True) | |
ptShape = pt[1] | |
mc.setAttr("{}.particleRenderType".format(ptShape), 2) | |
mc.addAttr(ptShape, longName=displayAttrName, attributeType="float", keyable=True) | |
mel.eval('addAttr -is true -ln "pointSize" -at long -min 1 -max 60 -dv 2 {};'.format(ptShape)) | |
mel.eval('addAttr -is true -ln "selectedOnly" -at bool -dv false {};'.format(ptShape)) | |
mel.eval('addAttr -is true -dt "string" -ln "attributeName" {};'.format(ptShape)) | |
mc.setAttr("{}.attributeName".format(ptShape), displayAttrName, type="string") | |
mc.connectAttr("{}.{}".format(selObj, selAttr), "{}.{}".format(ptShape, displayAttrName), force=True) | |
mc.pointConstraint(selObj, floatAttrAnnName, offset=[0, offsetY, 0]) | |
#displayFloatAttrAnnotation() | |
displayFloatAttrAnnotation(0.5) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment