Jak mogę zaimplementować kamerę trzecią na mapie SC2?

8

Chcę spróbować utworzyć niestandardową mapę Starcraft 2 z kamerą trzeciej osoby podążającą za jednostką. Istnieje już kilka niestandardowych map z tą funkcją, więc wiem, że jest to możliwe.

Jak mam to zrobic? Czy potrzebuję niestandardowego pliku modów, czy mogę wszystko zrobić w pliku mapy?

Nick Vaccaro
źródło
2
sc2mapster.com/maps/tpsfps_battle_rts Myślę, że to może pomóc. Jest to link do strony z jedną z bardziej popularnych map, które mają tę funkcję. Myślę, że oni mają jak to zrobić na stronie.
McAzzaMan
Skontaktowanie się z autorką niestandardowej mapy byłoby prawdopodobnie najprostszym sposobem, aby dowiedzieć się, jak ..
Jari Komppa
To pytanie wydaje się być nie na temat, ponieważ dotyczy modyfikacji konkretnej gry, a po trzech latach prawdopodobnie nie uzyska się na nie odpowiedzi.
Jari Komppa
@Jari Myślę, że powinno to pozostać otwarte tak długo, jak długo modowanie gry jest tutaj na temat, a SC2 ma aktywną społeczność. SC2: Heart of the Swarm ekspansji jest tylko letnia.
Anko
@Anko Zgoda; SC2 i jego mody są dalekie od przestarzałych. Ponadto pytanie ma wąski zakres i jest wyraźnie możliwe do zrealizowania.
Seth Battin

Odpowiedzi:

1

Informacje podane poniżej pochodzą z http://www.staredit.net/starcraft2/Third_Person_Camera, gdzie można znaleźć więcej informacji, takich jak wyzwalacze WASD i wiele opcji kamery, ale podstawy konfiguracji trzeciej osoby są tutaj:

Konfigurowanie obiektu kamery

Pod przyciskiem „Utwórz kamerę” zobaczysz białe pole z wartością „Kamera 001”, kliknij je prawym przyciskiem myszy i kliknij „Zmień właściwości”. Ustaw następujące wartości (Nazwa - Wartość podrzędna - (Opis)):

  • Kąt - pole widzenia - 27,996 - (Jak szeroki jest widok. Będzie to widok 28 stopni od lewej strony ekranu w prawo) Kąt - Rolka - 0,0 - (Jak daleko przetoczyć kamerę od lewej do prawej Pomyśl o beczkach.)
  • Głębia ostrości - Kwota - 0,0 - (Nieznany, możesz zaktualizować artykuł wiki, jeśli znasz jakieś informacje na temat tej wartości)
  • Głębia ostrości - Głębokość - 8,0 - (Jak daleko kamera widzi)
  • Głębia ostrości - Koniec - 8,0 - (Pozycja końcowa widoku z punktu kamery)
  • Głębia ostrości - Początek - 0,0 - (Początkowa pozycja widoku z punktu kamery)
  • Odległość - 4 - (Jak daleko dosłowna kamera znajduje się od rzeczywistej lokalizacji kamery. Ustawienie tej wartości na 0 powoduje FPS (FPS), około 4 oznacza TPS (FPS))
  • Odległość - Daleki klip - 300,0 - (Odległość, z której nic nie będzie renderowane. Jeśli coś jest dalej od kamery, NIE BĘDZIE RENDEROWANE)
  • Odległość - Near Clip - .1 - (Odległość, gdy nic nie będzie renderowane. Jeśli coś jest bliżej niż z kamery, NIE BĘDZIE RENDEROWANE)
  • Odległość - Shadow Clip - 75,0 - (Zakładając odległość, po której cienie nie będą renderowane)
  • Target - Pitch - 12 - (Pitch aparatu. Pitch to ruch w górę / w dół)
  • Cel - X - (nieważne, zmieni to każdą klatkę gry)
  • Cel - T - (nieważne, zmieni to każdą klatkę gry)
  • Cel - Ziew - 180 - (Ziewnięcie kamery. Pomyśl o ruchu od lewej do prawej, który nie toczy się beczką)
  • Cel - przesunięcie Z - 1 - (jak daleko kamera znajduje się nad ziemią)

Główną wartością, której potrzebujemy tutaj, jest Odległość - 4. Ustawienie tej wartości na 4 spowoduje utworzenie kamery trzeciej osoby (chociaż w przypadku jednostek innych niż marine konieczne może być jej edytowanie). 0 utworzy aparat z perspektywy pierwszej osoby. To samo dotyczy celu - przesunięcia Z - 1. Wyższa jednostka będzie potrzebowała wyższej wartości, aby podnieść kamerę.

Zmienne globalne

Potrzebnych jest kilka zmiennych globalnych, których nazwy i typy podano poniżej (Nazwa - Typ - Wartość - (Opis)):

  • FaceOffset [8] - Rzeczywisty - 0,0 - (tam, gdzie skierowane są odpowiednie jednostki każdego gracza)
  • Prędkość - rzeczywista - 0,03 - (prędkość, z jaką jednostka się porusza)
  • Jednostki [8] - Jednostka - [PUSTY] - (Przechowuje odpowiednie jednostki każdego gracza)
  • Gracz A [8] - Rzeczywisty - 0 - (Sklepy to gracze Klawisz jest wciśnięty)
  • PlayerS [8] - Real - 0 - (Sklepy to klawisz S gracza jest wciśnięty)
  • PlayerD [8] - Real - 0 - (Sklepy to gracze, klawisz D jest wciśnięty)
  • PlayerW [8] - Real - 0 - (Sklepy to gracze W klawisz jest wciśnięty)

Skonfiguruj wyzwalacz aparatu

Set Up Camera
   Events
       Timer - Every 0.0 seconds of Game Time
   Local Variables
       Yaw = 0.0 <Real>
       CameraFocus = No Point <Point>
       Counter = 0 <Integer>
   Conditions
   Actions
       General - For each integer Counter from 1 to 8 with increment 1, do (Actions)
           Actions
               General - If (Conditions) then do (Actions) else do (Actions)
                   If
                       (Controller of player Counter) == User
                       (Status of player Counter) == Playing
                   Then
                       Camera - Apply Camera 001 for player Counter over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Don't Include Target
                       Camera - Lock camera mouse relative mode On for player Counter
                       Camera - Turn camera mouse rotation On for player Counter
                       Camera - Turn camera height smoothing Off for player Counter
                       Camera - Turn camera height displacement On for player Counter
                   Else

Wyzwalacz aktualizacji kamery:

Camera Update
   Events
       Timer - Every 0.0 seconds of Game Time
   Local Variables
       Yaw = 0.0 <Real>
       CameraFocus = No Point <Point>
       Counter = 0 <Integer>
   Conditions
   Actions
       General - For each integer Counter from 1 to 8 with increment 1, do (Actions)
           Actions
               General - If (Conditions) then do (Actions) else do (Actions)
                   If
                       (Controller of player Counter) == User
                       (Status of player Counter) == Playing
                   Then
                       Variable - Set Yaw = (Current camera yaw of player Counter)
                       Variable - Set CameraFocus = ((Position of Units[Counter]) offset by 0.0 towards (Yaw + 90.0) degrees)
                       Unit - Make Units[Counter] face (Yaw + FaceOffset[Counter]) over 0.0 seconds
                       Camera - Set the camera bounds for (Player group(Counter)) to (Region((X of CameraFocus), (Y of CameraFocus), ((X of CameraFocus) + 0.01), ((Y of CameraFocus) + 0.01))) (Do Not adjust the minimap)
                   Else
Tom „Niebieski” Piddock
źródło