Schießen Sie die Kugel aus der Waffe anstatt aus der Kamera und halten Sie sie dabei in Bezug auf das Fadenkreuz genau

14

Ich arbeite an einem First-Person-Spiel und bin auf ein Problem gestoßen. In meinem Spiel wird die Waffe des Spielers gerendert, und in der Mitte des Bildschirms befindet sich ein Fadenkreuz.

Bildbeschreibung hier eingeben

Stellen wir uns zunächst vor, es würde kein Waffenmodell gerendert. Dann ist es einfach, die Kugel abzufeuern - Sie spawnen die Kugel nur genau dort, wo sich die "Augen" des Spielers befinden, und berechnen dann die Geschwindigkeit anhand der Blickrichtung des Spielers.

Aber jetzt, wenn wir das Waffenmodell hinzufügen ... können wir die Kugel nicht nur dort spawnen, wo die Augen der Spieler sind, wir müssen sie an der Spitze der Waffe spawnen (richtig?). Also machst du das, aber dann ... wie bewegst du die Kugel so, dass sie dort aufschlägt, wo das Fadenkreuz zeigt?

Denken Sie daran, dass sich die Kugel in meinem Spiel (in diesem Fall handelt es sich tatsächlich um eine Rakete) so langsam bewegt, dass ihre Bewegung sichtbar ist. Daher funktioniert eine Umgehung, die normalerweise funktioniert, wenn die Kugel zu schnell ist, um beobachtet zu werden, nicht . Wenn Sie es zum Beispiel nicht erzeugt haben und es so aussieht, als würde es aus der Spitze der Waffe kommen, würde der Spieler das definitiv bemerken.

Aaron
quelle
1
Die Antwort auf Ihre Frage lautet: Raycasting =)
Gray
Es ist alles Rauch und Spiegel; Alle Kugeln, die gerendert werden, haben nichts mit dem tatsächlichen Pfad oder Strahl der Kugel zu tun.
Congusbongus
@congusbongus Ich meine, OFC, die gerenderte Kugel muss nicht genau mit der Mathematik der Kugel selbst übereinstimmen, aber wenn Sie dies bis zu einem gewissen Grad nicht tun, sieht es schlecht aus, und da stecke ich fest .
Aaron

Antworten:

20

Schießen Sie einen Strahl von der Kamera durch das Zentrum / Fadenkreuz in die Welt. Finden Sie heraus, wo in der Welt es trifft. Schießen Sie die Kugel an diesem Punkt aus der Mündung der Waffe, anstatt direkt aus der Waffe.

Bonuspunkte für die Bewegung der Hände und der Waffe, um beim Zielen in diese Richtung zu zielen, sodass die Kugel immer noch so aussieht, als würde sie direkt aus der Mündung geschossen, anstatt in einem Winkel herauszukommen.

Wenn Sie die Animation machen, können Sie die Kugel immer direkt aus der Mündung schießen. Geben Sie einfach Ihr Bestes, damit die Waffe auf den Punkt zeigt, auf den das Fadenkreuz innerhalb angemessener Grenzen zielt. Es ist auch hilfreich, zwei Fadenkreuze so zu haben, dass sowohl die Mitte des Bildschirms, auf den der Spieler zielen möchte, als auch der Punkt, auf den die Waffe tatsächlich zielt, angezeigt werden.

Oder Sie können ein einzelnes Fadenkreuz anzeigen, auf das die Waffe nach Abschluss der Animation zielt, und die Kugel in diese Richtung abfeuern, anstatt an die Stelle, auf die die Waffe derzeit in ihrer Animation zielt. Auf diese Weise zeigt das Fadenkreuz immer an, was der Spieler tatsächlich trifft, gibt aber nicht vor, dass Sie z. B. um eine Wand schießen können, nur weil die Kamera etwas sieht, was die Waffe möglicherweise nicht kann.

Alle diese wurden in echten Spielen verwendet. Was Sie bevorzugen, hängt vom Spielstil ab, von dem Kompromiss zwischen Simulation und angestrebtem Spiel, ob dies ein Mehrspielermodus ist oder nicht usw.

Sean Middleditch
quelle
In vielen Spielen werden nicht einmal Modelle für Kugeln verwendet, sondern es wird nur ein Strahl abgefeuert, um eine Kollision zu überprüfen. Sie können anderen Spielern ein anderes Waffenmodell als das in der Ansicht der aktuellen Spieler angezeigte anzeigen und dieses an der Position der Kugel ausrichten wird abgefeuert von mit dem Charakter, der auf die Sehenswürdigkeiten zu zielen scheint
Matthew Pigram
Counter-Strike Source verwendet diese Methode (es hat Ansicht, Spieler und Weltmodelle)
Matthew Pigram
-1

Was ist mit dem Absehen loswerden? Dann könnten die Kugeln, genau wie in der Realität, in einer geraden Linie von der Waffe abgefeuert werden. Das Zielen auf das Visier würde dann mehr bedeuten, als Sie das Ziel und den Lauf der Waffe ausrichten würden (minus ein paar Zentimeter beim Spielermodell).

Jason Reed
quelle
Während viele Spiele so etwas tun, ist dies eine sehr weit gefasste Designentscheidung, die Auswirkungen auf das gesamte Tempo und den Kampf des Spiels hat.
Katana314
Für mich bedeutet dies eher, das Problem zu vermeiden, als es tatsächlich zu lösen.
Aaron