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.
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.
quelle
Antworten:
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.
quelle
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).
quelle