3d models

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Sowas wie in Starfox bekommste nich hin.
    soweit ich weiß liefern die GM Funktionen nur Pimitive.
    Das heißt kugeln quader, würfel und so.

    Wenn du solche Figuren machen willst kommst du um so ein Programm nicht rum..
    z.B. Anim8ter oder Blender
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~
  • für sowas gibts die primitve funktionen. in der gm 6.1 version sogar die model fuktionen. die funktionieren grundsätzlich gleich, deswegen beschränke ich mich darauf, die primitive funktionen zu beschreiben. das ganze ist übrigens nur registierten usern vorbehalten...

    Form & Funktion

    also ein solches primitive kann aus den "fertigformen" (eigendlich: extended versions of the basic drawing functions) des game maker bestehen und/oder aus einzelnen punkten, die man alle einzeln definieren muss und ggf. mit bestimmten modifikationen verändert (dazu mehr später). auf die einzelnen "fertigformen" sind zum beispiel einzelne punkte, quader, kugeln, zylinder, etc.. wie diese genau funktioniern kannst du der anleitung entnehmen.

    der draw-code für ein solches primitive das, das keine "fertigformen" nutzt und nur aus punkten besteht sieht z.b. so aus:

    GML-Quellcode

    1. d3d_primitive_begin(pr_trianglelist); // der "typ" wird festgelegt siehe weiter unten.
    2. d3d_vertex(100,100,0); // erster punkt.
    3. d3d_vertex(100,200,0); // zweiter punkt.
    4. d3d_vertex(150,150,200); // kann man sich ja denken...
    5. d3d_vertex(100,200,0);
    6. d3d_vertex(200,200,0);
    7. d3d_vertex(150,150,200);
    8. d3d_vertex(200,200,0);
    9. d3d_vertex(100,100,0);
    10. d3d_vertex(150,150,200);
    11. d3d_vertex(100,100,0);
    12. d3d_vertex(100,200,0);
    13. d3d_vertex(200,200,0);
    14. d3d_primitive_end(); // beendet das object.
    Alles anzeigen
    der code beginnt mit d3d_primitive_begin und wird duch den typ modifiziert. es gibt folgende primitve-typen:


    pr_pointlist - nur punkte die eben nur punkte sind.


    pr_linelist - zwischen jeweils zwei punkten wird eine linie gezogen


    pr_linestrip - zwischen den punkten wird eine linie gezogen


    pr_trianglelist - jeweils drei punkte bilden ein dreieck.


    pr_trianglestrip - von jedem punkt aus wird ein dreieck zu den jeweils beiden nächsten punkten gebildet. also in einer reihe.


    pr_trianglefan - jeder punkt bildet ein dreieck mit dem nächsten und dem ersten punkt. also kreisförmig.

    bei der ganzen arbeit mit den polygonen (so nennt man die dreiecke meistens), ist es wichtig zu wissen, das sie eine ober und unterseite haben. eigendlich wird nur die oberseite verwendet, die rückseite des polygons ist unsichtbar. von hinten ist es also nicht zu sehen. nur wenn die d3d_set_culling(false) definiert wurde sind auch beide seiten (bzw. eine spielgelung der oberseite) zu sehen. das hat vor und nachteile. z.b. muss man sich so keine gedanken darum machen die polygone richtig anzuordnen, jedoch wird z.b. die light funktion des game makes nicht auf die unterseite angewendet, selbst wenn die d3d_set_culling(false) definiert wurde.



    Farbe & Textur

    man kann diesen formen natürlich auch farbe geben. man muss nur vor dem code draw_set_color verwendet. zusätzlich kann man diese formen aber auch mit einzeln und spezifisch mit farbe und/oder texturen (backgounds oder sprites) versehen. bei den "fertigformen" sind diese optionen oft enthalten. bei den selbst erstellten primitves muss man dies natürlich selber tun. farbe kann man einfach mit dem draw_set_color befehl vor oder auch zwischen den einzelnen punkten erreichen. oder d3d_vertex_color verwenden, wenn man die punkte hinzufügt, und so eine verlaufsfarbe zu definieren.
    für texturen gibt es die funktionen d3d_primitive_begin_texture und d3d_vertex_texture. mit der ersten startet man das primitive, mit der zweiten fügt man einen neuen punkt hinzu:

    GML-Quellcode

    1. d3d_primitive_begin_texture(pr_trianglefan,background_get_textur(name)); // der "typ" und die textur wird festgelegt
    2. d3d_vertex_texture(0,480,0,0,0); // punkt eins mit textur koordinaten, farbe und alpha-wert
    3. d3d_vertex_texture(640,480,0,1,0); // das hatten wir schon
    4. d3d_vertex_texture(640,480,1000,1,1);
    5. d3d_vertex_texture(0,480,1000,0,1);
    6. d3d_primitive_end(); // ende des primitive



    Bewegung & Animation

    ein solches primitive, soll ja eventuell auch bewegt, gedeht, etc. werden. dafür sollte man vor und nach dem code d3d_transform_set_identity verwenden, um die transformation nur auf den entsprechnden code anzuwenden, und nicht auf alles was danach folgt.

    hier der darw-code für eine "fertigform", die ein bischen gedreht wurde (für das object muss eine z variable definiert sein!):

    GML-Quellcode

    1. d3d_transform_set_identity(); // start des objects
    2. draw_set_alpha(0.6); // alpha
    3. draw_set_color(c_lime); // farbe
    4. d3d_transform_add_translation(-x,-y,-z); // translation start
    5. d3d_transform_add_rotation_x(45); // Rotation X achse 45°
    6. d3d_transform_add_rotation_z(90); // Rotation Z achse 90°
    7. d3d_transform_add_translation(x,y,z); // translation ende
    8. d3d_draw_block(x-10,y-10,z-10, x+10,y+10,z+10, background_get_texture(back1),1,1); // Primitive object
    9. d3d_transform_set_identity(); // Object ende
    Alles anzeigen


    Sonstiges

    ich denke das wärs erstmal. wenn du noch fragen hast melde dich einfach :D
    ach ja. zu deiner frage ob es ein tool zur erstellung solcher objecte gibt: es gibt sogar schon eine ganze menge. zum einen exporter für einige 3d-modelling software, desweiteren einige 3d-modelling tools, die mit und für den game maker erstellt wurden. einiges findest du hier. die screenshots hier im post habe sind mit Smart Poly entstanden. eine testversion gibs hier.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • du hast bei Smart Poly die möglichkit, alles als .scn (Smart Poly Scene) abzuspeichern. Diese enthällt dann alle informationen, ausser eventuelll nachgeladene texturen. zudem hat mal die möglichkeit, die scene als GML code zu exportieren, der dann einfach in das spätere game eingebaut wird.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x

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

  • ich bin mir nicht ganz sicher, aber ich glaube, du kannst bei blender als .obj exportieren. wenn das möglich ist, kannst du hier einen obj. to GML converter runterladen. dann konvertierst du den obj-code in das GML format und fertg...
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x