28/02/2020

Горячие клавиши в UE4 для дизайнера

Всем привет, меня зовут Якуб Пандер. Я гейм и левел дизайнер в Carbon Studio, мы создаем VR игры для различных платформ. Сегодня я бы хотел поделиться с вами всем тем, что я узнал за три года изучения Unreal Engine 4. Поговорим о том, как дизайнеру оптимизировать рабочий процесс при помощи горячих клавиш и прочих удобных фишек. Идея создания этой статьи возникла, когда я писал e-mail своим студентам, в то время как они еще только начинали разрабатывать прототипы своих самых первых уровней. Из-за отсутствия опыта некоторые из них столкнулись с трудностями в самых базовых вещах и задавали вопросы типа: "Как расположить блоки в идеальной пиксельной сетке?", "Как мне перенести половину уровня немного выше?", "Мне правда нужно копировать этот временный элемент по частям?" и многие подобные. С самого начала моего знакомства с Unreal я пытался найти хоть что-нибудь, что помогло бы мне эффективно выполнять самые базовые задачи. Поэтому, за многие месяцы, у меня накопилось некоторое количество полезных горячих клавиш и подсказок. 

Я выделил две категории — Базовые и Продвинутые горячие клавиши. В Базовой категории будут материалы для тех, кто только начинает или имеет небольшой опыт работы с UE4. Продвинутая категория предназначена для тех, кто уже знаком с UE4 и неплохо в нем разбирается, но хочет улучшить навыки. 

Горячие клавиши

Выделение (Selection):

Выделение, группирование, организация ассетов (в основном мешей) — самые базовые инструменты для облегчения рабочего процесса. Вот, на мой взгляд, самые полезные команды:

Базовые:

  • Группирование (Group & Ungroup) [Ctrl +G / Shift + G]

Она позволяет формировать ассеты в группы для дальнейшего использования или упорядочивать части уровня.

  • Unlock & Lock (RMB -> Group)

Unlock позволяет перемещать или удалять отдельные ассеты. Lock — снова объединяет ассеты вместе.

  • Сделать уровень объекта активным (Make Current Level) [M]

 Забыли на каком уровне находится ваш ассет? Просто нажмите [M] и движок сделает активным тот уровень, на котором находится выбранный объект.

  • Выделить все (Select All) [Ctrl + A]

Наверняка многие уже знакомы с этой комбинацией, и она может показаться здесь не к месту, но попробуйте сперва скрыть лишний ассет, а затем нажать Ctrl + A. Это также очень удобно в сочетании с Select by class (Выделить все объекты класса [Ctrl + Shift + A]).

Продвинутые:

  • Выделить все объекты класса и инвертировать выделение (Select by class & Invert selection) [RMB -> Select -> Select Matching (Selected Class)] 

Хотите выделить только блупринты дверей и ничего больше? Пожалуйста. Можно ли выделить все с помощью материала “M_SelectMe”? Конечно. Но я хочу выделить все, кроме блупринтов дверей! Без проблем.

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

Трансформирование (Transform):

Transform — основа левел дизайна в UE4. Освоив его, вы будете работать на 200% быстрее! 

Базовые:

  • Переключение режимов трансформирования (Cycle transform) [SPACE] & [W/E/R] 

Поскольку вы, как левел дизайнер, постоянно будете переключаться (каждые несколько секунд) между перемещением [W], вращением [E] и масштабированием [R] объекта, нет смысла менять эти горячие клавиши на какие-либо другие. Лучше всего использовать стандартную комбинацию [W/E/R] или [SPACE].

  • Мировая/Локальная трансформация (World/Local Transformation) [CTRL+’] 

В данном примере мне нужно переместить объект влево, но не по отношению к миру, а по отношению к самому объекту, к его локальным координатам. Это очень удобно, когда вращение объекта (или чего-то еще) совершается не по отношению к миру. 

На русской клавиатуре движок думает, что апостроф — это буква "Э", поэтому стандартная комбинация горячих клавиш не работает, в настройках вы можете назначить свою комбинацию. Editor Preferences > Keyboard Shortcuts > Common Viewport Commands > Cycle Transform Coordinate System.

  • Привязка к полу (Snap to floor) [END]

