Как работать с RTS Click-And-Move в 3D Space?

10

Как я могу справиться с щелчком и перемещением в полном трехмерном пространстве? На двумерной плоскости легко работать с помощью простого лучевого вещания, но в трехмерном случае это не так, поскольку у лучевого вещания нет конечной плоскости, чтобы получить конечную точку.

Я имею в виду две идеи:

  1. Сделайте raycast, затем позвольте игроку выбрать расстояние на луче с помощью другого входа (например, оболочки мыши).
  2. Вместо полного 3D, используйте несколько «слоев высоты», чтобы игрок мог изменить слой высоты, прежде чем упорядочить ход.

Что ты думаешь?

С. Тарык Четин
источник

Ответы:

4

Разрыв движения в два этапа - устаревший подход.

Движение мыши по горизонтальной плоскости. Колесо мыши для вертикальной плоскости.

Homeworld отлично поработал, но колесики мыши еще не были так широко развернуты, поэтому они не пошли на это.

У вас все еще могут быть клавиши-модификаторы для переключения движения мыши между режимами, но перемещение мыши и прокрутка могут выполняться одновременно, поэтому это наиболее эффективный метод для оборудования. В домашнем мире вы устанавливаете самолеты в последовательности один за другим, что замедляет вас. Не говоря уже о том, что вы только замедлили движение к пустому пространству. Переезд на объект автоматизирован по траектории.

Другие способы сделать это одновременно - это две руки на клавиатуре или двойное управление.

Если ваша плавность движений зависит от скорости, выполнение и дополнительный шаг могут убить ваш поток. Homeworld подходит для его системы, потому что не имеет значения, тратите ли вы лишнюю секунду или две на выдачу приказа о перемещении, и вы можете быть уверены, что они учитывали это соображение, когда строили ритм.

PS Масштабирование размещения:

Если масштабирование не является центральной механикой, и вам не нужно сохранять его максимально устойчивым, его можно выгружать.

Работайте с зуммированием так же, как в оригинальной игре «Черно-белые». Масштабирование движением мыши + удержание кнопки мыши (где кнопка - просто модификатор функции между перемещением карты и масштабированием карты). Все геймеры, с которыми я работал, соглашаются, что это «лучший» зум. Я бы порекомендовал держать и мышь 1, и мышь 2 в режиме масштабирования (точно так же, как в черно-белом режиме), но технически одного из них было бы достаточно, если у вас нет конфликта.

Я часто рекомендовал людям установить игру, чтобы попробовать. Добавьте удобство использования клавиатуры и ее наиболее полезную и удобную механику на сегодняшний день, которую я когда-либо видел для навигации по большой карте.

Теперь это, конечно, не обычное значение по умолчанию, и вам, черт побери, нужно убедиться, что это объяснено вашим пользователям хотя бы несколько раз. Но как только люди получают это, им это очень удобно. Кроме того, вы учите людей навигации в 3D. Вы обязаны выйти из зоны комфорта 2d управления в любом случае.

Если ваша мышь слишком перегружена элементами управления, вы всегда можете использовать клавишу-модификатор клавиатуры или среднюю кнопку мыши. Оптимальная конфигурация будет зависеть от вашего игрового процесса.

helena4
источник
Этот ответ на самом деле лучше подходит для этого сценария. Но как мне справиться с масштабированием, если я использую mousewhell для этой цели? Было бы слишком неудобно обрабатывать масштабирование с помощью клавиатуры.
С. Тарык Четин
@ S.TarıkÇetin обновлен.
helena4
9

Разбейте движение на два шага

  1. Выберите позицию на плоскости 2D X / Z, расположенную в текущей позиции Y объекта.
  2. Установите смещение (вверх или вниз) от этой плоскости.

Это похоже на то, как Homeworld , одна из первых трехмерных космических RTS-игр, работала с движением. Работает действительно хорошо.

Разбиение движения на два шага обеспечивает максимальный контроль, просто потому, что мышь является устройством ввода 2D. Это может обеспечить только положение на одной плоскости за один раз. То же самое может быть достигнуто путем связывания двух клавиш на клавиатуре, чтобы они были вверх / вниз по оси Y.

Кроме того, вы можете использовать правую кнопку мыши для переключения режима. Например, щелчок левой кнопкой мыши запускает команду перемещения и перемещает цель в плоскости X / Z, удерживая правую кнопку мыши, чтобы изменить положение оси Y.

введите описание изображения здесь

MichaelHouse
источник
Пока что это кажется наиболее логичным вариантом. Я буду ждать, хотя, если кто-то придумает лучшую идею.
С. Тарык Четин
2

Делайте то, что делает EVE онлайн: не позволяйте щелкать и двигаться! Запись

Что они делают, так это то, что они создают объекты в пространстве и позволяют вам щелкнуть по ним правой кнопкой мыши (raycast или что-то не так) и выбрать один из различных вариантов:

  • Перейти к объекту (с разными скоростями)
  • Поворот вокруг объекта (на разных радиусах)

Это позволяет вам перемещаться только в соответствующие места.


Примечание (хотя, возможно, они изменились в последнее время. Некоторое время не играли.)

Vaillancourt
источник
Да, это решает проблему, но также уничтожает тот аспект игры, который создает эту проблему в первую очередь.
С. Тарык Четин
@ S.TarıkÇetin Да! Возможно, в их случае это было самым логичным. И, возможно, это не относится к вашей ситуации.
Vaillancourt
Из того, что я помню, ты мог нажать, чтобы перейти в Еву. Это было больше
похоже
В Еве есть средства управления клавиатурой, которые вы можете использовать для управления своим кораблем, но при этом вы ограничены тактическими скоростями (например, полет с космической станции, которая находится на орбите вокруг Планеты X, к спутнику, который также вращается вокруг Планеты X, может занять минута или две; полет на Луну Планеты X с помощью ручного управления займет не менее 5 минут). Скоростное путешествие может быть начато только путем выбора пункта назначения.
Дэн Хендерсон
3
На этом основывается метод уклонения от преследования - начать полет к удаленной цели, остановиться на полпути, затем выбрать новую цель в другом направлении и снова остановиться на полпути. Удалите «закладку» в этом изолированном месте, и тогда вы сможете лететь к этой закладке, когда вас атакуют, и ваши преследователи не смогут летать на высокой скорости в том же направлении.
Дэн Хендерсон