Projektfragen Game / Anwendung

    • Projektfragen Game / Anwendung

      Hallo zusammen, ich habe ein paar Fragen zu einem Projekt und finde da keine konkreten Antworten.
      Ich würde gerne eine Mischung zwischen Game und normaler Anwendung erstellen, das ganze im Bereich Automobiltechnik. Umsetzen würde ich das gerne mit der Unreal Engine.

      Nun habe ich da ein paar technische Fragen zur Modellierung und Vorgehen, da stehe ich gerade auf dem Schlauch.
      Ich habe nun ein paar Modelle mit Maya erstellt und gerendert. Allerdings sind die ja im subdivided Modus erstellt, welches man ja in Game Engines ja nicht nutzt? Ich schätze mal das mein Modell da völlig unbrauchbar ist. Oder habe ich einen falschen Ansatz? Oder ist es mittlerweile egal?

      Ein weiteres Problem was ich sehe sind die einzelnen Komponenten, z.B. ein Blechteil eines Fahrzeuges. Für ein Renderbild reicht ja nur die Außenhülle, für mein Projekt möchte ich aber das gesamte Bauteil modellieren, d.h. ein Blech was z.B. in echt 0.8mm dick ist. Das wird ja sehr komplex und auch bestimmt in manchen Bereichen gar nicht richtig darstellbar? Wie geht man da am besten vor?
    • 1-4-3-2 schrieb:

      Ich habe nun ein paar Modelle mit Maya erstellt und gerendert. Allerdings sind die ja im subdivided Modus erstellt, welches man ja in Game Engines ja nicht nutzt? Ich schätze mal das mein Modell da völlig unbrauchbar ist. Oder habe ich einen falschen Ansatz? Oder ist es mittlerweile egal?
      Ohne zu wissen, wie hoch der Polycount deiner Modelle ist wird es schwer zusagen ob dein Polycount zu hoch ist!
      Der gesamte Polycount eines Spiels kann mehre Millarden Polygone groß sein. Was wichtig ist, ist die Anzahl der Polygone die im schlechtesten Fall auf einmal gesehen werden können. Die Summer der Polygone pro Frame.
      Wie viele Polygone man nun tatsächlich pro Frame anzeigen lassen kann, hängt von vielen Faktoren ab wie Beispielsweise deine Shader, deine Schatten Berechnungen uvm.
      Ich gehe davon aus das man so ca 2 - 5 Millionen Polygone in einem Frame anzeigen lassen ohne das es laggen tut.

      Man kann hier viele Trinks verwenden durch die man bessere Ergebnisse erzielen kann. Beispielsweise durch LODs: betrachtest du ein Fahrzeug mit insgesamt 10 Millionen Polygone so wird dieses lower angezeigt. VIelleicht fehlt zb der Motorblock der alleine schon 2 Millionen Polygone hat. Wenn man nun Richtung Motorblock zoomt, werden zb die Reifen, und die Amaturen ausgeblendet die insgesamt 4 Millionen Polygone haben und dafür wird der Motorblock eingeblendet der 2 Millionen Polygone hat.
      Aus der Entfernung würde man also Details nicht so genau anzeigen als wenn man direkt davor steht.

      Deine Meshes sind auf jeden Fall nicht unbrauchbar den du könntest von deinem Modell eine Retopo machen wo du den Polycount auf die beliebige Polycount Zahl nach unten drückst. Grund Voraussetzung dafür ist das dein Modell verknüftig Modelliert wurde und über eine verknüftige Topologie verfügt. Aber im Grunde könntest du so bliebige LODS erstellen die dann aus der nähe betrachtet einen sehr hohen Polycount haben.

      Ich hab schon öffter die Erfahrung gemacht das selbst Modelle von den Herstellern komplett unbrauchbar waren um sie in der Unreal zu werden. Darauf würde ich jedenfalls nichts wetten.
    • Hi, Zündreihenfolge,

      Wenn du Modelle in Maya erstellst, solltest du darauf achten, dass dein Mesh nicht aus zuvielen Polygonen/Triangles besteht. Du kannst mittels dubdivide ja festlegen, wie detailliert das Mesh sein soll. (einfach weniger subdivide steps)
      Unreal kann schon einige Millionen Tris Realtime Rendern, aber übertreiben darfst du es trotzdem nicht. Du musst dich damit abfinden, einige Mesh-Details durch Materialien/Texturen auf dein Objekt zu bringen.
      Für die Komponenten gibt es verschiedene Ansätze. Du kannst zum Beispiel LODs erstellen. Bedeutet, du erstellst dein Objekt einmal einzeln komplett (mit 0.8mm Wandstärke), und dann erstellst du ein Objekt mit weniger Details (nur außenhülle) für die eingebaute Ansicht im Fahrzeug. Das ist natürlich mehr Produktionsaufwand, aber es lohnt sich.


      Ich empfehle dir weiterhin folgenden Vortrag, wenn du mit RealTime Rendering nicht so vertraut bist:
      Marktplatz-Projekt: Surveillance Camera Madness
      Snake Spiel für Android: itch.io // Jewel Snake
      Youtube: Deutsche Tutorial Serie
    • Mit konkreten Antworten ist es immer etwas schwierig wenn zu viele offene Fragen existieren.

      Generell kann man sagen, das in einer Anwendung, wo einzelne Fahrzeugmodelle betrachtet werden können, der Polycount um einiges höher sein darf als wenn das Auto z.B. in einem Rennspiel oder gar in ner Open World Umgebung verwendet werden soll.

      Ein entscheidender Faktor ist auf jeden Fall der Einsatzzweck.
      Wenn das ganze am Ende nur auf einer Firmeneigenen Workstation z.B. bei nem Messeauftritt laufen muss, dann kann man die Systemleistung ja den Anforderungen anpassen und am besten gleich mehrere dicke Ti oder gar Titan Grafikkarten reinhaun.

      Falls am Ende jedoch eine Anwendung entstehen soll, welche die Kunden auf ihrem eigenen Gerät nutzen können, sieht die Sache schonmal wesentlich anders aus und das Ganze wird ungleich komplexer z.B. mit verschiedenen Grafikeinstellungen damits auch auf schwächeren Rechnern noch läuft.

      Zwar muss man bei sowas nicht unbedingt durchgängig flüssige 60 fps erreichern, aber zu niedrige und instabile Framerate erfreuen niemanden.

      Weiterhin wäre zu klären wie hoch der Detailgrad der Modelle (nicht der Polycount, sondern ob jedes kleine Schräubchen zu sehn ist) ausfallen soll.

      Erst wenn man sich darüber im klaren ist, kann man überhaupt eine bestimmte Maximalpolygonzahl für jedes Modell festlegen.
    • Performance hängt nicht unbedingt direkt mit der Anzahl der Polygone zusammen - man kann UE4 auch mit zu vielen unsinnigen Berechnungen "OnTick" in die Knie bekommen - eigentlich viel einfacher als mit vielen Polygonen. Dann kommt es auch drauf an ob dein Licht statisch ist - wenn ja kannst du Die Beleuchtung "Baken" und selbst das komplizierteste Modell wir auf einmal mit einer Uralt Laptop Grafikkarte flüssig dargestelt.


      Subdivision ist grundsätzlich ja legitim in Maya, spricht echt nix dagegen. Beim Export als FBX solltest du aber ggf Smoothing groups verwenden da UE4 die übernimmt.


      Ich würde einfach mal in UE4 importieren und das Modell ansehen, das geht schnell.

      Wie detailliert nun eine Stoßstange sein muß hängt sehr vom Anwendungszweck ab - wenn man die Rückseite in UE4nicht seht dann braucht man sie auch nicht modellieren. Aber siehe meine Einleitung - von der Performance her sollte es kein problem sein auch wenn es noch so viele Millionen Polygone sind - Versuch die Lichter (und auch das Modell?) möglichst statisch zu halten wenn möglich und die Performance wird brummen. Sorgen musst du dir nur über die Mühe machen das alles zu modellieren.
    • Wow danke für die ganzen Antworten! Da sind schon paar gute Ideen dabei.
      @Tankbuster - hätte ich ja nicht gedacht das es jemand die Zündfolge kennt ;)

      Im Prinzip kann man sich das Projekt vorstellen wie z.B. aus anderen Games z.B. GTA, oder NFS die Scenen wie man die Fahrzeuge modifiziert. Nur mit Interaktion und wesentlich mehr Details, mehr technischen Hintergrund. Vielleicht später auch in Verbindung mit VR, allerdings muß ich da wohl die Details stark runterschrauben.
      Die Modelle sollen sehr detailreich werden, da wo eine Schraube in echt sitzt wird auch eine Schraube zu sehen sein. Ich weiß es wird eine ganz schön aufwendige Arbeit.

      Wo ich gerade bei dem Punkt bin, ich denke es ist da unsinnig eine komplette Schraube zu modellieren? Also eher einen Stift mit Kopf erstellen und den Rest per Textur regeln?

      Das mit den LOD hört sich vernünftig an, wäre ja sinnlos den Federkern des Sitz zu berechnen wenn der Betrachter außen vor dem Fahrzeug steht. Wie das alles im Detail funktioniert muss ich mir noch beibringen. :)

      Ich habe mal einfach ein Teil in UE4 importiert - Katastrophe :) naja bin auch noch am Anfang.

      Was mir gerade einfällt - wie macht ihr das mit der Skalierung? Ich habe schon vor Jahren mit CAD rum experimentiert, da ist es ja recht einfach, man gibt die bestimmten Längen an und es passt. Habe ja Objekte mit max 5 x 3 m und entsprechend das Grid in mm mit 10er Aufteilung gemacht. Klar ist alles ja frei skalierbar aber man will ja doch einen Standard da rein bekommen.

      Eine ganz andere Sache was mich beschäftigt wie sieht es eigentlich mit den Copyright aus? Werde da auch nicht schlau. Ist ein Modell eine virtuelle Kopie oder eine eigene Schöpfung?
      Ich wunder mich das es so viele Modelle diverser Hersteller gibt die verkauft werden, ich kann mir gar nicht vorstellen das bei dem Preis dann irgendwelche Lizenzen gezahlt werden.
      Zudem sieht man deutlich das die Vorlage ein schlechte Modellauto ist.
    • Skalierung - für ein 2D Spiel nicht ganz so wichtig - aber in VR wirst du davon erschlagen. In 2D auf dem Monitor vom Laptop siehst du nicht ob das Modell einfach weit weg oder zu klein ist. Auf dem Monitor merkst du es nicht wenn der Mann 18 meter statt 1,80 groß ist wenn das Auto 40 meter lang statt 4 meter lang ist. Hier vergleicht das Auge nur das Verhältnis und es passt. In VR ändert sich das schlagartig - da wirkt es komisch wenn das Auto 20 meter groß ist weil du ja wie in echt davor stehst. Glaub mir - ich habe für VR programmiert BEVOR ich ne VR Brille hatte - und ich wußte erst gar nicht was die Leute von mir wollen... XD In UE4 ist eine Unit 1cm. Das solltest du unbedingt beim Import berücksichtigen. Hier helfen auch die "Standard Assets", der hässliche Tisch, Stuhl und der dumme Roboter die mit dabei sind - stell die mal neben dein Auto und du weisst schnell ob beim Export in meter oder Centimeter gerechnet wurde... :)

      Wie gesagt - performance ist kein problem wenn das Auto und das Licht "fest stehen", also sprich du bewegst nur die Kamera drumherum. Dann machst du "build lighting", wartest ein paar Stunden (Hehe, je nachdem wie komplex die Szene ist...) und schon läft das ganze auch auf einem alten Laptop in VR flüssig. Light Baking in UE4 ist deine Wunderwaffe gegen schwachbrüstige Hardware - wenn du es gut und exzessiv einsetzt (Bei einem Auto Showcase sollte dasmachbar sein!).

      Schrauben sollte man bei einem Auto hoffentlich nur in den Türscharnieren sehen oder wenn die Motorhaube aufgeht. Wie exzessiv du da bist hängt von deinem Ehrgeiz ab und was du wie nah zeigen willst. Es gibt auch Schrauben Modelle kostenlos, Lizenz beachten beim download!


      Thema Lizenz, Copyright usw. - Wenn das Projekt nur für Freunde und Papa ist - Schwamm drüber. Wenn du das ganze für die nächste IAA machst und auf dem Messestand von Ford stehst wird Ford dir nicht den Hals umdrehen wenn auf dem geliebten Mondeo folgerichtig auch das Ford Emblem zu sehen ist. Wenn du aber das ganze auf Steam für 1,99 Euro verscheuerst ohne mit dem Autohersteller gesprochen zu haben dann kannst du dir da auch schnell Probleme einhandeln - immerhin gehören Markenzeichen ("Logo"), Markenname ("Ford") Modell ("Mustang GT") oder Design (Die typische Mustand Karosserie) der Firma und die können auch mal allergisch reagieren wenn du da einen Reibach mit deren namen und Produkten einsackst ohne die gefragt zu haben. Im Zweifel gilt immer die Faustregel "Kein Schriftliches Einverständnis (!!!) gleich gar kein Einverständnis".

      Von daher hieß bei GTA Vice City auch eine "Piaggio" im Spiel "Faggio" (Über Geschmacklosigkeit lässt sich streiten)weil die keine Lust hatten mit den herstellern lange herumzulamentieren.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von kyodai ()

    • Mir ist doch etwas eingefallen bezüglich 3D Modellierung in der Game Engine.

      Wie baut ihr z.B. Modelle auf die aus mehreren Teilen bestehen? Glaub die sauberste Art und Weise ist es in den Grundkörper einzuarbeiten, aber auch sehr aufwändig. Einfacher ist ist es einzelne Teile in einander zu schieben oder aufzusetzen.
      z.B. man baut ein Trinkgefäß mit Henkel ( sofern man es nicht innen sieht) Macht man sich da den Aufwand den Henkel einzuarbeiten oder steckt man ihn einfach an?

      Im Bereich Fahrzeuge wie baut man z.B. Türen sinnvoll in ein Modell? Wenn sie sich öffnen lassen? In der 3D Welt schweben sie ja eigentlich an der Karosserie und sind ja nicht mechanisch verbunden? Oder doch?
    • 1-4-3-2 schrieb:

      z.B. man baut ein Trinkgefäß mit Henkel ( sofern man es nicht innen sieht) Macht man sich da den Aufwand den Henkel einzuarbeiten oder steckt man ihn einfach an?
      Beides ist möglich. Du könntest auch beides mit LODs machen. Ist man weit entfernt ist der Henken einzeln sobald man näher ans Objekt kommt ist der Henkel mit dem Objekt verbunden.
      Du musst auch nicht beides an einem Stück Modelliere, mach die Tasse dann den Henkel und verbinde dann beides miteinander.

      1-4-3-2 schrieb:

      Im Bereich Fahrzeuge wie baut man z.B. Türen sinnvoll in ein Modell? Wenn sie sich öffnen lassen? In der 3D Welt schweben sie ja eigentlich an der Karosserie und sind ja nicht mechanisch verbunden? Oder doch?
      Wenn du eine Tür öffnen willst dann muss die Tür definitv ein separtes Objekt sein. Du müsstest dann den Pivot so setzen damit sich das Objekt um den Pivot drehen kann. Da kannst den Pivot zb dort hinsetzen wo sich in der Realität das Scharnier befindet.
      Bei einem sehr komplexen Modell wie zb bei GTA würde man im 3D Programm ein Rigg mit Controller bauen. Man kann dann zb in Maya durch einen Schieberegler die Türe öffnen oder auch der Tankdeckel oder die Motorhaube kann man dann durch einen Schieberegler öffnen.
      Du bist dadurch im 3D Programm sehr flexible und machst unterschiedliche Animationen. Du setzt einen Key bei 0, drehst am Regler (Motorhaube geht auf) du gehst auf 100 Steps in der Animation und setzt wieder einen Key.
      In der Unreal kannst du nun diese Gebakete Animation Steuern. zb die Motorhaube zur Hälfte auf, den Tankdeckel ganz auf usw.

      Bei diesen Animationen kannst du im 3D Programm mehr und leichter Einfluss nehmen als in der Unreal.
    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.