Pracuję nad grą FPS i napotkałem problem. W mojej grze renderowany jest pistolet gracza, a także celownik na środku ekranu - tak:
Po pierwsze, wyobraźmy sobie, że nie było renderowanego modelu broni. Następnie wystrzelenie pocisku jest łatwe - po prostu spawnujesz pocisk dokładnie tam, gdzie znajdują się „oczy” gracza, a następnie używasz trigu, aby obliczyć prędkość na podstawie kierunku, w którym gracz patrzy.
Ale teraz, kiedy dodamy model broni ... nie możemy po prostu odrodzić pocisk w miejscu, w którym znajdują się oczy graczy, musimy go odrodzić na końcu pistoletu (prawda?). Więc robisz to, ale potem ... jak poruszasz pociskiem w taki sposób, aby trafiał w dowolne miejsce, w które celowała celownik?
Pamiętaj, że kula w mojej grze (w tym przypadku to rakieta) będzie poruszać się wystarczająco wolno, aby można było zobaczyć jej ruch, więc pewne obejście, które zwykle działałoby, gdyby kula była zbyt szybka, aby ją obserwować, nie zadziała . Na przykład, jeśli go nie spawnujesz, więc wygląda na to, że wychodzi on z końcówki pistoletu, gracz na pewno to zauważy.
źródło
Odpowiedzi:
Wystrzel promień z kamery przez środek / siatkę w świat. Dowiedz się, gdzie na świecie uderza. Wystrzel kulę z lufy pistoletu w tym miejscu zamiast prosto z pistoletu.
Punkty bonusowe za animowanie rąk i pistoletu, aby wskazywały w tym kierunku podczas celowania, więc kula nadal wygląda, jakby strzelała prosto z pyska, zamiast wychodzić pod kątem.
Jeśli wykonasz animację, zawsze możesz wystrzelić pocisk prosto z pyska. Po prostu staraj się, aby pistolet celował w punkt, w który celuje celownik w rozsądnych granicach. Pomocne jest również posiadanie dwóch siatek w taki sposób, że oba pokazują naturalnie środek ekranu, na który gracz próbuje celować, i punkt, na który celuje broń.
Albo możesz pokazać pojedynczą siatkę, w którą celuje broń po zakończeniu animacji i wystrzelić pocisk w tym kierunku, a nie w miejsce, w którym obecnie celuje broń w swojej animacji. W ten sposób celownik zawsze pokazuje, co trafi gracz, ale nie będzie udawał, że możesz np. Strzelać dookoła ściany tylko dlatego, że kamera widzi coś, czego pistolet nie jest w stanie zrobić.
Wszystkie zostały wykorzystane w prawdziwych grach. To, co wolisz, będzie zależeć od stylu gry, którą tworzysz, jaki kompromis między symulacją a grą, do której dążysz, niezależnie od tego, czy jest to gra wieloosobowa, czy nie itp.
źródło
Co powiesz na pozbycie się siatki celowniczej? Wtedy pociski mogłyby wystrzelić prosto z pistoletu, tak jak w rzeczywistości. Wycelowanie w celowniki oznaczałoby wtedy więcej, ponieważ wyrównałbyś cel i lufę pistoletu (minus kilka cali w modelu gracza).
źródło