師走のこの忙しい時に遭遇したネタを
よしデータ完成、ごみを残さないようにexport selection でモデルデータを保存して・・・
開き直したら・・・・
oh, green world!
検証
メッシュの問題か、マテリアルの問題か
とりあえずlmabert1にアサインして、差分を見てみますか
// Warning: line 1: Node 'moge_geoShape.instObjGroups[0]': cannot make assignment to 'initialShadingGroup' shader. //
// Error: line 1: Connection not made: 'moge_geoShape.instObjGroups[0]' -> 'initialShadingGroup.dagSetMembers[-1]'. Source node will not allow the connection. //
// Error: line 1: Error while parsing arguments. //
(´A)えー・・・・どういうことー?アサインできなーい?
マテリアルのアサインができないシーンかしら?
新規オブジェクトを追加して、
lambert1から新規マテリアルにアサイン -> できる
新規マテリアルから消失しちゃうマテリアルにアサイン -> できなーい
// Warning: line 1: Node 'pCubeShape1.instObjGroups[0]': cannot make assignment to 'lambertrASG' shader. //
// Error: line 1: Connection not made: 'pCubeShape1.instObjGroups[0]' -> 'lambertrASG.dagSetMembers[-1]'. Source node will not allow the connection. //
// Error: line 1: Error while parsing arguments. //
まとめると
- 駄目っぽいマテリアルがアサインされているオブジェクトに別のマテリアルをアサインできない
- 駄目っぽいマテリアルを別のオブジェクトにアサインできない
マテリアルがダメっぽいなぁ
SGとlambertだけなシーンを比較してみると
駄目な奴
createNode shadingEngine -n "lambertrASG";
rename -uid "3D692AC6-4898-8F38-0570-C180B677F552";
setAttr ".ihi" 0;
setAttr ".ro" yes;
relationship "link" ":lightLinker1" "lambertrASG.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" "lambertrASG.message" ":defaultLightSet.message";
connectAttr "lambert3.oc" "lambertrASG.ss";
connectAttr "lambertrASG.msg" "hyperShadePrimaryNodeEditorSavedTabsInfo.tgi[0].ni[7].dn";
connectAttr "lambertrASG.msg" "hyperShadePrimaryNodeEditorSavedTabsInfo1.tgi[0].ni[0].dn";
createNode lambert -n "lambert3";
rename -uid "6F7C3E14-4309-D2F8-07DD-E098B9062588";
connectAttr "lambert3.oc" "lambertrASG.ss"; ; ;
connectAttr "lambert3.msg" "hyperShadePrimaryNodeEditorSavedTabsInfo1.tgi[0].ni[1].dn";
connectAttr "lambert3.msg" ":defaultShaderList1.s" -na;
大丈夫なやつ
createNode shadingEngine -n "lambert2SG";
rename -uid "C02AE22C-4BFF-BBD5-EB10-1AB33BC84B55";
setAttr ".ihi" 0;
setAttr ".ro" yes;
relationship "link" ":lightLinker1" "lambert2SG.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" "lambert2SG.message" ":defaultLightSet.message";
connectAttr "lambert2.oc" "lambert2SG.ss";
connectAttr "lambert2SG.msg" "materialInfo1.sg";
connectAttr "lambert2SG.msg" "hyperShadePrimaryNodeEditorSavedTabsInfo.tgi[0].ni[1].dn"
connectAttr "lambert2SG.pa" ":renderPartition.st" -na;
createNode lambert -n "lambert2";
rename -uid "ED4B3561-4E45-A6A5-CBEB-578310794917";
connectAttr "lambert2.oc" "lambert2SG.ss";
connectAttr "lambert2.msg" "materialInfo1.m";
connectAttr "lambert2.msg" "hyperShadePrimaryNodeEditorSavedTabsInfo.tgi[0].ni[0].dn"
connectAttr "lambert2.msg" ":defaultShaderList1.s" -na;
差分はこの辺。
connectAttr "lambert2SG.pa" ":renderPartition.st" -na;
connectAttr "lambert2SG.msg" "materialInfo1.sg";
connectAttr "lambert2.msg" "materialInfo1.m";
materialInfoか?
とりあえず雑に作ってコネクトしてみようかと
node = cmds.createNode("materialInfo")
cmds.connectAttr("lambert3.msg",node + ".m")
cmds.connectAttr("lambertrASG.msg",node + ".sg")
この状態で新規オブジェクトにアサイン・・・
できなーい!
// Warning: line 1: Node 'pCubeShape1.instObjGroups[0]': cannot make assignment to 'lambertrASG' shader. //
// Error: line 1: Connection not made: 'pCubeShape1.instObjGroups[0]' -> 'lambertrASG.dagSetMembers[-1]'. Source node will not allow the connection. //
// Error: line 1: Error while parsing arguments. //
cmds.connectAttr("lambertrASG.pa",":renderPartition.st",na =True,f=True)
oh,green world again....
と思いきやアサインできてますね。
save & open で正常になりました。
駄目だったシーンで同じく実行してみると。。。
アサイン変えられました!
で、元々のエラーのexport slectionできない問題は・・・
クリア!
結局のところ
cmds.connectAttr("lambertrASG.pa",":renderPartition.st",na =True,f=True)
この部分のコネクションが外れてしまってたのが原因で、何で外れたんだろうなぁ
雑にチェックするならばー
SGs = cmds.ls(type = "shadingEngine")
connectedSGs = cmds.listConnections("renderPartition.st", s =True, d =False)
unConnectSGs = list(set(SGs) - set(connectedSGs))
print(unConnectSGs)
#['lambertrASG']
今年の不具合はこれで終わりになるといいな!