2016-06-10 6 views
0

Ich versuche, eine Cache-Datei in Maya mit einem Python-Skript zu laden. Ich habe den Code snipped hier gepostet: importing multiple cache files in Maya using PythonLaden Sie eine Cache-Datei in Maya mit Python und erstellen Sie die gleiche Renderausgabe

Mein Code sieht wie folgt aus:

pm.mel.doImportCacheFile(myCachePath, "", [selectedObject], list()) 

myCachePath: Speichert den Pfad zur XML-Datei selectedObject: z.B. flameShepe1 (stellt den Flüssigkeitsbehälter dar)

Zuerst dachte ich, dass es endlich funktioniert hat, aber jedes Mal, wenn ich den Wiedergabeknopf drücke und ein Bild wieder rendere, bekomme ich nicht die gleiche Ausgabe. Die Simulation hat die gleiche Form, aber die Farben sind nicht gleich.

Wenn ich Fluid nCache -> Attache Existing verwende ... funktioniert alles.

Wie ist das möglich?

Antwort

1

den Cache-Befehl anhängen Lesen, Anbringen Cache Flüssigkeit verschieden ist, versuchen:

pm.mel.doImportFluidCacheFile(pathCache, "xmlcache", ['fluid1'], []) 

Hoffe, es wird es tun!

--- EDIT ---

Beachten Sie, dass Sie ohne pymel Formatierung eine Zeichenfolge wie dies tun könnte:

lineToEval = 'doImportFluidCacheFile("{0}", "xmlcache", {{"{1}"}}, {{}});'.format(pathCache, fluidsSel[0]) 
mel.eval(lineToEval) 
+0

Vielen Dank für Ihre Hilfe. Das war genau das, wonach ich suchte. Es gibt eine letzte Sache, mit der ich truggeling bin. Ich kann die XML-Datei auf "flame" oder "flameShape" anwenden. Beide Werke. In Ihrer Antwort empfahlen Sie FlüssigkeitenSel [0]. Für mich sieht das wie ein Array aus. Wie kann ich das bekommen? Vielen Dank! – PatrickWe

+0

In meinem zweiten Beispiel formatiere ich den Mel-Befehl mit Python. Array in Mel sind: var = {"eins", "zwei", "drei"}. Wenn Sie mehrere Fluide in einem Array verwenden, können Sie den Namen des Inserts mehrfach eingeben ",". Join (fluidsSel). In meinem Beispiel fluidSel [0] = 'fluid1' – DrWeeny