Kopieren oder Duplizieren

  • Kopieren oder Duplizieren

    Guten Morgen.

    sitz' grad hier und schreib was nieder.
    Dabei fällt mir auf, das ich es einfach immer so hingenommen habe, als gegeben, ohne darüber nachzudenken.

    Was ist denn, vor Allem im Bezug auf den Unreal Editor, der Unterschied zwischen ein Objekt kopieren(copy) und ein Objekt duplizieren(duplicate) :?:

    Hat das was mit dem Zwischenspeicher zu tun?
    Copy hab ich eine Beschreibung in Wikipedia gefunden, nur ist der Begriff duplizieren bischen schwammig und nicht näher auf das Programm bezogen.

    Vermutlich nur was banales?
    Schönes Wochenende,
    Kai
  • Ich glaube das ist das selbe .... Es gibt einen Unterschied zwischen einer Kopie und einer Instanz um das mal in einem Beispiel aufzuzeigen:

    Eine Kopie ist wenn du ein Blatt Papier in einen Kopier legst und auf Copy klickst. !
    Instanzieren wäre: Wenn du das Blatt in den Kopier legst und auf Instanzieren klickst. Dabei ist auf beiden Blätter das selbe zu sehen. Wenn du nun auf dem einen Blatt etwas änderst wird diese Änderung bei allen Objekten geändert. Im Prinzip handelt es sich um einen Vater/ Kind Objekt wo aber jeder der Papa ist und jeder das Kind. Es gibt also kein Oberobjekt!!!!

    So nun kannst du dir deine Frage mit dem Zwischenspeicher vielleicht schon selber erklären:
    Wird ein Objekt kopiert dann gibt es dafür zwei Speicherplätze, wird es noch öfter kopiert gibt es entsprechend mehr Speicher Plätze für das ein und das selbe Objekt.
    Deswegen sollte man in der UE ein Wandstück auch nicht 100 mal Importieren weil dann ist es eine Kopie. Wenn du das Objekt aber einmal kopierst und es dann aus dem Projekt Ordner verwendest dann ist es eine Instanz.

    Deswegn spart man mit Instanzen Performance.
  • Aha!!

    Sleepy schrieb:

    Ich glaube...
    .
    .
    .
    Deswegen sollte man in der UE ein Wandstück auch nicht 100 mal Importieren weil dann ist es eine Kopie. Wenn du das Objekt aber einmal kopierst und es dann aus dem Projekt Ordner verwendest dann ist es eine Instanz.

    Deswegn spart man mit Instanzen Performance.
    Das versteh ich grad noch nicht so ganz -

    Importieren
    , damit meinst Du Strg+V(z.B.)? Also Einfügen aus dem Zwischenspeicher, vorher mit Strg+C kopiert

    Projekt Ordner - meinst Du damit den World Outliner? oder links unten den Content Browser? Oder Duplizieren?
  • Ja genau der Content Browser Sorry :) Wenn du ein Objekt aus dem Content Browser in deine Szene ziehst dann ist es eine Instanz. Wenn du etwas im 3D Programm änderst und dein Modell in einem Projekt Ordner überschreibst so werden alle Objekte in deiner Szene die du aus dem Content Browser ins Projekt gezogen hast automatisch ersetzt. (Da es Instanzen sind)
    Wenn du den Importer nutzt um das Modell zu importieren dann gibt es sowohl die neue als auch die alte Version deines Modells. (Nur hast eine Kopie erstellt)

    Wenn du dein Level komplett im 3D Programm baust und ein bestimmtest Wandteil mehrmals verwendest hast, so wird dieses Wandteil beim Import Mehrmals als Kopie importiert. Auch wenn es das selbe Wandteil mehrmals gibt ist es somit eine Kopie und keine Instanz.
    Deswegen sollte man sein Level IMMER aus dem Content Broweser zusammenbauen und niemals das komplette Level importieren. Dies sind die Performance Unterschiede.

    Die Stingray Engine hat einen Workflow entwickelt bei dem Maya und Max Hand in Hand mit der Engine zustammen arbeiten. Man Kann eine Instanz vom 3D Programm in die Engine importieren. Ändert man dann etwas am Modell in Maya so wird die Instanz in der Engine geändert.
    Das Geile dabei ist: Maya und Max sagt der Engine ob es sich bei einem Projekt um eine Instanz oder um eine Kopie handelt. Ändest du also eine Wand in Maya so werden in der Stingray Automatisch alle Wände geändert. Du kannst dein komplettes Level in Maya oder Max bauen und Engine + 3D Programm sind zu 100% kompatibel.Könnte mir vorstellen das es eine Ähnliche Schnittstelle auch für die UE geben könnte sofern Autodesk diese Schnittstelle öffenlich zugänglich macht.
    Diese Technik ist so eine gute Idee das sie sogar einen eigenen Namen bekommen hat. Man nennt sich Art to Engine Workflow.

  • Du machst mich fertig ;)

    Nachdem ich jetzt eine halbe Stunde wimmernd in Fötusstellung unter dem Schreibtisch gelegen habe :laughing:
    hab ich mir die Ausführung nochmal durchgelesen. Bin ich d'rauf gekommen?

    Ich vermutete, das ähnlich wie im 3DProgramm auch im UE4 das Arbeiten mit Instanzen Möglich wäre.
    Find ich aber im Moment noch nicht, wenn es das gibt.
    Klar ist mir jetzt, Bearbeite ich das Original aus dem UE-Content Browser mit einem 3DProgramm, wird die Veränderung bei allen aus dem Content Brower entnommenen Objekten (z.B. ein Stuhl) bei neuladen der Szene sichtbar.

    Gleiches passiert auch bei duplizierten Stühlen?! (duplizieren heisst dann nichts anderes, als das der UE4 mir den Arbeitsvorgang im Content Browser: Stuhl suchen, per dragndrop in die Map ziehen, einfach erspart)

    Die kopierten Stühlen aber, bleiben nichts anderes als Kopien der alten Version der Stühle.

    Ich hab das bisher so verstanden, das Instanzen die Informationen für Kollision, Abmessungen, Texturen, vom Original aus der "Datenbank" nehmen und bei Kopien für jedes Objekt erneut Informationen anlegen, wie auch abrufen muss.
    Also bei Instanz oder Duplikat versteh ich das vereinfacht so, dass dort eigentlich nur ein Kasten steht, der dem Programm sagt, ich bin der Stuhl-gelb03 aus Zeile 440.
    Bei Kopie halt Stuhl gelb03a - Zeile 441, Stuhl gelb03b - Zeile 442, Stuhl gelb03c - Zeile 443 usw.

    Lieg ich da falsch, oder hab ich das jetzt? ?(
  • Ja genau !
    Bei einer Instanz braucht das Objekt vereinfacht gesagt nur einen Parkplatz (Speicherstelle) Wenn du jedes Objekt kopierst kannst du irgend wann ein ganzes Parkhaus befüllen. Bei einer Instanz werden aber nicht nur objekte vervielfacht sondern auch parameter wie Kolliision, Abmessung, Textur vergabe usw gespeichert werden.

    Oder vereinfacht gesagt: Was du als Instanz verwendest ist egal du kannst im Prinzip jede Information als Instanz verwenden.

    • Ziehst du dein Objekt aus dem Content Browser ist es eine Instanz
    • Kopierst du dein Objekt mit strg + D & strg + C dann ist es eine Kopie
    • Was gespeichert wird und was du als Instanz definierst ist egal.
  • Mr.NiceKai schrieb:

    Du ma...neuladen der Szene sichtbar.

    Gleiches passiert auch bei duplizierten Stühlen?! (duplizieren heisst dann nichts anderes, als das der UE4 mir den Arbeitsvorgang im Content Browser: Stuhl suchen, per dragndrop in die Map ziehen, einfach erspart)

    Die kopiert...
    Also auch duplizieren (Strg+W) ist ein neues Objekt, keine Instanz aus dem Content Browser und frißt mir Performance?

    Was ist Strg+D? Das kenn ich gar nicht. Da macht der Editor bei mir irgendwie gar nichts!
    Oder bezog sich das auf strg+c;srtg+v (kopieren, einfügen<-vertippt?)
  • Da ich nie Kopiere war der Shortcut strg+C einfach mal geraten im Prinzip meine ich aber das Kopieren via Shortcut egal wie die Kopierst. Den eine normale Kopie ist niemals eine Instanz.



    Mr.NiceKai schrieb:

    Also auch duplizieren (Strg+W) ist ein neues Objekt, keine Instanz aus dem Content Browser und frißt mir Performance?
    Ob beim Duplizieren ne Instanz von der Instanz erstellt wird kann ich dir gar nicht sagen musst du testen. Alles frißt performance eine instanz frißt nur deutlich weniger als wenn du Objekte kopierst oder öffters importierst.
  • Danke schon mal für die Mühe Deiner Aufklärung in der Hinsicht.

    So gaaanz einleuchtend ist das noch nicht für mich.
    Aber bis ich da ein bischen besseren Einblick in das Programm habe, werde ich den Rat befolgen und die Objekte immer aus dem content browser nehmen, statt einfach schnell zu kopieren.

    Schönes Wochenende Dir (und dem Rest der Meute)
  • Hi,

    wenn man mit rechts auf seine Objekte klickst findet man den Reference Viewer. Vielleicht hilft es mal einen Überblick zu bekommen.



    Ob man ein Objekt kopiert, dupliziert oder aus dem Content browser zieht macht wohl keinen Unterschied denke ich.
    Es wird jedes mal ein neues Game Objekt erzeugt.

    Das Instancing findet wohl eher auf der Ebene der einzelnen Komponenten eines Game Objektes statt. Das heißt zwei Objekte können die gleiche Mesh oder Material Instance haben.
    Man kann ja bei jedem Objekt in den Details auch das Mesh auswählen.
    Wenn man eine Box und eine Kugel importiert kann man bei beiden das Mesh tauschen, das heißt die Box bekommt das Kugelmesh und umgekehrt.

    Gruss
    DarkFaces

    Edit: Das duplizieren eines Objekts im Content browser erzeugt ein neues Objekt, wenn man nur bei einem das Mesh reimportiert hat man zwei unterschiedliche Objekte.
  • Vielleicht kann man auch so Unterscheiden

    Kopieren man <dupliziert ein objekt an einen anderen Ort>

    Duplizieren der Mesh entsteht an der gleichen Stelle

    Als Beispiel

    Du wirst jetzt geklont einmal wird die Dna genommen und in einem anderem labor entsteht dann eine Kopie von dir

    Für Duplizieren du stehst unter einem Duplizierautomaten und gerade neben dir ensteht eine Duplikation von dir

    Schlussendlich ist es fast das gleiche
    vlt hat dir mein absurdes beispiel geholfen
    Was schiefgehen kann wird schiefgehen.
Unreal®, Unreal Engine, the circle-U logo and the Powered by Unreal Engine logo are trademarks or registered trademarks of Epic Games, Inc. in the United States and elsewhere.