Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Keine Sorge, wie gesagt ich will nicht gleich Doom4 programmieren sondern erstmal ein einfaches Brettspiele wo die Figuren erstmal statisch sind. Und erst wenn das Spiel fertig ist, erweitere ich die Source so daß die Spielfiguren auf der Spielbrett auch animiert.Zitat von »"Alyx"«
B) Bei 3DS konnte man einfach Morph-Daten exporierten lassen. Direkt mit Bones anzufangen wäre vielleicht für das erste Projekt etwas hardcore :-). Ich denke, dass das mit Blender auch geht.
Ok, danke. Von Morphing wusste ich nichts. Hab diese Begriff gleich notiert und werde mal darüber lesen. Bis jetzt hatte ich nur von Bones gelesen.Zitat
C) Du machst sie mit Blender und exportierst entweder als Bone-Animation oder Morph-Daten, die du dann im eigenen Programm animieren kannst. Wie schon in B gesagt... fang mit Morph an und wenn das für dich "easy going" ist, dann nimm die Bones :-).
Ist es das, was ich ne 3D-Bild gesehen habe wo ein Figur in viele durchsichtige Würfeln mit verschiedene Größe (je nachdem wie groß die einzelne Objekte sind) "drin" ist und die Kollisioncheck wird mit diese Würfeln als Daten verwendet.Zitat
Zu der Kollision:
Da gibt's viele Ansätze. Ein sehr häufig genutzter ist, dass das Model aus simplen mathematischen Objekten (Kugel, Zylinder, Würfel) nachgebaut wird, so dass dann später nicht auf Dreiecksebene sondern deutlich schneller mit Line Vs. Sphere, Line Vs. Cube, Line Vs. Cylinder, Sphere Vs. Sphere etc. pp. die Kollision getestet werden kann.
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 |
double Frame = (GetTickCount()-AniStartTickCount)*24.0/1000.0; int FrameI = (int)Frame, // frame 1 FrameN = Frame+1; double FPerc = Frame-(double)FrameI, APerc = (1.0-FPerc); // für alle Vertices: Vector3D vpos = (Frame[FrameI].vPos*APerc+Frame[FrameN].vpos*FPerc), vnormal = (Frame[FrameI].vNormal*APerc+Frame[FrameN].vNormal*FPerc); usw.. |
Schon klar, aber innerhalb von Blender wird doch die "Grenzen" (bzw. die "Kollision-Würfeln" wie man die sonst nennt) definiert, oder? Und in meinen C++-Source muß ich natürlich selber die Überprüfung implementieren bzw. Kollision-Bibliothek (PhysX oder sowas) benutzen. Oder habe ich komplett falsch verstanden? :?Zitat von »"Wümpftlbrümpftl"«
"Blender unterstützt Kollision" bezieht sich ausschließlich auf die Blender-Game-Engine. Um Kollisionserkennung und ggf. Bouding Volumes oder Kollisionsmodelle musst du dich noch selbst kümmern.
Oh... ich dachte mit Blender erstelle ich ein Modell mit Skelett und in C++-Programm ist diese Modell ohne Implementierung erstmal "tot" und ich muß selber die Bewegungen implementieren wie z.B.Zitat
mit Begrifflichkeiten muss man da vorsichtig sein.. Boneanimation hat natürlich auch Keyframes.. aber hier wird nciht jeder Vertex, sondern nur jeder Bone pro Frame gespeichert.
Quellcode |
|
1 2 3 4 |
void OpenHand() { // bewege die Finger in X-Richtung }; |
Zitat von »"Alyx"«
Ist halt die Frage, ob man ein Spiel "zusammenklicken" will, indem man 3D Engine, PhysX & Co. einmal in die große Rührtrommel wirft oder ob man programmieren lernen will.
Werbeanzeige