HToneill's Mod Thread - Theorie und Praxis

  • Falls einer mal Hitboxen für die Geometry LOD machen muss, hier ist eine Orientierung:

    shippoly.png


    Bei 65225 Polygone für die Gesamtheit des Schiffes gehen gerade einmal 2366 Polygone für die gesamte Geometry LOD drauf.

    Die Polygonanzahl in der Geometry LOD wird noch wachsen, je mehr Details hinzukommen. Wichtig ist, dass es maximal 10% des Modells an Polygonen hat. Außerdem müssen alle Selections/ 3d Modelle die ihr in der Geometry LOD verwendet, konvex gebaut sein.

    Weniger Polys ist immer erwünscht, und in vielen Fällen möglich. Im besten Fall kann man die Geometry mit einer einfachen Box (12 Polys) erledigen - Nicht alles ist ein schwimmender Kutter mit innenraum :)


    Sobald die Hauptelemente eine Hitbox haben, werden alle Geo LOD Objekte nochmals vereinfacht, in der Hoffnung weitere Polys zu sparen.



    Erst mit optimierten Objekten kann man lange Spaß haben.

    Einmal editiert, zuletzt von HToneill ()

  • Kollisionsgeometrie
    Im Object Builder: "Geometry LOD"




    Wegen positiven Feedback zu der Erklärung, habe ich noch einen kleinen Nachtrag um die Kollisionsgeometrie besser zu erklären.

    In DayZ gibt es mehrere Arten davon:

    1. Die Kollision, die zwischen Spieler und Objekt verlaufen ( Geometry )

    2. Die Kollision, die zwischen Kugel und Objekt verlaufen ( Hit Geometry )


    Über den Object Builder werden in jedem Objekt diese entspechenden "LODs" definiert. ( Es wird immer als LOD bezeichnet, auch wenn die Kollisionsgeometrie eher ein Layer ist. )



    Zwar kann man die Hit Geometry auch im Object Builder erstellen, aber ich rate davon ab und würde eben ein zweites Layer im CAD Programm euerer Wahl machen. Für Objekte, die nur eine Box als Kollision brauchen gilt das natürlich nicht :)




    Um einen groben Überblick zu geben wie eine Kollisionsgeometrie zwischen SPIELER und OBJEKT aussieht, habe ich ein paar renderings gemacht.



    Vergleich 1:

    geo3.png

    geo2.png


    Vergleich 2:

    geo.png

    geo1.png



    Das ist die Komplettansicht, wo sowohl die Kollisionsgeometrie, als auch die Sichtbare Geometrie des Objekts dabei ist.

    Hier kann man die Details erkennen, die keine eigene Hitbox haben.

    complete.png

  • Um einzelne HUD Elemente über Skript ein/oder auszuschalten nutzt man folgendes Beispiel:

    Code
            MissionGameplay mission = MissionGameplay.Cast( GetGame().GetMission() );
            if( mission )
            {
                mission.m_Hud.ShowQuickbarUI( true );
                mission.m_Hud.ShowHudPlayer( true );
                mission.m_Hud.ShowHudUI( true );
            }

    Ich nutze das in einer "5_mission" Skript Datei

  • Animationen (.anm)


    So sieht das DayZ Animations Rig in 3dsMax aus:


    https://streamable.com/wta5mg

    Mit einer Motion Captured "MoCap" Animation überlegt.


    Letzten Endes seht ihr einen weiblichen und einen männlichen Charakter in einer Einheit, die sich bewegt.

    Ebenfalls an Händen und Füßen blaue Kästen die eben diese visualisieren.



    Ohne Player Mesh sieht es verständlicher aus.

    So sieht das Rig in 3dsMax aus, gerendert mit einfachen Boxen "primitives".

    Rig.png



    Und so, wenn man es im Editor View hat:

    rig2.png

    Scherz: Die Finger sind besonders übersichtlich - Ab irgend einer Dichte klappt keine Visualisierung präzise

    und übersichtlich zugleich.



    Der Hintergrund ist, dass man ein funktionierendes Rig, das ist eine Knochenhierarchie wie im menschlichem Skelett gleichkommt, braucht um Animationen überhaupt auf den Charakter zu übertragen.


    Mit diesem Rig ist es möglich eigene Animationen zu erstellen. Von Emotions, Actions bis hin zu neuen Waffen oder Sitzhaltungen für Fahrzeuge.

    Die Rohdaten habe ich in meinem ersten Post unter Mediengestaltung oder hier


    Verwechselt diese Boxen nicht mit der Hit-Geometry oder Collision-Geometry, auch wenn faktisch die Anzahl der Hit Geometry Volumen (zur Berechnung wo die Kugel eintritt/ Schadensberechnung) mit den Anzahl der blauen primitives in diesem Rig entspricht.


    Ziel der ganzen oberen Übung ist eine .anm Datei über das DayZ Tool Workbench zu erstellen. Erstmal das blaue Manikin in 3ds Max animieren wie gewünscht (ob nun über MoCap oder von Hand), dann als FBX exportieren. Dann das Import in Workbench und im Anschluss kann man diese über Skript einer Action oder einem Emote zuweisen.


    Und bevor jemand fragt:

    Exakte Spielergröße männlich/weiblich: 1.835m

    9 Mal editiert, zuletzt von HToneill ()

  • Htoneill, du bist der Hammer!

    Du wirst der germandayz Community glaube ich in Zukunft noch mehr Alleinstellungsmerkmal als ohnehin schon bringen :thumbup:

    Aber beim herabschauenden Hund muss der mocap Darsteller nochmal üben, da fehlt noch etwas an Dehnung 8o

    Wer DayZ auf Konsole spielt, hat die Kontrolle über sein Leben verloren. [gdz]? :fnx:

  • Thx^^



    Physik


    Ich habe eine eigene Spielengine geschrieben und erstelle gerade ein besseres Boot-Physik Modell als die Expansion,

    ich habe die gleichen Physik Libs verwendet wie DayZ auch, sollte auch nicht besonders schwer sein Das Verhalten des Spiels zu simulieren.


    Es ist einfach nicht so ein Krampf mit der eigenen Engine zu arbeiten. Da ist man König und muss sich nicht an grenzen halten. Im Anschluss ein Port auf DayZ, Mathematik muss stimmen.


    Ein Video weil ein Bild natürlich kaum Aussage hat bei einer Physikdemo:

    https://streamable.com/9acl8u


    Man wirft das Boot so lange aus 6m ins Wasser bis es gut aussieht. Auftrieb darzustellen, darum geht es. Auf der einen Seite muss es gut aussehen, auf der anderen Seite billig, sprich performancesparend, sein.


    Und wenn man ein Damping System vergisst, sieht es so aus:


    https://streamable.com/95kzhz

    Kommt das einem bekannt vor?


    8 Mal editiert, zuletzt von HToneill ()

  • Thx :) Bis es soweit ist, fehlt ja noch vieles ^^

    - Netzwerkengine

    - MongoDB Anbindung

    - MongoDB Server


    Aber was schon geht:


    Der Stringtable Editor

    (Android/ IOS/ Windows/ Linux & OSX kompatibel)





    csv2.png


    Die Stringtable ist dafür verantwortlich, dass z.B jedes Item im Spiel in jeder Sprache dargestellt werden kann. Es ist eine durch Komma getrennte Liste.

    Erst folgt der Name, im Anschluss, mit Komma getrennt, unterschiedliche Sprachvariationen des entsprechenden Textes / Wortes

    Schon bei Erstellen der ersteln Zeile wird das ein unübersichtlicher Mist. Excel oder gleiches schafft da auch keine wahre Abhilfe.

    Somit habe ich vor einiger Zeit dieses Tool geschrieben.

    Damit man endlich mit einer Stringtable arbeiten und nicht mehr raten muss.


    Damit ihr mal seht wieviel besser das ist, hier ist die Original CSV Stringtable:

    csv3.png

    Viel Spaß beim zurechtfinden.^^

    4 Mal editiert, zuletzt von HToneill ()

  • Hi ,


    Super Tool , genau sowas braucht man um nicht jedesmal die Strickerrei mit der Stringtable.Xml zu haben . Sei es Notepad++ oder Excel , diese 2 Programm nutzen je ihr eigenes Format was dann wiederrum vorne und hinten nicht passt .


    Was du da auf die Beine stellst , sollte vielen (Mich eingeschlossen) einen haufen Arbeit erleichtern . Ebenso die Automatisierte Übersetzung find ich sehr gut , so kann man sich von vielen Mods seine eigene XML machen . Quasi als Fix .


    Freu mich auf´s Release


    lg Sni