Studio - 3D Transformationen

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

  • Studio - 3D Transformationen

    Moin Leute ^^

    Schon lange her mein letzter Post, aber ich bin eher der Leser hier in der Community.

    So, nun die Infos:

    Ich will mehrere Modelle aus hierarchisch angeordneten Körperteilen zu einen Charakter aufbauen

    Jetzt als Beispiel um einen Turm aus mehreren Blöcken zu erstellen der herumwackelt



    Dazu benutze ich die matrix-Funktionen in Studio

    Roter Block:

    GML-Quellcode

    1. wobble = matrix_build(0,0,16,0,roty,0,1,1,1);
    2. matrix_set(matrix_world,wobble);
    3. d3d_draw_block(-8,-8,0,8,8,16,texture,1,1);


    Beim Blauen Block Multipliziere ich die Wobble-matrix mit der Wobble-matrix um den gewünschten Effekt zu bekommen:

    GML-Quellcode

    1. wobble2 = matrix_multiply(wobble,wobble);
    2. matrix_set(matrix_world,wobble2);
    3. d3d_draw_block(-8,-8,0,8,8,16,texture,1,1);


    Das funktioniert wunderbar nur jetzt kommen wir zum eigentlichen Problem:

    Es funktioniert nur wenn die x und y Komponente vom Transformations-Vektor auf 0 gesetzt sind, also:

    wobble = matrix_build(0,0,16,0,roty,0,1,1,1);

    Wie kann ich da eine Translation hinzufügen?
    Denn so bringt mir der Wackel-Turm nicht viel ^^

    Schonmal Danke im Voraus :D
  • Probiers mal folgendermaßen
    um z.B ein Object um die eigene Achse zu rotieren muss es zum Ursprung verschoben werden,... und anschließend wieder zurück.
    Du könntest dies auch mit deinem Turm versuchen.

    Keine Ahnung ob es so klappt,... aber vielleicht hilft dir der Ansatz


    Quellcode

    1. {
    2. d3d_transform_set_translation(100,100,10);
    3. wobble = matrix_build(0,0,16,0,roty,0,1,1,1);
    4. matrix_set(matrix_world,wobble);
    5. d3d_draw_block(-8,-8,0,8,8,16,texture,1,1);
    6. d3d_transform_set_identity();
    7. }

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

  • Benutzer online 1

    1 Besucher