Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
Стоянов Денис @xGromMxread-only
User
Thinking with Portals: создаём порталы в Unreal Engine 4
32 min
19KTranslation
В этой статье я расскажу, как создавать порталы в Unreal Engine 4. Я не нашёл никаких источников, подробно описывающих такую систему (наблюдение сквозь порталы и проход через них), поэтому решил написать собственную.
Что такое портал?
Давайте начнём с примеров и объяснения того, что такое портал. Проще всего описать порталы как способ прохода из одного пространство в другое. В некоторых популярных играх эта концепция используется для визуальных эффектов и даже для геймплейных механик:
Примеры порталов в играх (GIF)
Antichamber (2013 год) и Portal (2007 год)
Prey, 2006 год
Antichamber (2013 год) и Portal (2007 год)
Prey, 2006 год
Из трёх игр самой известной, вероятно, является Portal, однако лично меня всегда восхищала Prey и именно её я мечтал скопировать. Однажды я попробовал реализовать собственную версию в Unreal Engine 4, но не особо преуспел, потому что в движке не хватало функционала. Тем не менее, мне удалось провести вот такие эксперименты:
Однако только в новых версиях Unreal Engine мне наконец-то удалось добиться нужного эффекта:
+29
Дайджест свежих материалов из мира фронтенда за последнюю неделю №361 (15 — 21 апреля 2019)
3 min
12KПредлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
+25
Дайджест свежих материалов из мира фронтенда за последнюю неделю №360 (7 — 14 апреля 2019)
4 min
13KПредлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
Кстати, на днях этому дайджесту исполнилось 7 лет. Спасибо всем причастным :)
Кстати, на днях этому дайджесту исполнилось 7 лет. Спасибо всем причастным :)
+25
Дайджест свежих материалов из мира фронтенда за последнюю неделю №359 (1 — 7 апреля 2019)
3 min
12KПредлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
+30
Создаём собственный игровой контроллер
13 min
39KTranslation
Источник вдохновения
На игровых выставках разработчики Objects in Space показывали демо своей игры с контроллером на кокпите огромного космического корабля. Он был дополнен загорающимися кнопками, аналоговыми приборами, световыми индикаторами состояния, переключателями и т.д… Это сильно влияет на погружение в игру:
На сайте игры выложен туториал по Arduino с описанием коммуникационного протокола для подобных контроллеров.
Я хочу создать то же самое для своей игры
В этом примере я потрачу примерно 40 долларов, чтобы добавить красивые, большие и тяжёлые переключатели на кокпит симулятора гонок. Основные затраты связаны с этими самыми переключателями — если бы я использовал простые переключатели/кнопки, то цена была в два раза ниже! Это настоящее оборудование, способное выдерживать 240 Вт мощности, а я буду пускать по ним только примерно 0,03 Вт.
Предупреждение: я решил сэкономить, поэтому оставляю ссылку на дешёвый китайский веб-сайт, где закупаю кучу разных компонентов/инструментов. Один из недостатков покупки компонентов по дешёвке заключается в том, что часто у них нет никакой документации, поэтому в статье я решу и эту проблему.
+36
Физика игрового торнадо: как реализована аэродинамика в Just Cause 4 (трафик)
23 min
9.8KTranslation
Жак Кернер — старший инженер-разработчик ПО в Avalanche Studios.
Как будто раньше игра была недостаточно безумной
Серия игр Just Cause и Avalanche Studios известны своей технологией открытого мира, обеспечивающего разнообразный и увлекательный игровой процесс. В последней версии игры — Just Cause 4 — добавлены ветер и погодные катаклизмы, ставшие новинкой в стеке технологий, углубляющих игровой процесс. Но экстремальные природные условия изначально задумывались не просто как способ симуляции более правдоподобного мира. Ярость природы управляется силами зла, противостоящими Рико Родригесу. Мы намеревались сделать так, чтобы ветер проявлялся более явно и экстремальные погодные условия не выглядели как внезапные события, чуждые этому миру. В этой статье представлены техники, разработанные нами для реализации ветра во всех его проявлениях с физической точки зрения, а также реакции на него всех объектов.
[Под катом около 120 МБ файлов GIF]
Как будто раньше игра была недостаточно безумной
Введение
Серия игр Just Cause и Avalanche Studios известны своей технологией открытого мира, обеспечивающего разнообразный и увлекательный игровой процесс. В последней версии игры — Just Cause 4 — добавлены ветер и погодные катаклизмы, ставшие новинкой в стеке технологий, углубляющих игровой процесс. Но экстремальные природные условия изначально задумывались не просто как способ симуляции более правдоподобного мира. Ярость природы управляется силами зла, противостоящими Рико Родригесу. Мы намеревались сделать так, чтобы ветер проявлялся более явно и экстремальные погодные условия не выглядели как внезапные события, чуждые этому миру. В этой статье представлены техники, разработанные нами для реализации ветра во всех его проявлениях с физической точки зрения, а также реакции на него всех объектов.
[Под катом около 120 МБ файлов GIF]
+33
Углубимся в историю: откуда растут ноги у квадрокоптеров
12 min
21KДроны, дистанционно управляемые вертолеты, шпионские и военные мультикоптеры — все эти летающие устройства уже давно стали частью повседневности. Сегодня электрической бескрылой «леталкой» уже никого не удивишь. Вот оно, держится в небе на своих маленьких вентиляторах, безо всяких крыльев и только за счет электричества!
Однако, до недавнего времени машины с вертикальным взлетом и на электрической тяге были всего лишь недостижимой мечтой. Как же это стало возможным и почему никто их не делал раньше? Кто первым смог поднять электровертолет в воздух? Давайте посмотрим историю появления в нашем небе многопропеллерных жужжалок.
+25
Равномерное распределение точек в треугольнике
6 min
10KTranslation
Большинство двухмерных квазислучайных методов рассчитано на сэмплирование в единичном квадрате. Однако в компьютерной графике также очень важны треугольники. Поэтому я описал простой метод прямого построения для равномерного покрытия последовательностью точек треугольника произвольной формы.
Рисунок 1. Новый прямой метод построения открытой (бесконечной) квазислучайной последовательности с низким расхождением в треугольнике произвольной формы и размера. На рисунке показаны распределения точек в пятнадцати случайных треугольниках для первых 150 точек.
Последовательности с низким расхождением (low discrepancy), равномерно сэмплирующие/заполняющие квадрат, активно изучались почти сотню лет. БОльшую часть этих квазислучайных последовательностей можно расширить до прямоугольников простым растягиванием, не сильно повредив при этом расхождению.
Однако в этом посте мы рассмотрим интересное и важное расширение последовательностей с низким расхождением на произвольный треугольник.
Рисунок 1. Новый прямой метод построения открытой (бесконечной) квазислучайной последовательности с низким расхождением в треугольнике произвольной формы и размера. На рисунке показаны распределения точек в пятнадцати случайных треугольниках для первых 150 точек.
Краткий обзор
Последовательности с низким расхождением (low discrepancy), равномерно сэмплирующие/заполняющие квадрат, активно изучались почти сотню лет. БОльшую часть этих квазислучайных последовательностей можно расширить до прямоугольников простым растягиванием, не сильно повредив при этом расхождению.
Однако в этом посте мы рассмотрим интересное и важное расширение последовательностей с низким расхождением на произвольный треугольник.
+37
Невозможная сковорода и другие победы плиток Пенроуза
8 min
46KTranslation
В 1974 году британский математик Роджер Пенроуз создал революционный набор плиток, который можно использовать для заполнения бесконечной плоскости никогда не повторяющимся узором. В 1982 году израильский кристаллограф Даниэль Шехтман открыл металлический сплав, атомы которого были выстроены в порядке, никогда ранее не встречавшемся в материаловедении. Пенроуз достиг масштабного общественного признания, редко достающегося математикам. Шехтман получил Нобелевскую премию. Оба учёных бросили вызов человеческой интуиции и изменили основы понимания структуры природы, обнаружив, что бесконечная вариативность может возникать даже в высокоупорядоченной среде.
+119
Дайджест свежих материалов из мира фронтенда за последнюю неделю №352 (11 — 17 февраля 2019)
3 min
16KПредлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
+31
Шум Перлина, процедурная генерация контента и интересное пространство
9 min
16KTranslation
Наверно худшее, что случилось в области процедурной генерации контента (если считать, что это действительно область процедурной генерации контента, в чём я уверен не полностью) — это шум Перлина. Шум Перлина невероятно хорошо подходит (по крайней мере, если не приглядываться слишком внимательно) для генерации интересных ландшафтов. В сабреддите /r/proceduralgeneration недели не проходит без того, чтобы кто-нибудь не опубликовал «систему процедурной генерации», которая оказывается визуализированным разными цветами шумом Перлина. (За время написания этой статьи появилось два таких поста!)
Я не хочу унизить шум Перлина. Это невероятно полезный для процедурной генерации инструмент, ставший точкой входа в эту область для множества людей, в том числе и меня. Но в то же время он очень сбивает с толку, потому что подразумевает, что процедурная генерация намного проще, чем это есть на самом деле. Большинство еженедельных постов о «системах процедурной генерации» в /r/proceduralgeneration исчезают без следа, когда их авторы обнаруживают, что следующий шаг в процедурной генерации гораздо сложнее. Истина в том, что шум Перлина стал своего рода счастливой случайностью. Он отлично подходит для генерации интересных ландшафтов, но на то нет систематических или повторяемых причин.
Я не хочу унизить шум Перлина. Это невероятно полезный для процедурной генерации инструмент, ставший точкой входа в эту область для множества людей, в том числе и меня. Но в то же время он очень сбивает с толку, потому что подразумевает, что процедурная генерация намного проще, чем это есть на самом деле. Большинство еженедельных постов о «системах процедурной генерации» в /r/proceduralgeneration исчезают без следа, когда их авторы обнаруживают, что следующий шаг в процедурной генерации гораздо сложнее. Истина в том, что шум Перлина стал своего рода счастливой случайностью. Он отлично подходит для генерации интересных ландшафтов, но на то нет систематических или повторяемых причин.
+30
Как работает Level Flow в Uncharted 4 и The Last Of Us
8 min
9.6KTranslation
В течение последних месяцев я исследовал несколько разных игр, в том числе «Uncharted 4» и «The Last of Us» (разработанные Naughty Dog).
Цель этой статьи — познакомить вас с дизайном уровней и дать мотивацию к его дальнейшему изучению. Я вкратце расскажу о различных элементах level flow, которые дизайнеры уровней могут использовать, чтобы при создании мира принимать осознанные решения.
1 — Введение: что такое level flow
Моё определение термина:
«Когда игрок знает, что делать и куда идти, но не всегда знает, как достичь этого и двигаться по направлению к цели».
(Ключевое слово: восприятие пространства)
Это состояние, в котором игрок испытывает удовольствие, перемещаясь по уровню. Оно рука об руку идёт с game flow.
Это определение довольно размытое, потому что level flow — это широкая тема. Для простоты я разделю «level flow» на четыре (4) более мелких элемента. С высокоуровневой точки зрения, это элементы, которые дизайнеры уровней используют, чтобы направлять игроков.
+27
2D-тени на Signed Distance Fields
9 min
5.4KTranslation
Теперь, когда мы знаем основы комбинирования функций расстояний со знаком, можно использовать их для создания крутых вещей. В этом туториале мы применим их для рендеринга мягких двухмерных теней. Если вы пока не читали моих предыдущих туториалов о полях расстояний со знаком (signed distance fields, SDF), то крайне рекомендую их изучить, начав с туториала о создании простых фигур.
[В GIF возникли дополнительные артефакты при пересжатии.]
[В GIF возникли дополнительные артефакты при пересжатии.]
+34
Дайджест свежих материалов из мира фронтенда за последнюю неделю №351 (4 — 10 февраля 2019)
4 min
13KПредлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
+28
Пространственные манипуляции в 2D с помощью Signed Distance Fields
16 min
2.8KTranslation
При работе с полигональными ассетами можно отрисовывать только по одному объекту за раз (если не учитывать такие приёмы, как batching и instancing), но если использовать поля расстояний со знаком (signed distance fields, SDF), то мы не этим не ограничены. Если две позиции имеют одинаковую координату, то функции расстояний со знаком возвратят одинаковое значение, и за одно вычисление мы можем получить несколько фигур. Чтобы понять, как преобразовывать пространство, используемое для генерации полей расстояний со знаком, я рекомендую разобраться, как создавать фигуры с помощью функций расстояний со знаком и комбинировать sdf-фигуры.
+19
Основы Signed Distance Field в 2D
17 min
15KTranslation
Хотя меши являются простейшим и наиболее универсальным способом рендеринга, существуют и другие варианты представления фигур в 2d и 3d. Одним из часто используемых способов являются поля расстояний со знаком (signed distance fields, SDF). Поля расстояний со знаком обеспечивают менее затратную трассировку лучей, позволяют разным фигурам плавно перетекать друг в друга и экономить на текстурах низкого разрешения для высококачественных изображений.
Мы начнём с генерации полей расстояний со знаком с помощью функций в двух измерениях, но позже продолжим генерировать их в 3D. Я буду использовать координаты мирового пространства, чтобы у нас была как можно меньшая зависимости от масштабирования и UV-координат, поэтому если вы не понимаете, как это работает, то изучите этот туториал по плоскому наложению, в котором объяснено, что происходит.
Мы начнём с генерации полей расстояний со знаком с помощью функций в двух измерениях, но позже продолжим генерировать их в 3D. Я буду использовать координаты мирового пространства, чтобы у нас была как можно меньшая зависимости от масштабирования и UV-координат, поэтому если вы не понимаете, как это работает, то изучите этот туториал по плоскому наложению, в котором объяснено, что происходит.
+15
Комбинирование Signed Distance Fields в 2D
15 min
3.5KTranslation
В предыдущем туториале мы научились создавать и перемещать простые фигуры с помощью функций расстояний со знаком. В этой статье мы научимся комбинировать несколько фигур для создания более сложных полей расстояний. Большинству описанных здесь техник я научился из библиотеки функций расстояний со знаком на glsl, которую можно найти здесь. Также существует несколько способов комбинирования фигур, которые я здесь не рассматриваю.
Для визуализации полей расстояний со знаком (signed distance fields, SDF) мы будем использовать одну простую конфигурацию, а затем применим к ней операторы. Для отображения полей расстояний в ней будет использоваться визуализация линий расстояний из первого туториала. Ради упрощения мы будем задавать все параметры за исключением параметров визуализации в коде, но вы можете заменить любое значение свойством, чтобы сделать его настраиваемым.
Подготовка
Для визуализации полей расстояний со знаком (signed distance fields, SDF) мы будем использовать одну простую конфигурацию, а затем применим к ней операторы. Для отображения полей расстояний в ней будет использоваться визуализация линий расстояний из первого туториала. Ради упрощения мы будем задавать все параметры за исключением параметров визуализации в коде, но вы можете заменить любое значение свойством, чтобы сделать его настраиваемым.
+16
Управление персонажем с помощью SharedEvents
10 min
6KTutorial
Ссылка на проект
В данной статье я хочу показать, как можно использовать SharedEvents для управления персонажем от третьего лица, который предлагает стандартный набор ассетов. О SharedEvents я писал в предыдущих статьях (этой и в этой).
Добро пожаловать под кат!
+11
Генерация барьерных островов
5 min
12KTranslation
В декабрьских новостях об урагане Флоренс часто упоминались Внешние отмели — ряд барьерных островов на побережье Северной Каролины:
Барьерные острова — это плоские или глыбистые участки песка, формируемые волнами и прибоем параллельно побережью материка. Они часто имеют вид длинных цепочек, которые могут тянуться на многие десятки миль. Барьерные острова обычно разделены небольшими приливными протоками, и могут формировать лагуны между островами и материком.
По данным Википедии, барьерные острова могут закрывать до 15% побережья, поэтому можно ожидать увидеть их на большинстве фэнтезийных карт, но на самом деле они довольно редки. А из-за природы шума их почти никогда не бывает на процедурно генерируемых картах, в которых для создания рельефа используется шум.
Чтобы понять, почему это так, давайте взглянем на «ванильную» карту острова:
Барьерные острова — это плоские или глыбистые участки песка, формируемые волнами и прибоем параллельно побережью материка. Они часто имеют вид длинных цепочек, которые могут тянуться на многие десятки миль. Барьерные острова обычно разделены небольшими приливными протоками, и могут формировать лагуны между островами и материком.
По данным Википедии, барьерные острова могут закрывать до 15% побережья, поэтому можно ожидать увидеть их на большинстве фэнтезийных карт, но на самом деле они довольно редки. А из-за природы шума их почти никогда не бывает на процедурно генерируемых картах, в которых для создания рельефа используется шум.
Чтобы понять, почему это так, давайте взглянем на «ванильную» карту острова:
+48
Information
- Rating
- Does not participate
- Location
- Украина
- Date of birth
- Registered
- Activity