¿Cómo puedo implementar una cámara en tercera persona en un mapa SC2?

8

Quiero intentar crear un mapa personalizado de Starcraft 2 con una cámara en tercera persona siguiendo una unidad. Ya existen algunos mapas personalizados con esta función, así que sé que es posible.

¿Cómo hago esto? ¿Necesito un archivo de mods personalizado o puedo hacer todo en el archivo de mapa?

Nick Vaccaro
fuente
2
sc2mapster.com/maps/tpsfps_battle_rts Creo que esto podría ayudar. Es un enlace a un sitio para uno de los mapas más populares que tienen esta característica. Creo que tienen cómo hacerlo en el sitio.
McAzzaMan
Ponerse en contacto con un autor de un mapa personalizado que haga esto probablemente sería la forma más sencilla de descubrir cómo ...
Jari Komppa
Esta pregunta parece estar fuera de tema porque se trata de modificar un juego específico y, después de tres años, es probable que no se responda.
Jari Komppa
@Jari Creo que esto debería permanecer abierto mientras el modding del juego esté en el tema aquí y SC2 tenga una comunidad activa. La expansión SC2: Heart of the Swarm tiene solo un año.
Anko
@Anko estuvo de acuerdo; SC2 y sus modificaciones están lejos de estar desactualizadas. Además, la pregunta tiene un alcance limitado y es claramente posible de lograr.
Seth Battin

Respuestas:

1

La información proporcionada a continuación es de http://www.staredit.net/starcraft2/Third_Person_Camera, donde puede encontrar más información como disparadores WASD y múltiples opciones de cámara, pero los conceptos básicos para la configuración en tercera persona están aquí:

Configurar el objeto de la cámara

Debajo del botón "Crear cámara", verá un cuadro blanco con el valor "Cámara 001", haga clic con el botón derecho y presione "Modificar propiedades". Establezca los valores en lo siguiente (Nombre - Sub - Valor - (Descripción)):

  • Ángulo - Campo de visión - 27.996 - (Qué tan ancha es la vista. Esta será una vista de 28 grados desde la izquierda de la pantalla hacia la derecha) Ángulo - Desplazamiento - 0.0 - (Qué tan lejos se debe girar la cámara de izquierda a derecha Piense en rollos de barril.)
  • Profundidad de campo - Cantidad - 0.0 - (Desconocido, no dude en actualizar el artículo wiki si conoce alguna información sobre este valor)
  • Profundidad de campo - Profundidad - 8.0 - (Qué tan lejos ve la cámara)
  • Profundidad de campo - Fin - 8.0 - (La posición final de la vista desde el punto de la cámara)
  • Profundidad de campo - Inicio - 0.0 - (La posición inicial de la vista desde el punto de la cámara)
  • Distancia - 4 - (Cuán lejos está la cámara literal de la ubicación real de la cámara. Establecer esto en 0 da como resultado un FPS (First Person Shooter), alrededor de 4 con un TPS (Third Person Shooter))
  • Distancia - Clip lejano - 300.0 - (La distancia desde la cual no se representará nada. Si algo está más lejos que esto de la cámara, NO RENDERÁ)
  • Distancia - Cerca del clip - .1 - (La distancia cuando no se renderizará nada. Si algo está más cerca que esto de la cámara, NO RENDERÁ)
  • Distancia - Clip de sombra - 75.0 - (Suponiendo la distancia después de la cual no se generarán sombras)
  • Target - Pitch - 12 - (Pitch de la cámara. Pitch es el movimiento hacia arriba / abajo)
  • Objetivo - X - (No importa, esto cambiará cada cuadro del juego)
  • Objetivo - Y - (No importa, esto cambiará cada cuadro del juego)
  • Objetivo - Guiñada - 180 - (Guiñada de la cámara. Piensa en movimientos de izquierda a derecha que no sean barriles)
  • Objetivo - Desplazamiento Z - 1 - (Qué tan lejos está la cámara del suelo)

El valor principal que necesitamos aquí es la Distancia - 4. Establecer esto en 4 creará una cámara en tercera persona (aunque con unidades que no sean marinas, es posible que deba editar esto). 0 creará una cámara en primera persona. Lo mismo ocurre con el objetivo - Desplazamiento Z - 1. Una unidad más alta necesitará un valor más alto para levantar la cámara.

Variables globales

Se necesitan algunas variables globales, cuyos nombres y tipos se indican a continuación (Nombre - Tipo - Valor - (Descripción)):

  • FaceOffset [8] - Real - 0.0 - (Donde se enfrentan las unidades respectivas de cada jugador)
  • Velocidad - Real - 0.03 - (La velocidad a la que se mueve una unidad)
  • Unidades [8] - Unidad - [VACÍO] - (Almacena las unidades respectivas de cada jugador)
  • PlayerA [8] - Real - 0 - (Las tiendas son los jugadores Una tecla está abajo)
  • PlayerS [8] - Real - 0 - (Almacena si la tecla S de los jugadores está abajo)
  • PlayerD [8] - Real - 0 - (Almacena si la tecla D de los jugadores está abajo)
  • PlayerW [8] - Real - 0 - (Tiendas es la tecla W de los jugadores está abajo)

Configurar disparador de cámara

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

Activador de actualización de cámara:

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 'Blue' Piddock
fuente