Этот куб должен стоять на земле, верно? Но не стоит подгонять его к полу вручную, достаточно просто нажать [END] и все будет сделано (но при условии, что коллизия пола и куба настроены верно). Также вы можете найти в этом разделе другие полезные функции привязки: [RMB -> Transform -> Snap/Align].

Продвинутые:

  • Привязка к сетке (Snap Origin to grid) [Ctrl+END]

Хотите построить идеальный пиксельный лабиринт? Вам нужно сделать следующее:

Учитывайте правильный масштаб объектов, чтобы верно их расположить. 

  • Изменение расположения пивота (Set pivot position) [RMB -> pivot -> Set pivot offset here]

Иногда размещение объекта может вызвать сложности, даже если его пивот расположен в правильном месте. Почему бы нам не поместить его в другое место? Например, мы могли бы разместить пивот там, где мы только что кликнули мышью [Alt+Middle Mouse Button] или поместить его куда захотим, перетащив средней кнопкой мыши.

  • Изменить значение трансформации (Increase transform value)

Перемещение объекта в определенное расстояние, например на 165 единиц, может быть выполнено путем изменения значения на вкладке Details, но что, если объект уже повернут на две оси? С помощью World/Local Transformation мы знаем, что можем переместить его в нужном направлении, но как это сделать, не меняя значение трансформации по нескольку раз? Создайте горячую клавишу, которая увеличивает и уменьшает значение трансформации.

Вы также можете изменить дефолтные значения: Editor Preferences > Level Editor > Viewport > Grid Snapping.

  • Привязка актера (Attach actor) [RMB -> Attach to -> type the object’s name/select it with the picker]

Привязка актера может быть полезной в некоторых случаях, вы потом сами поймете, где лучше это применить, после того как вообще разберетесь с этим процессом. Просто помните о том, что у обоих объектов должны быть одинаковые настройки мобильности (static/moveable). 

Ориентация:

Здесь я опишу некоторые приемы ориентации, которые помогут вам при проверке, редактировании и демонстрации ваших уровней.

Базовые:

  • Фокус (Focus) [F]

Допустим, вам нужен конкретный объект в World outliner, но вы думаете, что он так далеко, что потребуется несколько секунд, чтобы до него добраться? Нажмите [F]. Если вы уже выбрали нужный объект, но каким-то образом оказались далеко от него, вы можете нажать [F] — это сфокусирует камеру на выбранном объекте и сразу же переместит туда камеру, чтобы вы могли видеть его прямо перед собой.

  • Игровой режим (Game View) [G]

Это просто. Нажатие клавиши [G] скрывает все полезные инструменты на экране (сетки, пивоты, контуры, значки и многое другое). Позволяет увидеть уровень таким, каким он будет выглядеть в игре.

  • Установить контрольную точку для камеры (Set camera) [Ctrl + 1-9]

Вы создали фантастический, огромный уровень, прохождение которого от начала до конца занимает гораздо больше времени, чем кто-то хотел бы на него потратить. Сделать этот процесс проще для всех (включая себя) можно создав “контрольные точки” в самых значимых областях. Например, [Ctrl + 1] можно установить на начало уровня. 2-8 могут быть другими важными точками в процессе прохождения уровня, и, наконец, 9 должна быть в конце. Это сделает передвижение по уровню намного проще.

  • Полноэкранный режим (Fullscreen) [F11]

Уровень будет воспроизводиться, тестироваться, демонстрироваться и проверяться в полноэкранном режиме гораздо лучше, поверьте мне!

Дополнительный совет: [Shift + F11] — редактор перекроет панель задач.

Продвинутые:

  • Выделить полупрозрачный объект (Translucent selection) [T]

