Du bist nicht angemeldet.

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

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

11

20.10.2009, 23:27

Jonathan meint, dass du das selbst schreiben musst. Bis auf die Kollisionsüberprüfung wird dir PhysX wenig bis gar nichts abnehmen... Und das umzusetzen ist wirklich nicht leicht.

@fred2507
sry, aber dieses Beispiel ist wirklich unpassend, und reicht als Analogie kaum einen Schritt weit.
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Sizzla

Frischling

Beiträge: 72

Wohnort: Klagenfurt

  • Private Nachricht senden

12

21.10.2009, 00:45

bei >Super Mario Galaxy< gibt es doch auch sowas ähnliches.
Nur bei Mario ist es sicher viel leichter kann ich mir vorstellen weil lediglich die Gravitation geändert wird.
Zusätzliche Animationen sind auch nicht nötig, vielleicht solltest du das mal probieren.


http://www.youtube.com/watch?v=W8ixpB2JD04

Im Prinzip ist es ja das selbe wenn ich mich nicht täusche

Sizzla
Künstliche Intelligenz ist leichter zu ertragen als natürliche Dummheit !
--------------------------
http://www.kasser-manuel.com

13

21.10.2009, 11:40

Zitat von »"matze"«

@Jonathan_Klein Ich muss doch überprüfen ob der Player den Gegner berührt,
wenn das zutrifft, dann setz ich den Player an der Position wo das Dreieck vom Gegner ist welches er berührt.

Das ist dann aber wirklcih nur ein sehr simpler Ansatz. Du hast ja eigentlich nicht nur eine Spielerposition, sondern du musst beide Hände und beide Beine korrekt am Gegner anbringen. Dadurch, dass sich der Gegner bewegt, können sich natürlich die Positionen von Händen und Beinen relativ zueinander auch bewegen, um so etwas zu realisieren braucht man halt inverse Kinematik.
Man kann das bestimmt auch irgendwie mit Ragdoll kombinieren, damit der Spieler hin und her geschleudert wird, wenn sich der Gegner bewegt, aber es bleibt natürlich immer noch relativ komplex.
Lieber dumm fragen, als dumm bleiben!

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

14

21.10.2009, 12:18

Zitat von »"Jonathan_Klein"«

Zitat von »"matze"«

@Jonathan_Klein Ich muss doch überprüfen ob der Player den Gegner berührt,
wenn das zutrifft, dann setz ich den Player an der Position wo das Dreieck vom Gegner ist welches er berührt.

Das ist dann aber wirklcih nur ein sehr simpler Ansatz. Du hast ja eigentlich nicht nur eine Spielerposition, sondern du musst beide Hände und beide Beine korrekt am Gegner anbringen. Dadurch, dass sich der Gegner bewegt, können sich natürlich die Positionen von Händen und Beinen relativ zueinander auch bewegen, um so etwas zu realisieren braucht man halt inverse Kinematik.
Man kann das bestimmt auch irgendwie mit Ragdoll kombinieren, damit der Spieler hin und her geschleudert wird, wenn sich der Gegner bewegt, aber es bleibt natürlich immer noch relativ komplex.

Ich bezweifle ebenfalls, dass man das trivial mit einer normalen Physikengine lösen kann.
Jedoch wurde z.B. in Prince of Persia Two Thrones etwas ähnliches realisiert, jedoch völlig ohne Physik.

Dort hat man Entgegner dieser Größe meist im sog. Speedkill Modus besiegt. Die Animationen waren komplett vorberechnet, man muss quasi nix machen während der Prinz auf dem Gegner rumturnt (was aber nicht schlimm ist, die coolen moves entschädigen einen dafür :lol:), jedoch schaltet das Spiel in Kernmomenten in Zeitlupe wo man eine bestimmte Taste drücken muss.

Nicht so cool wie selbst drauf rumturnen, aber leichter zu realisieren und reicht für nen ordentliches I-Rule Gefühl *g*

Hier hat man ein paar coole Speed Kill Szenen: http://www.youtube.com/watch?v=y8Sl-qVSIBY&feature=related

