|
|||||||
Zurzeit aktive Benutzer im Chat: 0
|
|
![]() |
Mit 10 Benutzern waren die meisten Benutzer an einem Tag im Chat (14.03.2008). Zurzeit ist kein Benutzer im Chat. |
|
|||||||||||||||
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 | ||
|
Benutzer
|
Hi,
Ich habe in meiner Szene 105 Objekte die einen Material Modifier besitzen. Auf der Oberfläche lautet der einzig verfügbare Parameter dieses Modifiers Material-ID. In der maxscript.chm wird diese Eigenschaft als materialid beschrieben, die den alias Material_ID besitzt. Ich vermute, dass bei Autodesk gerade alle Programmierer an einer vierten Schreibweise arbeiten. Ich habe folgende Scripte probiert: Code:
for i in selection where hasProperty i "Material-ID" do i.Material-ID = 2 for i in selection where hasProperty i "materialid" do i.materialid = 2 for i in selection where hasProperty i "Material_ID" do i.Material_ID = 2 |
||
|
|
|
| Sponsored links | |
|
|
|
|
|
#2 | ||
|
Moderator
Registriert seit: 27.04.2005
Ort: Berlin
Alter: 33
Beiträge: 9.671
Software: Wings 3D Blog-Einträge: 29
|
Sicher, dass es am "materialID" ängt und nicht an der doppelten Verwendung von i als Zähler und i als objekct?
Müsste das zweite i nicht selection[i] sein? Was für eien fehlermelduung bekommst du?
__________________
Link gesperrt |
||
|
|
|
|
|
#3 | ||
|
erfahrener Benutzer
Registriert seit: 11.11.2006
Ort: Berlin
Beiträge: 731
Software: 3ds Max 2008 Blog-Einträge: 2
|
Ein ähnliches Problem hatte ich schon einmal mit
Code:
for i in selection where hasProperty i "Material" do print i OK Und ich weiß bis heute noch nicht, warum das so ist. edit: @scrimski: selection ohne [i] ist korrekt.
__________________
Jeder Hirte hat zwei Gründe, gut für seine Schäfchen zu sorgen: 1. er will sie scheren, 2. er will sie fressen. Geändert von visualp (22.03.2008 um 15:50 Uhr). |
||
|
|
|
|
|
#4 | ||
|
Benutzer
|
Ich bekomme die Fehlermeldung "OK".
Beim Kontrollieren der Szene zeigt sich aber das er mich belogen hat. Und eigentlich müsste es heissen: for i:=0 to seclection.count-1 do begin...end; oder auch for (i = 0, i >= selection.count; i++) {...} maxscript erscheint mir da immer noch etwas seltsam. Dass i im Zweiten Teil nicht mehr Zeiger, sondern gezeigtes Objekt ist soll wohl eine Vereinfachung darstellen. Ähnlich wie i++ eigentlich i=i+1 ist, wobei ich die Pascal Variante mit inc(i) besser finde. i=i+1 will man vermeiden, weil es aus mathematischer Sicht Schwachsinn ist. |
||
|
|
|
|
|
#5 | ||
|
Benutzer
|
Ich bekomme die Fehlermeldung "OK".
Beim Kontrollieren der Szene zeigt sich aber das er mich belogen hat. Und eigentlich müsste es heissen: for i:=0 to seclection.count-1 do begin...end; oder auch for (i = 0, i >= selection.count; i++) {...} maxscript erscheint mir da immer noch etwas seltsam. Dass i im Zweiten Teil nicht mehr Zeiger, sondern gezeigtes Objekt ist soll wohl eine Vereinfachung darstellen. Ähnlich wie i++ eigentlich i=i+1 ist, wobei ich die Pascal Variante mit inc(i) besser finde. i=i+1 will man vermeiden, weil es aus mathematischer Sicht Schwachsinn ist. |
||
|
|
|
|
|
#6 | ||
|
erfahrener Benutzer
Registriert seit: 11.11.2006
Ort: Berlin
Beiträge: 731
Software: 3ds Max 2008 Blog-Einträge: 2
|
Richtig. Ok erhalte ich auch immer.
Wahrscheinlich hat das Objekt nicht die Eigenschaft Material_ID, sondern ein Subobjekt oder eine Klasse darüber. Bei ShowProperties $Sphere01 erhält man z.B. keine Materialbezogene Eigenschaft. Und ob es nun for i in 1 to selection.count oder for i in selection ist, relativ egal. Beide Male wird ein Loop durch das Selectionarray gemacht.
__________________
Jeder Hirte hat zwei Gründe, gut für seine Schäfchen zu sorgen: 1. er will sie scheren, 2. er will sie fressen. Geändert von visualp (22.03.2008 um 22:29 Uhr). Grund: Es heißt $Sphere01 nicht $.Sphere.... |
||
|
|
|
|
|
#7 | ||
|
Benutzer
|
Code:
Beide Male wird ein Loop durch das Selectionarray gemacht. Trotzdem komme ich im Momemt nicht weiter. Ich werde auf gar keinen Fall 105 mal ein Objekt mit der Maus auswählen und den im Material Modifier den ID ändern. Letzten Endes suche ich einen automatisierten Zugriff, um eine Animation aufzubauen, ich müsste das Ganze also zu jedem Keyframe wiederholen. Die Objekte werden, nebenbei erwähnt unterschiedlich animiert. |
||
|
|
|
|
|
#8 | |||
|
Moderator
Registriert seit: 27.04.2005
Ort: Berlin
Alter: 33
Beiträge: 9.671
Software: Wings 3D Blog-Einträge: 29
|
Zitat:
Man muss die Modifier extra in einem Array sammeln und da über den Modifier-Namen zugreifen, in etwa so Code:
$.modifiers[i].materialid probier mal Code:
selection[i].modifiers==(matMod:Material())
__________________
Link gesperrt Geändert von scrimski (22.03.2008 um 22:46 Uhr). |
|||
|
|
|
| Sponsored links | |
|
|
|
|
|
#9 | ||
|
erfahrener Benutzer
Registriert seit: 11.11.2006
Ort: Berlin
Beiträge: 731
Software: 3ds Max 2008 Blog-Einträge: 2
|
Achso, es geht um den Material ID Modifier. Dann bist do falsch herangegangen.
Code:
for i in selection where hasProperty i "Material-ID" do i.Material-ID = 2 Das heißt alles in allem müsste es so heißen: Code:
for i in selection do i.Materialmodifier.materialid = 2 Code:
for i in selection do (addModifier i (materialModifier materialID:2 name:"IchBinEinMaterialModifier"))
__________________
Jeder Hirte hat zwei Gründe, gut für seine Schäfchen zu sorgen: 1. er will sie scheren, 2. er will sie fressen. |
||
|
|
|
|
|
#10 | ||
|
Benutzer
|
Nein. Aber!
Jetzt habe ich es dank eurer Antworten verstanden. Richtig ist: Code:
for i in selection do i.MaterialHirkseinMatMod.materialid = 2 Hernach kann man dann eben diesen Bezeichner verwenden, der KEINE Namenskollision auslöst. Frohe Ostern und einen guten Rutsch und überhaupt! |
||
|
|
|
| Sponsored links | |
|
|
|
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Material-ID Bug? | scrimski | 3ds Max - Allgemeines | 9 | 15.02.2008 19:00 |
| PSD to Material | olli96 | 3ds Max - Allgemeines | 3 | 06.04.2007 22:39 |
| Eis Material | VUSschneider | 3ds Max - Materialien | 6 | 17.11.2006 13:33 |
| Durcheinander mit Material-ID,Material-ID Kanal und Mapping Kanal | Ishildur | 3ds Max - Einsteiger | 10 | 06.10.2006 10:29 |
| Material ID`s ?? | lunaticmagic | 3ds Max - Einsteiger | 2 | 29.04.2006 12:15 |