3d - Hand getrennt vom Körper animiern?

  • Hallo zusammen
    Ich möchte mich demnächst intensiv mit der 3d-Entwicklung auseinandersetzten. Höchstwahrscheinlich benutze ich dafür C++ mit ein paar Frameworks und OpenGL. Ich bin noch leider blutiger Anfänger in OpenGL und kenne mich nur bisschen damit aus. Soweit ich weiß animieren die meisten ihre Charakter in verschiedene Frames und speichern diese als eine Aktion wie zB "Gehen" oder "Rennen" ab.
    Meine Frage dazu ist folgende: Ich möchte mal direkt mit etwas komplizierterem anfangen und nicht mit "statischen" Sachen herumarbeiten, dh soviel wie, dass ich zum Beispiel die Hand animiern möchte und dann die Aktionen "daumen_ausgestreckt" und "zeigefinger_ausgestreckt" abspeichern. Dies soll mir nun ermöglichen, dass ich diese beide Aktionen beim "Gehen" und "Rennen" verfügbar habe. Von eine Möglichkeit glaube ich mal gehört zu haben: Man nimmt verschiedene Objekte für den Körper und die Hand und stimmt diese perfekt ab, sodass es wie ein Körper erscheint. Ist diese Methode sehr schwierig umzusetzen? Welche Möglichkeiten gibt es nun und wie setzt man sie um?
    Nennt mir bitte dazu noch den Schwierigkeitsgrad oder was man so als Vorwissen besitzen sollte.
    Hoffe ihr versteht micht und könnt mir antworten, mfG AntiSpeed

    Nur keine Hektik - das Leben ist stressig genug

  • Ich kenn mich nicht mit OpenGL aus, aber es kann doch sein das man Bewegungen/Animationen in eine Datei speichern kann. Ich bin mir sicher das es ein Programm gibt was einer Figur (Ja, ich würde diese in mehrere Teile einteilen, Arme, Beine, Finger etc) Bones gibt, also Strecken die einem bestimmten Bereich zugeordnet sind. Wenn sich der Bone dreht, dreht dich die ausgewählte Fläche mit. Musst du mal gucken, ein Programm kenn ich, ich komm aber noch nicht she rgut damit klar:
    Misfit Model 3D

    Hoffe konnte dir helfen

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • Meistens wird der Körper aus Bone-animations aufgebaut. Für das gleichzeitige Abspielen von Animationen kann man mehrere Objekte verwenden.

    Der Kopf ist ohnehin meistens ein Sonderfall. Er wird oft als Morphmesh (jede einzelne Fläche bewegt sich) animiert und dreht sich ohne extra erstellte Animation zu anderen Personen hin.

    Empfehlen würde ich eine Engine, die einfache Handhabung der Render-funktion und Codebeispiele hat, damit du nicht alles selber machen musst.

  • Es geht ganz einfach bestimmte Animationen von Körperteilen zu machen..
    Es gibt zwei Lösungswege die mir bekannt sind:

    1.) du machst einfach einen Charakter und Animierst seine Hand diese Animation kannst du Speichern und auch wieder öffnen. dadurch kannst du auch animtionen zusammenfügen: Entweder du machst es im Programm, dass du mehrere animationen gleichzeitig abspielst oder du fügst es in deinem Animationsprogramm zusammen.

    2.) Du machst die Körperteile und ihre Animationen extra und fügst sie in deinem Pogramm zusammen. Diese Art is aber wesentlich schwieriger da du dann auch diese Körperteile auf einander abstimmen musst und seperat im game animieren musst, vielleicht kannst du auch irgendwie den Körper seperat im Programm animieren und sie dann gleichzeitig abspielen(Würd mich aber nicht drauf verlassen, braucht auch wesentlich mehr rechenleistung)

    MFG Schnacko

  • Marthog: Welches Engine kennst du denn mitder man Boneanimation einfacher erstellen kann? Ist diese kostenlos? (auch kommernziell?)

    Zum Erstellen kenne ich keine. Das musst du ganz normal mit Blender, Maya, Autodesk 3d. etc machen.
    Abspielen könntest du das in jeder Engine. Auch die, dir schon vertraute, Irrlicht-Engine kann Bones verwenden und daran andere SceneNodes befestigen (Stichwort: IAnimatedMeshSceneNode::getJointNode) und lässt sich durch einfache Renderfunktionen (IVideoDriver::drawMeshBuffer) auch einfach und plattformunabhängig verwenden und erweitern.