PS: Davon mal ab, ich glaube nicht, dass ein solches Feature (Sowohl in meiner genannten abgespeckten Version, noch selbst rumturnen) von einem Hobbyentwickler Team zu realisieren ist. Der Animationsaufwand ist enorm, und ich glaube bei Prince of Persia wurde dafür Motion Capturing verwendet.

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

15

22.10.2009, 10:57

Zitat von »"David_pb"«

Vielleicht erklärst du mal was genau du überhaupt willst? Ich hör hier nur ständig willkürlich in den Raum geworfene Begriffe und kann mir bisher kein wirkliches Bild machen...

ja, das ist wirklich toll manchmal. je weiter die spieleindustrie fortschreitet, desto mehr fachbegriffe werfen sich die leute an den kopf.

ontopic: du willst dass man auf gegnern rummklettern kann? naiv würde ich sagen du machst einen raycast richtung (spielerposition - gegnerposition) vom spieler aus. wenn der strahl dann deinen gegner trifft, richtest du den spieler anhand vom normalenvektor des geschnittenen dreiecks aus.

wenn das klappt, kannst du ja immer noch inv kinematik, fluid dynamics, cloth physics, ragdolls und abs einbauen.
"Don't trust your eyes: They are a hell of a lot smarter than you are"

16

22.10.2009, 16:05

Hm, der Vorteil an haarigen Gegnern ist, dass man die Gliedmaßen nicht so genau platzieren muss. Der Nachteil ist, das schönes Fell auch nicht so simpel zu zeichnen ist.

Prinzipiell ist Inverse Kinematik zwar kniffelig, aber wenn man nur einen oder 2 hintereinander hängende Knochen ausrichten will, ist es eigentlich simpel. Und 2 reichen ja für Arme und Beine jeweils.
Lieber dumm fragen, als dumm bleiben!

17

22.10.2009, 20:05

Weiß nicht ganz genau, was Inverse Kinematik ist. Meinst du damit, dass ich die Gliedmaßen(Actors) an den Positionen der Knochen(Bones) setzen soll, so wie bei Ragdoll da wird‘s nur andersherum gemacht. Wenn ja dann mache ich es jetzt schon so, also hat sich das Thema mit der Kollisionserkennung erledigt.

Kommen wir jetzt zum Klettern, ich weiß jetzt nicht mehr wie die Berechnung aussieht, dass man auf einer Ebene klettert.
Also ich habe den NormalVektor von der Ebene und den RichtungsVektor von den Spieler und brauche den RichtungsVektor womit der Spieler an der Ebene entlang Klettert.

Mein Ansatz war den Kreuzprodukt der Beiden Vektoren zu berechnen, was aber zu falschen Ergebnissen geführt hat.
Wie war das jetzt nochmal, ist mein Ansatz schon so richtig?

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

18

22.10.2009, 20:22

Es tut mir leid matze, aber es hat den Anschein als beherrschtest du zu wenig Mathematik/Physik, als dass du dieses Problem gut lösen könntest (zum jetzigen Zeitpunkt).
Eigne dir vorher einiges an Wissen in diese Richtung an, und mach es dann ordentlich.
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

19

22.10.2009, 21:14

Es ist lange her, wo ich sowas gemacht habe. Gibt mir wenigsten ein paar Tipps, muss ja nicht alles ordentlich aussehen.

20

22.10.2009, 21:50

Der erste Tipp ist es, sich selbständig Informationen zu beschaffen. Mal ehrlich, wenn 17 mal ein Stichwort fällt, und du danach behauptest, nicht zu wissen, was das sei, dann sehe ich es überhaupt nicht ein, auf irgendwelche deiner Fragen irgendwann nochmal einzugehen.
Du kannst meinetwegen sagen, dass du bestimmte Aspekkte nicht verstanden hast, aber ich kann mir einfach nicht vorstellen, dass du zu blöd bist, das Grundprinzip der Inversen Kinematik irgendwo im Internet für dich verständlich zu finden.

Und was soll das mit "Gliedmaßen an die Position der Knochen setzen" heißen?
Du hast Gliedmaßen und deren Position werden durch die Knochen definiert, da muss man nix mehr setzen.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige