У меня есть объект сцены 3DS Max, к которому я применил модификатор обтекания кожей.Я хочу преобразовать его в модификатор скина, а затем удалить оболочку скина непосредственно под ним в стеке.
Так что мне следует просто удалить модификатор через его правильный номер стека?Черт, у меня даже есть строка печати, которая идентифицирует его номер в стеке.
Я прошу прощения за взад и вперед между python и EvalMAXScript, я не кодер, просто кто-то пытается понять.
# setup =======================================================
import MaxPlus as mp
from pymxs import runtime as rt
mySel = rt.selection
max = mp.Core.EvalMAXScript
box = mp.Factory.CreateGeomObject(mp.ClassIds.Box)
sphere = mp.Factory.CreateGeomObject(mp.ClassIds.Sphere)
cyl = mp.Factory.CreateGeomObject(mp.ClassIds.Cylinder)
node = MaxPlus.Factory.CreateNode
node(box)
node(sphere)
node(cyl)
#setup =======================================================
max("select #($Sphere001, $Cylinder001)")
# =============================================
rt.addModifier (mySel[0], rt.Skin())
max("select $Sphere001")
max("skinOps.addBone $.modifiers[#Skin] $Cylinder001 1")
# =============================================
max("select $Box001")
rt.addModifier (mySel[0], rt.Skin_Wrap())
max("append $" + str(mySel[0].name) +".modifiers[#Skin_Wrap].meshList $Sphere001")
mySel[0].modifiers[0].meshDeformOps.convertToSkin (False)
print mySel[0].modifiers[0].name + " <----- ZERO"
print mySel[0].modifiers[1].name + " <----- ONE!!!!"
#print mySel[0].modifiers[2].name #<----- will say IndexError: Index out of range <--- This makes sense
rt.deleteModifier (mySel[0], 2) #<------------------ I want to delete the SKIN WRAP modifier SO WHY 2???
Но тогда почему удаление модификатора обтекания требует "2" в аргументе deleteModifer ??
При выводе имени модификатора, 3Ds Max отличается от нумерации при удалении?
Это как-то связано с тем, что подсчет / итерации Python начинаются с0, а не 1?
Может ли кто-нибудь указать мне / или кому-либо, кто хотел бы научиться написанию скриптов в max с python, на документ, где я мог бы получить информацию о чем-то подобном?Потому что я представляю, что что-то такое же общее, как введение правильного номера индекса, должно быть где-то в какой-то базовой документации (которую я, очевидно, не смог найти).
Простите за страх.Я часами пытался понять, почему это не сработало, пока случайно не наткнулся на указание номера индекса вне диапазона.
Спасибо.