Вы когда-нибудь оказывались в ситуации, когда хотите нажать на меш в окне просмотра, но случайно выбираете что-то другое вместо него? Или, может быть, вы хотите щелкнуть на определенный полупрозрачный меш, но курсор выбирает объект за ним? Все дело в Translucent Selection! С помощью [T] можно включать и выключать выбор прозрачных объектов. Теперь вы можете щелкнуть на стекло, воду, божественные лучи (God Rays) и другие полупрозрачные объекты.

  • Режимы просмотра (View Modes)

Это будет очень полезно в различных ситуациях, поэтому неплохо было бы побольше о этом узнать.

  • Отобразить навигацию (Show navigation) [P]

В проектах, где используется навигация Unreal, важно знать, что ни один объект не блокирует путь AI или игрока. 

  • Perspective/side/top/front view [Alt + G/K/H/J]

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

  • Привязка объекта к просмотру (Snap object to view and view to object)

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

Прочее:

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

  • Редактирование ассета (Edit the asset) [2x LMB по иконке]

Я много раз наблюдал за тем, как мои коллеги ищут ассет в контент браузере, а затем возникает еще одна проблема — кликнуть на нем дважды. Вам просто нужно щелкнуть два раза на изображение/иконку материала/меша/текстуры и необходимость искать все это в контент браузере отпадет. 

  • Найти ассет в контент браузере (Find asset in Content Browser) [Ctrl + B] 

К теме о контент браузере, эта горячая клавиша пригодится для поиска выбранного ассета и папки, где он находится. 

  • Найти в Level Blueprint (Find in level Blueprint)

Здесь нет комбинации горячих клавиш по умолчанию, но я предлагаю создать свою собственную в настройках редактора. Это позволит вам автоматически искать выбранный объект на Level Blueprint и видеть его референсы.

  • Play — Simulate [Alt + P/Alt + S]

Чтобы не нажимать постоянно мышью на кнопку "play", я рекомендую создать для этого свои горячие клавиши. Например, я использую [Alt + Q], чтобы запустить уровень в VR, [Alt + S] для симуляции, [Alt + P] для воспроизведения в редакторе (но не просто запустить в выбранном вьюпорте, уровень запустится в VR только если предыдущий запуск был в VR режиме).

  • Открыть уровень (Open level) [Ctrl + O]

Как и в вышеуказанном примере, эта комбинация позволяет быстро и легко открывать уровни. 

  • Show references [Alt + Shift + R]

Проверьте референсы к другим блупринтам, уровням, материалам и т.д. Эта комбинация быстро найдет все взаимодействия с выбранным ассетом. 

  • Переключение между вкладками (Tab Navigation) [Ctrl + Tab]

Если у вас множество открытых вкладок (материалы, меши, блупринты и т. д.), вы можете прокручивать их так же, как и на рабочем столе, но при нажатии клавиши Ctrl.

Заключение

Все упомянутые здесь горячие клавиши — лишь небольшая часть всевозможных способов оптимизации и организации рабочего процесса в Unreal Engine 4. Советую попробовать назначить нужные вам команды самостоятельно в [Edit > Editor Preferences > Keyboard Shortcuts]. Не забудьте сделать экспорт ваших настроек в качестве резервной копии, чтобы в дальнейшем пользоваться ими в других проектах. Также советую подумать, как и для чего вы совершаете или должны совершать то или иное действие. Большинство горячих клавиш, которые я использую, появились благодаря тому, что я задавал себе вопрос: "Я делаю (определенные действия) довольно часто, интересно, можно ли сделать этот процесс менее сложным?"

Оригинальный материал в блоге unrealengine.com

Недавние статьи

Сценарий вертикального среза

16/09/2020
Алексей Савченко на конкретном примере показывает и рассказывает, как сделать очень важный для разработки игры документ. Образец документа — прилагается.

ON AIR: обратная сторона американских отелей

15/09/2020
Один из победителей гран-при всенародного конкурса разработчиков в прошлом году — хоррор от первого лица ON AIR — решил снова испытать удачу уже на UEDC-2020.

Dash? Dash… Dash!

14/09/2020
Программист многопользовательского экшена Flea Madness рассказывает о реализации одной из задуманных фич — даш-атаки. Эволюция подходов, варианты решения, примеры кода — все, как вы любите.