Duplicate IDs were found while reading the file see ...

  • Sogenannte Duplicate ID-Fehlermeldungen treten in der Regel nur bei Genesis und/oder Zubehör für Genesis auf, das in einem bestimmten Zeitraum in DAZ Studio Version 4.5 produziert wurde. Damals wurden für einen Zeitraum den Teilen von Dateien, aus denen die Produkte bestehen, keine eindeutigen IDs zugeordnet, so daß DAZ Studio hier häufiger in einer Datei mehrere IDs mit der gleichen Kennung findet und entsprechend meckert.


    Grundsätzlich ist das kein Problem. Außer daß die Fehlermeldung nervig ist, funktionieren die Dateien einwandfrei. Hat man aber mehrere solcher fehlerhaften Dateien, kann es schnell störend werden, bei jedem Laden diese Fehlermeldung zu erhalten.
    Es ist ein wenig Handarbeit gefordert.


    Die Fehlerquelle finden


    Zuerst einmal muss klar sein, welche Datei in Deinem System den Fehler verursacht. Lade dazu das Objekt mit der Fehlermeldung in Deine DAZ Studio-Szene. Optimal ist es, vorher einen Neustart des Programms zu machen, dann ist das Logfile nicht so lang und man hat es leichter mit der Fehlersuche.



    Bei mir enthält das Cherry Blossom Hair einen Fehler, den DAZ mir beim Laden in die Szene mit der bekannten Fehlermeldung anzeigt.



    Übergehe ich die Fehlermeldung mit OK, wird das Haar fertig geladen und funktioniert tadellos.
    Nun werfe ich aber trotzdem einen Blick ins Logfile. Du findest es oben im Menü unter (Klicken um eine Quelle anzugeben)

    Zitat

    Help > Troubleshooting > View Log File

    Gehe hier nun ganz an das Ende der Textdatei, die sich öffnet und schaue Dir die Einträge an. Es sollte sich dort ein Eintrag finden, der zu Deinem geladenen Objekt passt. Bei mir ist das das Cherry Blossom Hair.



    • Loaded file: Genesis.duf -> Hier habe ich die Genesis-Figur in die Szene geladen.
    • Duplicate id "ValCherryBHGen" found in file "/data/Michelle/Hair/Cherry Blossom Hair/ValCherryBHGen.dsf" -> Hier hat DAZ Studio die Fehlermeldung ausgeworfen und mir auch gleich den Dateipfad aufgeschrieben zu der fehlerhaften Datei.
    • File loaded in 1 min 16.5 sec. -> Die Haardatei wurde in dieser Zeit geladen.
    • Loaded file: 01 Cherry Blossom Hair.dsf -> Die Datei wurde vollständig in die Szene geladen.

    Jetzt weiß ich zumindest schon einmal, wo der Fehler zu suchen ist.


    Automatische Korrektur per Script


    Unter http://www.daz3d.com/forums/di…x-duplicate-ids-script/p1 gibt es ein Script, das dabei helfen soll, Produkte von dieser Fehlermeldung zu befreien. Dazu wird die Datei heruntergeladen und im Content Ordner, z.B. unter "Scripts" entpackt. Das könnte dann so aussehen:



    Wichtig ist, daß sich das Script innerhalb des Content Ordners befindet, damit es später über DAZ Studio aufgerufen werden kann.



    Ich erstelle mir nun eine "Custom Action", eine eigene Funktion. Gehe dazu auf den Eintrag in Deinem Content Ordner, wähle die rechte Maustaste an und suche aus dem Menü den Eintrag "Create Custom Action".



    Es erscheint eine Meldung, daß eine neue Custom Action in Deinem Menü unter "Scripts" eingefügt wurde.



    Und richtig, oben in Deinem Menü ist ein neuer Menüpunkt "Scripts" aufgetaucht und in diesem befindet sich der Eintrag als neuer Untermenüpunkt.



    Damit diese Einstellung dauerhaft in DAZ Studio verankert wird, musst Du Deinen Workspace einmal speichern unter Window > Workspace > Save Layout.


    Wechsele nun im Content Ordner zurück zu dem Ordner mit Deiner fehlerhaften Datei. Wenn Du dort angekommen bist, benutze das Script aus Deinem Menü.



    Es öffnet sich ein Fenster, aus dem Du die fehlerhafte Datei auswählst, bei mir ist es das Preset mit dem Haar. Bestätige den Prozess mit Öffnen, dann rechnet DAZ Studio einen kleinen Augenblick. Lädst Du anschließend Deine Datei erneut in die Szene, wird das Teil nun fehlerfrei geladen.


    Das ist ein sehr einfacher und rascher Prozess.


    Manuelle Problembehebung


    Man kann natürlich auch hingehen und die entsprechende Datei von Hand korrigieren. Dazu benötigst Du ein wenig Ahnung davon, was Du wo in Deinem Content-Ordner findest und auch etwas technisches Verständnis. Außerdem wird ein Text-Editor wie z.B. Notepad oder der Windows-interne Editor benötigt.


    Ich wechsele nun von DAZ Studio in meinen Windows-Explorer und suche auf meiner Festplatte die Datei, die im Log-File als fehlerhaft eingetragen ist.



    Zur Sicherheit lege ich mir zunächst eine Sicherheitskopie der Datei an.



    Anschließend öffne ich die Original-Datei in einem Text-Editor. Ich verwende dazu Notepad. Vor mir liegt nun eine Datei mit jeder Menge Zahlen-Kolonnen. Uns interessieren hier aber nur die Zeilen mit dem Eintrag "id".



    Über die Suchfunktion des Editors suche ich mir nun alle "id"-Zeilen in der Datei heraus.



    Das sind schonmal eine ganze Menge und die meisten davon kannst Du ignorieren. Wichtig zu wissen ist aber, dass eine ID eine eindeutige Zuordnung zu etwas ist und im Falle von DAZ Studio immer einzigartig sein sollte. In meiner Datei sehe ich aber (abgesehen von den x,y,z-Einträgen, die reine Koordinaten sind und nicht beachtet werden sollten) einen Eintrag, der zweimal auftaucht: "id" : "ValCherryBHGen",


    Und hier siehst Du das Problem meiner Datei. DAZ Studio findet in dieser Datei zwei gleiche IDs und wirft daher die Fehlermeldung aus. Rein logisch sollte sich dieses Problem also beheben lassen, wenn ich einen der Einträge verändere.


    Aber Vorsicht, einfach was anderes hinschreiben funktioniert so einfach nicht. Ich versuche, hier möglichst wenig zu verändern und setze hinter die ID einfach ein _0, also in etwa so:



    Doch wenn ich die Datei so speichere und das Haar erneut in meine Szene laden will, wird der Befehl zwar ausgeführt, aber mein Haar ist nicht zu sehen. Das liegt daran, daß dieser Eintrag zur Geometry Library, also zum Grundgerüst des Modells gehört und Veränderungen hier sofort dazu führen, daß das Modell nicht länger funktioniert. Ich erkenne das an der Zeile darüber, in der geometry_library steht. Also hier alles wieder auf die Originalinhalte zurückgesetzt und den anderen ID-Eintrag angesehen.



    Über diesem Eintrag steht der Begriff Node, den wir schon aus dem Surface Pane kennen. Es ist also zu vermuten, daß hier zusätzliche Informationen über das Modell "eingestöpselt" werden und nicht direkt die Geometrie betroffen ist.


    Führe ich hier nochmal den Schritt aus, die ID um das Kürzel _0 zu erweitern



    und speichere die Datei anschließend ab, wird mir mein Haar künftig ohne Fehlermeldungen geladen.



    Die kopierte Originaldatei meines Haares wird nun nicht länger benötigt, da alles fehlerfrei funktioniert und kann somit entfernt werden.