Как я могу внедрить камеру от третьего лица в карту SC2?

8

Я хочу попробовать создать пользовательскую карту Starcraft 2 с камерой от третьего лица, следующей за отрядом. Уже существует несколько пользовательских карт с этой функцией, поэтому я знаю, что это возможно.

Как мне это сделать? Нужен ли мне файл пользовательских модов, или все можно сделать в файле карты?

Ник Ваккаро
источник
2
sc2mapster.com/maps/tpsfps_battle_rts Я думаю, что это может помочь. Это ссылка на сайт для одной из самых популярных карт, которые имеют эту функцию. Я думаю, что у них есть как на сайте.
McAzzaMan
Обращение к автору пользовательской карты, которая делает это, вероятно, было бы самым простым способом узнать, как ..
Яри ​​Комппа
Этот вопрос кажется не по теме, потому что он касается моддинга конкретной игры, и через три года на него вряд ли ответят.
Яри ​​Комппа
@Jari Я думаю, что это должно остаться открытым, пока моддинг игры обсуждается здесь, а у SC2 есть активное сообщество. SC2: Сердце Роя расширения является всего лишь год назад.
Анко
@ Анко согласен; SC2 и его моды далеко не устарели. Кроме того, этот вопрос имеет узкую сферу применения и его вполне можно решить.
Сет Баттин

Ответы:

1

Информация, представленная ниже, взята с http://www.staredit.net/starcraft2/Third_Person_Camera, где вы можете узнать больше о таких вещах, как триггеры WASD и несколько вариантов камеры, но основы для настройки от третьего лица здесь:

Настройка объекта камеры

Под кнопкой «Создать камеру» вы увидите белое поле со значением «Камера 001», щелкните его правой кнопкой мыши и нажмите «Изменить свойства». Задайте следующие значения (Имя - Подзначение - (Описание)):

  • Угол - Поле зрения - 27.996 - (Ширина обзора. Это будет угол обзора 28 градусов с левой стороны экрана вправо) Угол поворота - 0,0 - (Как далеко повернуть камеру слева направо . Думаю бочка катится.)
  • Глубина резкости - Количество - 0.0 - (Неизвестно, не стесняйтесь обновлять статью в вики, если вам известна какая-либо информация об этом значении)
  • Глубина резкости - Глубина - 8,0 - (Как далеко видит камера)
  • Глубина резкости - Конец - 8,0 - (Конечная позиция обзора с точки зрения камеры)
  • Глубина резкости - Старт - 0.0 - (Начальная позиция обзора с точки зрения камеры)
  • Расстояние - 4 - (Как далеко буквальная камера от фактического местоположения камеры. Установка этого значения в 0 приводит к FPS (шутеру от первого лица), около 4 с TPS (шутеру от третьего лица))
  • Расстояние - Дальний клип - 300,0 - (Расстояние, с которого ничто не будет визуализировано. Если что-нибудь дальше, чем это от камеры, это НЕ БУДЕТ РЕНДЕР)
  • Расстояние - около клипа - .1 - (Расстояние, когда ничто не будет визуализировано. Если что-нибудь ближе, чем это от камеры, оно НЕ БУДЕТ РЕНДЕР)
  • Расстояние - Shadow Clip - 75,0 - (Предполагается расстояние, после которого тени не будут отображаться)
  • Цель - Шаг - 12 - (Шаг камеры. Шаг - это движение вверх / вниз)
  • Цель - X - (Неважно, это изменит каждый кадр игры)
  • Цель - Y - (не имеет значения, это изменит каждый кадр игры)
  • Цель - рыскание - 180 - (рыскание камеры. Подумайте о движении слева направо, а не о бочках)
  • Цель - Смещение по Z - 1 - (как далеко камера от земли)

Основное значение, которое нам здесь нужно, - это Расстояние - 4. Установка этого значения на 4 создаст камеру от третьего лица (хотя с другими юнитами, кроме морского, вам, возможно, придется редактировать это). 0 создаст камеру от первого лица. То же самое касается цели - смещение по оси Z - 1. Для более высокого устройства понадобится более высокое значение, чтобы немного поднять камеру.

Глобальные переменные

Требуется несколько глобальных переменных, имена и типы которых указаны ниже (Имя - Тип - Значение - (Описание)):

  • FaceOffset [8] - Реальный - 0.0 - (Где сталкиваются соответствующие юниты каждого игрока)
  • Speed ​​- Real - 0.03 - (Скорость, с которой движется юнит)
  • Юниты [8] - Юнит - [ПУСТО] - (Хранит соответствующие юниты каждого игрока)
  • PlayerA [8] - реальный - 0 - (магазины - игроки, ключ не работает)
  • PlayerS [8] - Real - 0 - (магазины - это клавиша S игроков не работает)
  • PlayerD [8] - Real - 0 - (Магазины - это клавиша D игроков вниз)
  • PlayerW [8] - Real - 0 - (Магазины - это кнопка W игроков вниз)

Настройте триггер камеры

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

Триггер обновления камеры:

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
Том Блю Пиддок
источник