オブジェクトにskinClusterがあるかどうかを確認しようとしています。私のコードはかなり基本的です。ここでは例です:Maya Python skinCluster戻り値の型は文字列ではありませんか?
cmds.select(d=True)
joint = cmds.joint()
skinnedSphere = cmds.polySphere(r=2)
notSkinnedSphere = cmds.polySphere(r=2)
skinTestList = [skinnedSphere, notSkinnedSphere]
# Bind the joint chain that contains joint1 to pPlane1
# and assign a dropoff of 4.5 to all the joints
#
cmds.skinCluster(joint, skinnedSphere, dr=4.5)
for obj in skinTestList:
objHist = cmds.listHistory(obj, pdo=True)
skinCluster = cmds.ls(objHist, type="skinCluster")
if skinCluster == "":
print(obj + " has NO skinCluster, skipping.")
else:
print obj, skinCluster
#cmds.select(obj, d=True)
私の問題は、それがのskinClusterを見つけることができない場合でも、それはまだ「OBJ、のskinCluster」というよりも、それはのskinClusterを見つけることができないというエラーを出力していることです。
私はのskinClusterは、文字列を返すと思いました。文字列が空の場合は、 "obj、skincluster"ではなくエラーを出力するはずです。
助けていただけたら幸いです!
異なる哲学は、そのようなオブジェクトが存在しない場合に返す何があります。 'None'または' False'でもかまいません。すべてのオブジェクトに対して 'print repr(skinCluster)、type(skinCluster)'をデバッグしてみてください。 – mkiever
skinClusterが空でないかどうかを確認することもできます。つまり、skinCluster empty –
は空のリストを返します - > []。あなたはAri Goldがあなたに言ったようにチェックすることができます:もしskinClusterでないなら、skinCluster == [] – DrWeeny