Wie kann ich eine Third-Person-Kamera in eine SC2-Karte implementieren?


8

Ich möchte versuchen, eine benutzerdefinierte Starcraft 2-Karte mit einer Third-Person-Kamera zu erstellen, die einer Einheit folgt. Es gibt bereits einige benutzerdefinierte Karten mit dieser Funktion, daher weiß ich, dass dies möglich ist.

Wie mache ich das? Benötige ich eine benutzerdefinierte Mods-Datei oder kann alles in der Map-Datei erledigt werden?


2
sc2mapster.com/maps/tpsfps_battle_rts Ich denke, das könnte helfen. Es ist ein Link zu einer Site für eine der beliebtesten Karten mit dieser Funktion. Ich denke, sie haben eine Anleitung auf der Website.
McAzzaMan

Die Kontaktaufnahme mit einem Autor einer benutzerdefinierten Karte, die dies tut, ist wahrscheinlich der einfachste Weg, um herauszufinden, wie ..
Jari Komppa

Diese Frage scheint nicht zum Thema zu gehören, da es darum geht, ein bestimmtes Spiel zu modifizieren, und nach drei Jahren ist es unwahrscheinlich, dass sie beantwortet wird.
Jari Komppa

@Jari Ich denke, dies sollte offen bleiben, solange das Modden von Spielen hier zum Thema gehört und SC2 eine aktive Community hat. Die Erweiterung SC2: Heart of the Swarm ist erst ein Jahr alt.
Anko

@ Anko einverstanden; SC2 und seine Mods sind alles andere als veraltet. Außerdem ist die Frage eng gefasst und eindeutig zu beantworten.
Seth Battin

Antworten:


1

Die folgenden Informationen stammen von http://www.staredit.net/starcraft2/Third_Person_Camera, wo Sie weitere Informationen wie WASD-Trigger und mehrere Kameraoptionen finden. Die Grundlagen für die Einrichtung der 3. Person finden Sie hier:

Einrichten des Kameraobjekts

Unter der Schaltfläche "Kamera erstellen" sehen Sie ein weißes Feld mit dem Wert "Kamera 001". Klicken Sie mit der rechten Maustaste darauf und klicken Sie auf "Eigenschaften ändern". Stellen Sie die Werte wie folgt ein (Name - Unterwert - (Beschreibung)):

  • Winkel - Sichtfeld - 27.996 - (Wie weit die Ansicht ist. Dies ist eine 28-Grad-Ansicht von links auf dem Bildschirm nach rechts.) Winkel - Roll - 0,0 - (Wie weit die Kamera von links nach rechts rollt Denken Sie an Fassrollen.)
  • Schärfentiefe - Betrag - 0,0 - (Unbekannt, Sie können den Wiki-Artikel jederzeit aktualisieren, wenn Sie Informationen zu diesem Wert kennen.)
  • Schärfentiefe - Tiefe - 8,0 - (Wie weit die Kamera sieht)
  • Schärfentiefe - Ende - 8,0 - (Die Endposition der Ansicht vom Kamerapunkt aus)
  • Schärfentiefe - Start - 0.0 - (Die Startposition der Ansicht vom Kamerapunkt aus)
  • Entfernung - 4 - (Wie weit die wörtliche Kamera vom tatsächlichen Standort der Kamera entfernt ist. Wenn Sie diesen Wert auf 0 setzen, erhalten Sie einen FPS (Ego-Shooter), etwa 4 mit einem TPS (Third-Person-Shooter).)
  • Entfernung - Fernclip - 300.0 - (Die Entfernung, aus der nichts gerendert wird. Wenn etwas weiter von der Kamera entfernt ist, wird es NICHT RENDER)
  • Entfernung - In der Nähe des Clips - .1 - (Die Entfernung, in der nichts gerendert wird. Wenn etwas näher an der Kamera liegt, wird es NICHT RENDER)
  • Abstand - Schattenclip - 75.0 - (Angenommen, der Abstand, nach dem keine Schatten mehr gerendert werden)
  • Ziel - Tonhöhe - 12 - (Tonhöhe der Kamera. Tonhöhe ist die Auf- / Abwärtsbewegung)
  • Ziel - X - (Egal, dies ändert jeden Frame des Spiels.)
  • Ziel - Y - (Egal, dies ändert jeden Frame des Spiels.)
  • Ziel - Gieren - 180 - (Gieren der Kamera. Denken Sie an eine Bewegung von links nach rechts, bei der es sich nicht um Laufrollen handelt.)
  • Ziel - Z Versatz - 1 - (Wie weit ist die Kamera vom Boden entfernt)

Der Hauptwert, den wir hier benötigen, ist die Entfernung - 4. Wenn Sie diese Einstellung auf 4 setzen, wird eine Kamera für eine dritte Person erstellt (obwohl Sie diese bei anderen Einheiten als einer Marine möglicherweise bearbeiten müssen). 0 erstellt eine First-Person-Kamera. Gleiches gilt für das Ziel - Z-Versatz - 1. Eine größere Einheit benötigt einen höheren Wert, um die Kamera etwas anzuheben.

Globale Variablen

Es werden einige globale Variablen benötigt, deren Namen und Typen unten angegeben sind (Name - Typ - Wert - (Beschreibung)):

  • FaceOffset [8] - Real - 0.0 - (Wo die jeweiligen Einheiten jedes Spielers zu sehen sind)
  • Geschwindigkeit - Real - 0,03 - (Die Geschwindigkeit, mit der sich eine Einheit bewegt)
  • Einheiten [8] - Einheit - [LEER] - (Speichert die jeweiligen Einheiten jedes Spielers)
  • SpielerA [8] - Real - 0 - (Speichert die Spieler Ein Schlüssel ist gedrückt)
  • Spieler [8] - Real - 0 - (Speichert die S-Taste des Spielers ist gedrückt)
  • PlayerD [8] - Real - 0 - (Speichert die D-Taste des Spielers ist gedrückt)
  • PlayerW [8] - Real - 0 - (Speichert die W-Taste des Spielers ist gedrückt)

Kamera-Trigger einrichten

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

Auslöser für Kamera-Update:

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.