Как выделить множество объектов ue4
UEngine.Ru
Русскоязычное сообщество Unreal Engine 4
Выделение объектов
Выделение объектов — важная часть процесса создания уровней и сцен. Возможность быстрого и простого выделения увеличивает продуктивность и скорость создания и дизайна карт.
Есть несколько способов выделения объект или группу объектов.
Простое выделение
Наиболее простой способ выделить объект — нажать на него левой кнопкой мыши во Вьюпорте. Нажатие на объект отменит ранее выделенные объекты и выделит текущий. Если зажать Ctrl при нажатии на объект, он будет удален из выделенной группы.
Что бы выделить несколько объектов, нужно зажать Shift и начать выделять.
Этот способ хорош для выделения малого количество объектов или нескольких отдельных, разбросанных по карте, но он может быть медленным или вовсе бесполезным при выделении больших количеств объектов.
Когда вы выделяете несколько объектов, вы можете как перемещать их по карте группой, так и менять свойства всей выделенной группы одновременно в панели Details.
Когда у вас выделено два или более объекта, вы можете создать из них Группу для более простой и удобной манипуляции ими.
Выделение через Outliner
Scene Outliner это панель редактора, включающая в себя список всех объектов, размещенных на карте. Вы можете выделить или отменить выделение отдельного объекта в списке тем же самым способом, что и во Вьюпорте. Вдобавок, вы можете выбрать список объектов, нажав на один объект в начале, зажав Shift, и нажав другой объект в конце списка, тем самым выделив все, находящиеся между ними по списку в Outliner’е.
Выделение объекта в Scene Outliner так же выделяет его во Вьюпорте.
Прямоугольное выделение
Прямоугольное выделение — быстрый способ выделить или отменить выделение нескольких объектов на ортографическом экране уровня. Он требует зажатия определенных клавиш и движения мышкой для создания «коробки». Все объекты, находящиеся в этой «коробке» будут выделены или наоборот, в зависимости от комбинации нажатых клавиш, сняты с выделения.
Левая кнопка мыши (далее — ЛКМ) | Выделяет объекты в переделах «коробки». При этом выделение на других объектах снимается. |
Shift + ЛКМ | Добавляет объекты в «коробке» к уже выделенным объектам. |
Ctrl + ALT + ЛКМ | Снимает выделение с объектов в «коробке». Выделенные объекты вне «коробки» остаются выделенными. |
Дополнительные способы выделения
Вы можете выделять объекты, которые имеют некоторые общие свойства, такие как класс, тип, материал. Чтобы видеть возможности выделения нажмите правой кнопкой мыши (ПКМ) на выделенный объект, войдите в подменю Select, и вы увидите список возможностей в контекстном меню.
Возможности различаются в зависимости от того, что вы выделили. К примеру, если у вас выделен СтатикМеш, то вы увидите опции отличные от, например, Блупринта.
К тому же, в подменю Select вам так же доступны следующие действия с родственными по свойствам экторами:
Горячие клавиши Unreal Engine, которые сделают жизнь левел-дизайнера проще
Горячие клавиши используют все. Банальные Ctrl+C и Ctrl+V, а сколько раз выручал Ctrl+Z? Ну а Alt+F4? А если вспомнить количество негативных отзывов, когда в новых MacBook Pro добавили тачбар и вырезали ряд командных клавиш?
Увидел хороший гайд по полезным хоткеям и небольшим советам в Unreal Engine, которые точно упростят левел-дизайнерам жизнь. Перевод под катом.
Меня зовут Якуб Пандер. Я гейм- и левел-дизайнер в Carbon Studio, где мы создаем VR-игры практически для всех возможных платформ. В этой статье я поделюсь тем, чему научился за три года работы с Unreal Engine 4 и расскажу, как оптимизировать воркфлоу дизайнера с помощью горячих клавиш и других полезных приемов.
Идея для статьи возникла, когда я начал писать фоллоу-апы своим ученикам, которые создавали прототипы своих самых первых уровней на Unreal Engine. Из-за недостатка опыта некоторые из них боролись с базовыми действиями и задавали: «Как разместить блоки в pixel perfect grid», «Могу ли я переместить половину уровня чуть выше», «Нужно ли мне копировать этот элемент по частям» и другие. С самого начала своего знакомства с Unreal я старался найти любую свободу действий, которая помогла бы мне более эффективно выполнять самые элементарные задачи. В процессе поиска каждый полезный шорткат или подсказка попадал в мой виртуальный блокнот, который рос в течение нескольких месяцев.
Я разделил шорткаты на две категории: Базовые и Расширенные. Базовые будут полезны для всех, кто начинает работать с UE4, и для тех, кто уже имеет небольшой опыт. Расширенные подойдут тем, кто хочет использовать UE4 более эффективно.
Комбинации клавиш можно изменить или добавить самостоятельно: Edit > Editor Preferences > Keyboard Shortcuts.
Горячие клавиши
Выбор (Selection)
Выбор, группировка и расположение ассетов (в основном мешей) — основные инструменты, которые облегчат вашу работу. Дальше самые полезные команды.
Также в меню ПКМ > Select находится много полезных опций, благодаря которым можно сразу выбрать объекты, подходящие определенным критериям (выбрать аналогичные, выбрать с таким же материалом, инвертировать выбранное и другое).
Хотите выбрать все блюпринты дверей и ничего больше? Можно. Могу ли я выбрать все с помощью материала M_SelectMe? Конечно. Но я хочу выбрать все, кроме блюпринтов дверей! Без проблем. Делайте так:
Преобразование (Transform)
Преобразование — это хлеб и масло левел-дизайна в UE4. Если вы освоите это, то можете ускорить работу на 200 процентов.
В этом примере мне нужно переместить объект влево, но не влево от мира, а влево от объектов. Это удобно, когда вращение объекта (или всего остального) не связано с окружающим миром.
Этот стул должен стоять на полу, верно? Не нужно вручную перемещать его. Просто нажмите End и все готово.
Если стул с чем-то пересекается, то End его может не опустить. В таком случае поможет команда Shift + End, которая опускает объект не по якорной точке, а по нижней границе. Вы можете найти другие полезные функции привязки: ПКМ > Transform > Snap/Align.
Помните о правильном масштабе объектов, чтобы их можно было правильно расположить.
Иногда разместить объект может быть сложно, даже если его ось находится в правильном месте. Тогда почему бы нам не переместить ось? Мы можем поместить ее туда, куда только что нажали (Alt + СКМ) или туда, куда хотим, перетащив его с помощью СКМ. Также можно снаппить ось к вертексам, что очень полезно для модулярки (V + СКМ).
Прикрепление Actor будет полезным в нескольких ситуациях. Просто помните, что оба объекта должны иметь одинаковую настройку Mobility (static/moveable). Это не обязательно. Но может возникнуть проблема, если попытаться подвинуть мобильный объект уже в игре, к которому привязан статичный объект.
Ориентация (Orientation)
Здесь я опишу некоторые ориентационные методы, которые пригодятся при осмотре, редактировании и демонстрации ваших уровней.
Нашли или выбрали объект внутри world outliner, и думаете, что он так далеко, что прокручивать до него придется дольше нескольких секунд? Нажмите F. Вы сфокусируетесь на выбранном объекте и немедленно переместите камеру поближе.
Нажатие G скрывает все полезные инструменты в области просмотра (сетки, повороты, контуры, значки и многое другое). Идеально подходит, чтобы увидеть чистый игровой уровень.
Вы построили огромный уровень, в котором перемещение от начала до конца занимает больше времени, чем хотелось бы. Сделайте этот процесс проще и разместите несколько чекпоинтов с помощью Ctrl + 1-9 и возвращайтесь к ним через 1-9. Например, Ctrl + 1 можно поставить в начале уровня, 2-8 будут важными местами, а 9 будет концом.
Совет: Shift + F11 вызывает редактор поверх панели задач.
Пригодятся абсолютно в разных ситуациях.
В проектах, использующих навигацию Unreal, важно заметить, могут ли какие-либо объекты на уровне заблокировать путь ИИ или игроков.
Если вам нужна архитектурная точность при создании уровней, то взгляд с различных перспектив может помочь. Ещё можно назначить «пробел» на максимизацию и минимизацию вьюпортов — в настройках хоткеев называется Maximize Viewport. Это очень полезно и удобно, когда занимаешься левел-дизайном.
Для меня этот трюк оказался наиболее полезным, когда я хотел поместить камеру в нужное место. Привязка выбранного объекта к камере изменяет не только его местоположение, но и вращение. Поэтому камера будет указывать именно туда, куда вы смотрите в области просмотра.
Другие
Вот несколько горячих клавиш, которые не подходят в предыдущие разделы. Но они тоже весьма полезны.
Если у вас много открытых вкладок (материалов, мешей, блюпринтов и т.д.), вы можете перелистывать их с помощью клавиши Ctrl.
Заключение
Эти хоткеи — малая часть возможных способов оптимизации и организации воркфлоу в Unreal Engine, попробуйте. Помните, что всегда можно изменить клавиши в Edit > Editor Preferences > Keyboard Shortcuts. И не забудьте экспортировать их в качестве бэкапа для следующих проектов.
Большинство горячих клавиш появляются из-за вопроса: «Я делаю (определенные действия) так часто, можно ли сделать это удобнее?»
Выделение контура у объекта в UE4
В этой статье я расскажу, как создать в UE4 выделение контура. Как правило, разработчики используются для этого двумя разными способами:
В этой статье я расскажу о втором методе, т.к. он легче интегрируется в уже существующие проекты. Данное руководство написано с учетом того, что вы знакомы с основами UE4 (в частности, с тем, как работает редактор материалов). Кроме того, чтобы было понятно, как реализовать алгоритм распознавания контура в виде UE4-материала, также пригодятся базовые знания в области обработки изображений.
Основные шаги
Реализация эффекта выделения контура в виде материала пост-обработки проходит в несколько этапов:
Ниже я подробнее объясню каждый из этих шагов. Если вы здесь лишь затем, чтобы скачать материал, можете сразу перейти к разделу «Загрузки», который находится в самом конце статьи.
Карта глубины
В UE4 есть отличная функция, позволяющая рендерить отдельные сетки в отдельную карту глубины, а затем использовать ее в материалах. Эта карта глубины содержит информацию о дистанции между каждым пикселем – и в мировых координатах, и в поле зрения камеры. Типичная карта глубины выглядит примерно так:
Наша карта глубины выглядит похожим образом, за исключением того, что в ней видны лишь объекты, у которых включен параметр «Render Custom Depth»:
Карта глубины заметно упрощает применение эффектов вроде выделения контура, созданию которого и посвящена эта статья.
Создание материала
Самый сложный этап. Мы создадим материал, в котором будет реализован оператор Собеля, свернутый с кастомной картой глубины. Другими словами, мы применим на кастомную карту глубины фильтр распознавания контура.
Начнем с алгоритма свертки. В его основе лежит довольно мудреная математика, но на самом деле все сводится к нескольким простым шагам
Сначала нужно задействовать карту глубины. Делается это просто: добавьте нод Scene Texture и подключите его к Emissive Color материала. Также выставьте настройку Scene Texture ID на CustomDepth.
Теперь давайте задействуем прилегающие пиксели. Для этого можно использовать параметр UVs в ноде Scene Texture. Но проблема в том, что UV-параметры работают в текстурных координатах, т.е. используют значения от «0,0» (левый верхний угол текстуры) до «1,1» (правый нижний угол текстуры). Поэтому нам нужно взять инвертированные значения высоты и ширины текстуры, умножить их на смещение от центра ячейки (-1,-1), а затем прибавить к UV-координатам текущего пикселя. Таким образом мы выберем левый верхний пиксель.
В редакторе материалов это будет выглядеть следующим образом:
Теперь делаем то же самое для оставшихся семи прилегающих пикселей. В итоге расчет смещения для всех восьми прилегающих пикселей будет выглядеть следующим образом:
Итак, у нас есть набор UV-параметров для всех прилегающих пикселей, поэтому теперь можно задействовать данные из кастомной карты глубины. Я создал для этого простую функцию материала: в качестве входных параметров она принимает UV-координаты, а затем возвращает значение обработанного пикселя.
Если воспользоваться этой функцией для обработки данных от прилегающих пикселей, то у нас, собственно, будут все необходимые данные для распознавания контура. Теперь давайте создадим еще одну функцию материала, которая будет выполнять свертку.
С левой стороны – два набора входных параметров. Первые 9 векторов – это просто значения пикселей, которые мы будем обрабатывать. Другие 3 вектора служат для значений ядра свертки. По сути, это просто матрица 3х3, но поскольку в редакторе материалов UE4 нет типа данных для матрицы, я сделал собственную при помощи параметров Vector3.
Итак мы собрали все кусочки алгоритма. Теперь осталось лишь объединить их внутри итогового материала.
В операторе Собеля, по сути, задействованы две функции свертки: вертикальная и горизонтальная. Вы, вероятно, заметили, что единственная разница между ними – это входные данные о ядре свертки.
Теперь давайте объединим два этих значения.
Далее открываем редактор материалов, при помощи рассчитанных значений создаем вектор, а затем возвращаем длину вектора. Результатом будет черное изображение с контуром вокруг сеток, у которых включен параметр Render Custom Depth. Осталось лишь смешать полученный эффект с финальной картинкой. В моем случае будет использоваться оператор «IF», но вы можете встроить алгоритм и по-своему. Ничего сложного в этом нет.
ПРИМЕЧАНИЕ: Убедитесь, что ваш материал находится в домене Post Process, а не Surface (имеется в виду «material domain»; это параметр, через который настраивается, для чего будет использоваться материал). Это можно поменять в свойствах материала.
Настройка сцены
Теперь, когда материал готов, нам нужно добавить его в список пост-обработочных эффектов сцены. Выберите у своей сцены блок Post Process Volume и найдите пункт Blendables. Добавьте в список Blendables новый компонент, а затем выберите из списка созданный нами материал. Если блока пост-обработки в вашей сцене нет, создайте его. Также убедитесь, что у блока Post Process свойство Unbound выставлено на «true». В противном случае игрок будет видеть эффект строки только в том случае, если будет находиться внутри блока Post Process Volume.
Чтобы проверить результат, поместите в сцену какую-нибудь сетку и включите у нее параметр Render Custom Depth.
Блюпринт
Я настроил сцену таким образом, что эффект строки будет появляться у статической сетки только в том случае, если игрок наведет на нее прицел. Я решил воспользоваться шаблоном для FPS. Кроме того, я добавил в блюпринт MyCharacter функцию Trace. Она вызывается таймером, тикающим каждые 0,1 секунды, и проверяет, смотрит ли игрок на статичную сетку. Если смотрит, параметр Render Custom Depth выставляется на «true». Если игрок перестает целиться в сетку, значение в переменной Render Custom Depth меняется на «false». Посмотреть, как это все работает, можно в файле, ссылку на который можно найти ниже, в разделе «Загрузки».
Итого
Итак, это руководство рассказало о простом и легко интегрируемом методе для создания у объектов эффекта выделения контура. Впрочем, этот метод можно использовать и для других задач. В зависимости от используемого ядра свертки мы можем создать эффекты вроде размытия, тиснения, резкости и т.д. Более подробно читайте тут.
Демонстрационное видео
Горячие клавиши в UE4 для дизайнера
Всем привет, меня зовут Якуб Пандер. Я гейм и левел дизайнер в Carbon Studio, мы создаем VR игры для различных платформ. Сегодня я бы хотел поделиться с вами всем тем, что я узнал за три года изучения Unreal Engine 4. Поговорим о том, как дизайнеру оптимизировать рабочий процесс при помощи горячих клавиш и прочих удобных фишек. Идея создания этой статьи возникла, когда я писал e-mail своим студентам, в то время как они еще только начинали разрабатывать прототипы своих самых первых уровней. Из-за отсутствия опыта некоторые из них столкнулись с трудностями в самых базовых вещах и задавали вопросы типа: «Как расположить блоки в идеальной пиксельной сетке?», «Как мне перенести половину уровня немного выше?», «Мне правда нужно копировать этот временный элемент по частям?» и многие подобные. С самого начала моего знакомства с Unreal я пытался найти хоть что-нибудь, что помогло бы мне эффективно выполнять самые базовые задачи. Поэтому, за многие месяцы, у меня накопилось некоторое количество полезных горячих клавиш и подсказок.
Я выделил две категории — Базовые и Продвинутые горячие клавиши. В Базовой категории будут материалы для тех, кто только начинает или имеет небольшой опыт работы с UE4. Продвинутая категория предназначена для тех, кто уже знаком с UE4 и неплохо в нем разбирается, но хочет улучшить навыки.
Горячие клавиши
Выделение (Selection):
Выделение, группирование, организация ассетов (в основном мешей) — самые базовые инструменты для облегчения рабочего процесса. Вот, на мой взгляд, самые полезные команды:
Базовые:
Она позволяет формировать ассеты в группы для дальнейшего использования или упорядочивать части уровня.
Unlock позволяет перемещать или удалять отдельные ассеты. Lock — снова объединяет ассеты вместе.
Забыли на каком уровне находится ваш ассет? Просто нажмите [M] и движок сделает активным тот уровень, на котором находится выбранный объект.
Наверняка многие уже знакомы с этой комбинацией, и она может показаться здесь не к месту, но попробуйте сперва скрыть лишний ассет, а затем нажать Ctrl + A. Это также очень удобно в сочетании с Select by class (Выделить все объекты класса [Ctrl + Shift + A] ).
Продвинутые:
Хотите выделить только блупринты дверей и ничего больше? Пожалуйста. Можно ли выделить все с помощью материала “M_SelectMe”? Конечно. Но я хочу выделить все, кроме блупринтов дверей! Без проблем.
Эта команда будет полезной в определенных случаях, когда вы хотите выделить больше объектов с общими элементами (это может быть тот же блупринт, может использоваться тот же материал и т.д.).
Трансформирование (Transform):
Transform — основа левел дизайна в UE4. Освоив его, вы будете работать на 200% быстрее!
Базовые:
Поскольку вы, как левел дизайнер, постоянно будете переключаться (каждые несколько секунд) между перемещением [W], вращением [E] и масштабированием [R] объекта, нет смысла менять эти горячие клавиши на какие-либо другие. Лучше всего использовать стандартную комбинацию [W/E/R] или [SPACE].
В данном примере мне нужно переместить объект влево, но не по отношению к миру, а по отношению к самому объекту, к его локальным координатам. Это очень удобно, когда вращение объекта (или чего-то еще) совершается не по отношению к миру.
На русской клавиатуре движок думает, что апостроф — это буква «Э», поэтому стандартная комбинация горячих клавиш не работает, в настройках вы можете назначить свою комбинацию. Editor Preferences > Keyboard Shortcuts > Common Viewport Commands > Cycle Transform Coordinate System.
Продвинутые:
Хотите построить идеальный пиксельный лабиринт? Вам нужно сделать следующее:
Учитывайте правильный масштаб объектов, чтобы верно их расположить.
Иногда размещение объекта может вызвать сложности, даже если его пивот расположен в правильном месте. Почему бы нам не поместить его в другое место? Например, мы могли бы разместить пивот там, где мы только что кликнули мышью [Alt+Middle Mouse Button] или поместить его куда захотим, перетащив средней кнопкой мыши.
Перемещение объекта в определенное расстояние, например на 165 единиц, может быть выполнено путем изменения значения на вкладке Details, но что, если объект уже повернут на две оси? С помощью World/Local Transformation мы знаем, что можем переместить его в нужном направлении, но как это сделать, не меняя значение трансформации по нескольку раз? Создайте горячую клавишу, которая увеличивает и уменьшает значение трансформации.
Привязка актера может быть полезной в некоторых случаях, вы потом сами поймете, где лучше это применить, после того как вообще разберетесь с этим процессом. Просто помните о том, что у обоих объектов должны быть одинаковые настройки мобильности (static/moveable).
Ориентация:
Здесь я опишу некоторые приемы ориентации, которые помогут вам при проверке, редактировании и демонстрации ваших уровней.
Базовые:
Это просто. Нажатие клавиши [G] скрывает все полезные инструменты на экране (сетки, пивоты, контуры, значки и многое другое). Позволяет увидеть уровень таким, каким он будет выглядеть в игре.
Вы создали фантастический, огромный уровень, прохождение которого от начала до конца занимает гораздо больше времени, чем кто-то хотел бы на него потратить. Сделать этот процесс проще для всех (включая себя) можно создав “контрольные точки” в самых значимых областях. Например, [Ctrl + 1] можно установить на начало уровня. 2-8 могут быть другими важными точками в процессе прохождения уровня, и, наконец, 9 должна быть в конце. Это сделает передвижение по уровню намного проще.
Уровень будет воспроизводиться, тестироваться, демонстрироваться и проверяться в полноэкранном режиме гораздо лучше, поверьте мне!
Дополнительный совет: [ Shift + F11] — редактор перекроет панель задач.
Продвинутые:
Вы когда-нибудь оказывались в ситуации, когда хотите нажать на меш в окне просмотра, но случайно выбираете что-то другое вместо него? Или, может быть, вы хотите щелкнуть на определенный полупрозрачный меш, но курсор выбирает объект за ним? Все дело в Translucent Selection! С помощью [T] можно включать и выключать выбор прозрачных объектов. Теперь вы можете щелкнуть на стекло, воду, божественные лучи (God Rays) и другие полупрозрачные объекты.
Это будет очень полезно в различных ситуациях, поэтому неплохо было бы побольше о этом узнать.
В проектах, где используется навигация Unreal, важно знать, что ни один объект не блокирует путь AI или игрока.
Если вам необходима идеальная точность при построении уровня, эти различные перспективы могут быть для вас полезны.
Этот совет оказался для меня особенно полезным, когда я хотел разместить камеру на сцене в то место, куда в данный момент смотрел. Привязка выбранного объекта к камере изменяет не только его местоположение, но и вращение, поэтому вышеуказанная камера будет смотреть именно туда, куда вы смотрели во вьюпорте.
Прочее:
Также я нашел для вас еще несколько горячих клавиш, которые не совсем соответствуют первым трем категориям, описанным выше, но тоже очень полезны.
Я много раз наблюдал за тем, как мои коллеги ищут ассет в контент браузере, а затем возникает еще одна проблема — кликнуть на нем дважды. Вам просто нужно щелкнуть два раза на изображение/иконку материала/меша/текстуры и необходимость искать все это в контент браузере отпадет.
К теме о контент браузере, эта горячая клавиша пригодится для поиска выбранного ассета и папки, где он находится.
Здесь нет комбинации горячих клавиш по умолчанию, но я предлагаю создать свою собственную в настройках редактора. Это позволит вам автоматически искать выбранный объект на Level Blueprint и видеть его референсы.
Как и в вышеуказанном примере, эта комбинация позволяет быстро и легко открывать уровни.
Проверьте референсы к другим блупринтам, уровням, материалам и т.д. Эта комбинация быстро найдет все взаимодействия с выбранным ассетом.