Введение
Работая над игрой Mushroom 11, я натолкнулся на множество дизайнерских и технических вопросов. Я не рассчитывал, что кто-то напишет о вершинной анимации или плавном изменении формы, но я удивился, что по работе с камерой, задаче с 30-летней историей, тоже практически не пишут.
Я решил устроить небольшое путешествие по истории двухмерных игр, задокументировать их трудности, подходы и эволюцию их решений. У многих решений нет даже названия, так что я — скорее для себя — придумал классификацию подходов к камере и написал небольшой словарик.
Прокрутка
Прокруткой или панорамированием мы называем любую попытку показать сцену, которая не умещается на экране. Есть много вопросов, связанных с прокруткой: показать игроку то, что он должен видеть, показать то, что мы, как разработчики, хотим ему показать, и как сделать, чтобы всё это прокручивалось плавно и комфортно.
Хотя я сосредоточусь на двухмерных камерах, многие из этих общих концепций работают также и для 3D.
Кое-что из неврологии
Прежде чем мы рассмотрим игры, давайте изучим наши органы чувств, чтобы лучше узнать зрение и восприятие. Так мы сможем понять, что в прокрутке бывает не так.
Центральная ямка — рецептор внутри нашего глаза, ответственный за чёткое и детальное центральное зрение. Второй и третий пояса рецепторов, парафовеа и периферия, великолепно сжимают картинку и движение, чтобы ускорить опознание — в первую очередь опознание знакомых тревожных форм и изменений в направлении и скорости движения.
Изображение с глаз идёт напрямик в миндалевидное тело, обеспечивающее быструю реакцию, и одновременно в зрительную кору, которая расшифровывает изображение. Мозг можно натренировать — например, «привязать» сдвиги на периферии зрения к управлению. Это полезно в играх.
Вестибулярный аппарат располагается в нашем внутреннем ухе, и отвечает за равновесие и пространственную ориентацию. Сигналы, которые он посылает, позволяют телу удерживать равновесие, в то время как глаза вглядываются в детали.
Когда некоторые, как я, читают в машине, ускорения, не подкреплённые зрительно, приводят к укачиванию и головокружению. Но верно и обратное: если периферийное зрение улавливает изменения в фоне, а вестибулярный аппарат говорит, что всё неподвижно — вы же сидите у компьютера — результат будет похожий.
Так что противоречивые сигналы с органов чувств (зрения и вестибулярного аппарата) могут привести к дискомфорту и укачиванию. Хотя в 3D (особенно в виртуальной реальности) эти эффекты ярче, это заметно и в двухмерных играх.
Внимание, взаимодействие и комфорт
Чтобы помочь понять вопросы прокрутки, я выделил в них три больших вопроса.
Внимание: научить камеру показывать достаточное количество игровой информации, чтобы ориентироваться в игре (то, что игроку надо увидеть).
Взаимодействие: сделать, чтобы игрок мог управлять тем, что камера видит, чтобы изменения в фоне были предсказуемы и чётко привязаны к управлению игрока (что игрок хочет увидеть).
Комфорт: облегчить и объяснить изменения в фоне (как сделать, чтобы эти задачи элегантно сочетались, не создавая игроку неудобств).
Скролл-ностальгия
Начнём наше путешествие с самых 1980-х, когда разработчики изобретали новые игровые схемы, обходя такие технические ограничения, что 30 лет спустя трудно и представить, что они были.
Я буду ссылаться и на ведущие инди-игры, большей частью из последнего десятилетия, ведь они всегда демонстрировали новаторство, внимание к деталям и заботу, которые можно ожидать от независимых художников — и работа с камерой не исключение.
Вслед за действом
Всё внимание — управляемому герою
Начнём с простейшего. В общем говоря, вы, как игрок, в полном ответе за своего персонажа. Это диктует то внимание, которое игра отдаёт герою, когда ведёт его камерой.
В начале 80-х прокрутка была сложным делом, и разработчик сталкивался с ограничениями: скорость процессора, ёмкость памяти и сегментная структура памяти. Но даже с этими проблемами выпускались замечательные прокручивающиеся игры, элегантно вписывающиеся в эти ограничения. Правда, зачастую движение было простейшим или рывками.
И поразительно, что аж в 1980 году игра Rally-X преодолела эти ограничения и представила настоящую двухосную камеру. Там был простейший механизм «привязанная камера»: машина всегда в центре, а движение камеры полностью предсказуемое.
Rally-X (Namco, 1980) |
Привязанная камера — камера всегда смотрит на героя. Примечание. Все эти термины я придумал сам, для своей работы и чтобы как-то назвать эти явления. Я буду польщён, если ими воспользуется кто-то ещё, улучшит и напишет мне отзыв. |
Ещё один хороший пример привязанной камеры — Kung-Fu Master, разработанный Такаси Нисиямой, дизайнером, который также сделал Moon Patrol, а впоследствии — и Street Fighter.
Одновременно виден ещё один несложный механизм, который я называю «упор в край» — когда камера упирается в край экрана, персонаж может уйти от точки привязки.
Kung-Fu Master (Irem, 1984) |
Привязанная камера Упор в край — устанавливается жёсткий край, за который камера выйти не может. (Камера упирается в край почти во всех играх, так что больше этот приём упоминать не будем.) |
Привязанная камера — простейший приём, но всё ещё полезный. В песочнице с ремёслами Terraria персонаж очень мал по сравнению с экраном и прыгает невысоко, так что привязанная камера не только работает, но и даёт дальний обзор во всех направлениях.
Terraria (Re-Logic, 2011) |
Привязанная камера |
Ограничить движение камеры
Поменьше ненужных или непредсказуемых прокруток
Как избежать прокрутки, если она нежелательна? 30 лет назад у прокрутки были недостатки: она была требовательна к процессору, потому что перерисовывался большой кусок экрана. И даже если удавалась её наладить, большие пиксели того времени делали прокрутку неплавной. Потому лучшим подходом было поменьше прокручивать. Один из способов — дать персонажу ходить в рамках некоторого окна, и прокручивать, если он выйдет за пределы окна.
Jump Bug многие считают первым платформером, хотя технически игрок прыгает постоянно, управлять нужно только высотой прыжка и движением влево-вправо. В ней, как и во многих других играх того времени, камера автоматически сдвигается вверх, требуя от игрока запрыгивать выше и выше, обходя преграды.
Jump Bug (Alpha Denshi / Hoei > Coreland, 1981) |
Окно свободного хода — сдвигать камеру, как только игрок упрётся в край окна |
Окно свободного хода решило задачу, которая для многих разработчиков и не стояла, и поставило стандарт, за которым последовали тысячи платформеров. Но появились и свои вопросы: игрок, прыгающий выше и выше к выходу, слишком поздно замечает врага, приближающегося сверху.
В одной из моих любимых, Rastan Saga, можно двигаться по двум осям и ходить разными путями. И она — одна из первых, которая выработала взаимосвязь между камерой и механикой. Свободный ход такой же высоты, как стандартный прыжок, и прыжки не вызывают движение камеры вверх — если, конечно, Растан до этого не сдвинулся вверх. Это исключает потребность в рывках камеры.
Большой недостаток в этом — враги, появляющиеся сверху, плохо заметны, особенно если Растан и так где-то вверху свободного окна. А двигаться влево (что бывает во многих замках), вообще неудобно, слишком мало видно вперёд.
Rastan Saga (Taito, 1987) |
Окно свободного хода |
Окно свободного хода всё ещё появляется в новых играх. Посмотрите, как в Fez горизонтальное окно сохраняется при развороте измерений. И, вообще-то, ось разворота выбирается такая, чтобы игрок оставался в окне. Окно свободного хода в Fez выбрано не совсем обычное, и это замечательное решение для столь уникальной игры, и мы это покажем позже. По вертикали это обычная привязанная камера с линейным сглаживанием — это мы объясним позже.
Fez (Polytron, 2012) |
Окно свободного хода (по горизонтали, сохраняется при развороте измерений) Привязанная камера (по вертикали) Линейное сглаживание (курсивом выделены термины, определение которым дадим ниже) Географический ракурс Ручное управление (правым рычажком) |
Возврат
Вернём беглую камеру на место!
Мы уже показали, как окно свободного хода уменьшает движение камеры. Но, как мы видим в Jump Bug и Rastan, это имеет и недостатки, когда игрок у края окна. Вот один из способов исправить это.
Shinobi, наверно, моя любимая классическая игра, и в ней очень высокие прыжки по платформам. Дизайнеры устроили уникальное управление камерой: по вертикали, поскольку платформ много, есть очень широкое окно свободного хода. И, как обычно, Ниндзя упёрся в край окна — сразу тянем камеру. У высокого (или широкого) окна есть и недостаток: после небольшого прыжка игрок может застрять наверху окна, и сверху видно очень мало, как в Rastan Saga. А Shinobi медленно тянет камеру к игроку, удерживая всю гущу событий в кадре и сводя резкие движения камеры к минимуму.
Shinobi (Sega, 1987) |
Возврат камеры (по вертикали): постоянно снижать «увод» камеры, подтягивая её к игроку. Окно свободного хода (по вертикали) Привязанная камера (по горизонтали) Статическое упреждение |
Одна из новых функций, придуманных в Super Mario World — платформенный возврат. Как и с любым окном свободного хода, камера стоит на месте, пока герой не упрётся в край. Но как бы Марио ни прыгал, он в конце концов приземлится на платформе, и когда это случится, подтянем камеру к нему.
Super Mario World (Nintendo, 1990) |
Географический ракурс Платформенный возврат: камера возвращается к игроку, как только он приземлится на платформу. Окно свободного хода (по вертикали, срабатывает редко) Двойное упреждение (включается по порогу) Ручное управление (по горизонтали, дополнительными кнопками пульта) |
Это первое упоминание работ Миямото, и точно не последнее. Он понимает игру и внимателен к мельчайшим деталям — и потому он хороший гемдизайнер, а не только потому, что хорошо придумывает механику игр.
Эту же идею видим в самом первом Rayman. Верх экрана служит верхом окна свободного хода. Заметьте, камера не двигается, когда Рейман прыгает — она аккуратно подъезжает, когда он приземляется. Вот умное решение, ведь окно свободного хода немногим больше, чем высота прыжка. И снова перед нами пример, как игровая камера становится неотъемлемой частью дизайна игры.
Rayman (Ubisoft, 1995) |
Платформенный возврат Окно свободного хода (по вертикали, срабатывает редко) Географический ракурс Двойное упреждение Линейное сглаживание |
Эта техника действует и сейчас, не давая камере сдвинуться во время прыжков и центрируя её, когда прыжок закончен — или когда вышли из зоны свободного хода. Естественно, платформенный возврат работает, когда персонаж может вставать на платформы. А если нет, как в реактивном ранце в Awesomenauts, работает только вертикальный свободный ход.
Awesomenauts (Ronimo Games, 2012) |
Окно свободного хода (по вертикали) Платформенный возврат Привязанная камера (по горизонтали) |
Сглаживание
Избегать резких изменений в скорости камеры и направлении движения
Мы уже говорили о роли периферийного зрения и как оно влияет на зрительный комфорт. Давным-давно, когда мы были маленькими, а пиксели — большими, даже простое движение камеры выглядело дёргано из-за больших пикселей.
Пиксель 80-х Dendy: разрешение 256?240 |
Современный инди-пиксель Содержит множество физических пикселей |
Как мы можем сгладить движение камеры, когда у нас строгая и грубая решётка крупных пикселей? Сейчас мы можем нарисовать прекрасную пиксельную картинку, а затем двигать её с точностью намного выше, чем разрешение картинки. А если не нужно быть «пиксель в пиксель», многие движки могут работать с шагом даже меньшим, чем пиксель.
Сглаживание (псевдо)физикой
Псевдофизика может помочь, когда надо сгладить обычную привязанную камеру (кое-кто скажет, что любая физика в движке на самом деле псевдо-).
Pac-Land — по утверждению некоторых, первый современный платформер. В нём много элементов, которые помогли определить жанр: прыгать по платформам, уворачиваться от врагов и подбирать бонусы. Насчёт сглаживания — скорость там от 0 пикселей/кадр поднимается до 1, 2, 3, и так до максимума, а затем так же плавно падает до нуля. Хотя камера привязана к Пакману, результат чёткий и плавный. Но Pac-Land не надо прокручивать по вертикали, а именно там основные сложности — в быстром ускорении и замедлении, когда прыгаешь и падаешь.
Pac-Land (Namco, 1984) |
Привязанная камера Статическое упреждение |
Сигэру Миямото
Здесь я бы хотел снять шляпу перед Сигэру Миямото и показать несколько первых его работ. Он сделал бесценный вклад в индустрию, и его влияние к мельчайшим деталям игры сложно преувеличить.
В 1984 году он начал экспериментировать с прокруткой, и разработал две игры, которые пользуются ею совсем по-разному. В обеих у игрока совсем мало контроля над прокруткой. Они скорее похожи на комнату с движущейся картинкой на стене.
Excitebike (Nintendo, 1984) |
Devil World (Nintendo, 1984) В Северной Америке отказано в выпуске |
В Excitebike была современного вида прокрутка, зависящая от скорости мотоцикла. Достаточно плавная, но особенно на игру не влияла.
А в Devil World всё было построено на прокрутке. В этом клоне Pac-Man вы играете христианским драконом, который борется с дьяволом, а тот постоянно меняет направление прокрутки, отталкивая вас ближе к краю. Это единственная игра, которую так и не выпустили в США из-за религиозных образов, но, по сравнению с качеством других его работ, это небольшая потеря. Хотя познавательно — и зачастую вдохновляюще — увидеть первые, менее удачные работы мэтра. Даже лучшие художники экспериментируют, и не все эксперименты удаются.
А теперь перескочим на год вперёд. Трудно преувеличить блеск Super Mario Bros. Сама игра — простенькое движение слева направо по горизонтали. Да ещё она и не даёт ходить назад за край экрана, что нередко в платформерах (технически это можно определить как одностороннее окно свободного хода).
Super Mario Bros. (Nintendo, 1985) |
Толкающая зона разгона: когда персонаж в зоне, постепенно ускоряем камеру, пока не сравняется со скоростью персонажа. Окно свободного хода (одностороннее) Статическое упреждение |
Если бы Марио отошёл назад для разгона, а затем со всей скорости вышел бы из окна свободного хода, за один кадр камера разогналась бы от 0 до максимума, с большой сменой в скорости прокрутки и неминуемым дискомфортом. Дизайнеры решили это, добавив ещё одну точку, в 25% от центра, где камера начинает разгоняться, чтобы сравняться скоростью с Марио. Так что, когда Марио должен упереться в край, камера уже гонится за ним на полной скорости.
Metroid был новаторской игрой, создавшей новый жанр, сочетающий прыжки с исследованием (в брате по жанру Castlevania, кстати, была простейшая привязанная камера).
В Metroid было двухосное движение, но одномоментно работала только одна ось. Он ввёл другой метод смягчения камеры: персонаж может выйти из окна, но тогда камера разгоняется, чтобы нагнать. Как далеко от линии он уйдёт — это зависит от скорости, с которой он пересёк линию. Но всё равно в итоге выходит плавная камера.
Metroid (Nintendo, 1986) |
Окно свободного хода (горизонтальное/вертикальное) Тянущая зона разгона: как только игрок пересечёт границу окна, разгоняем камеру, пока она не сравняется по скорости с персонажем. |
Развитие техники дало больше пикселей и быстрые процессоры, это повлияло и на игровую камеру. Теперь камера могла ездить свободно, без дрожания, присущего низким разрешениям — особенно на низких скоростях, когда за несколько кадров сдвигается всего на 1.
Donkey Kong Country придумал много новаторских решений с камерой. Он был один из первых, кто сделал меняющееся упреждение (об этом позже), а также линейное сглаживание, которое сделало прыжки очень плавными.
Donkey Kong Country (Rare / Nintendo, 1994) |
Линейное сглаживание: постоянно снижать расстояние между камерой и игроком по формуле линейной интерполяции. Привязанная камера (по вертикали) Географический ракурс Двойное упреждение |
Линейная интерполяция — не такое-то и большое достижение. Но именно эта формула стала стандартным инструментом, снижающим рывки камеры на скорости, особенно при прыжках.
float lerp (float a, float b, float t) { return a + t * (b - a); }
Это, пожалуй, самая эффективная и вездесущая методика сглаживания. Она работает и для медленных персонажей, и для таких быстрых, как Super Meat Boy. Только если персонаж большой и движется очень быстро, камера может и не нагнать его, и враги будут скрыты за кадром до последней секунды.
y'(t) = ?k·y(t)
при k > 0 в моменты времени t = 0, 1, 2, 3… Грубо говоря, скорость полёта пропорциональна расстоянию. Хочется сказать «камера висит на пружине», но задача с пружиной подразумевает ускорение (вторую производную).
Super Meat Boy (Team Meat, 2010) |
Линейное сглаживание Привязанная камера |
В 2014 году вышла очаровательная игра Never Alone, и в ней есть много разных элементов, которые мы объясним позже. Её механизм сглаживания учитывает и скорость камеры, так что камера медленно берёт разгон, а затем «перелетает» за целевую точку. Получился плавный и органичный полёт, хоть и небыстро реагирующий на дёрганые движения.
Never Alone (Upper One Games, 2014) |
Физическое сглаживание: камера — физическое тело, постоянно летящее к целевой точке. Усреднение позиции Кинематографические рельсы Географический ракурс Ракурс на объект |
В терминах программирования линейное сглаживание — это EaseOut, а физическое — EaseInOut. Если можно, воспользуйтесь методом SmoothDamp [функция движка Unity — Переводчик], или напишите свой вариант, который будет учитывать и расстояние до цели, и скорость.
Если вы пользуетесь шейдерами «пиксель в пиксель», то иногда замечаете, что ваши спрайты сдвигаются на пиксель по сравнению с другими спрайтами или фоном — из-за ошибок машинного деления. Игра Hyper Light Drifter, исполненная в пиксельной графике низкого разрешения, умно решила эту задачу. Она проводит рендеринг в промежуточный «холст» в игровых пикселях, а затем выводит его на экран в нужном масштабе, сдвигая в зависимости от дробной части. Есть там и другие интересные решения, о них мы поговорим позже.
Hyper Light Drifter (Heart Machine, ещё не вышла) |
Физическое сглаживание (разрешение игрового холста 720?480, но прокрутка идёт в физическом разрешении монитора). Географический ракурс Упреждение по управлению Ракурс на объект Жесты камерой |
Кадрирование
Держим самое важное в кадре
Об автопрокрутке тут нечего говорить, ведь она по определению не позволяет игроку двигать камеру. Но она даёт нам интересную отправную точку, где в идеале должны быть игроки, если держать баланс между массой угроз спереди и теми немногими угрозами, что появляются сзади.
Scramble (Konami, 1981) |
Автопрокрутка: игрок никак не управляет прокруткой, но имеет полное право определять, где в кадре ему быть. |
Как мы видели в Pac-Land, если камера привязана к игроку и движется туда-сюда вместе с ним, можно сместить камеру слегка вперёд. Это оставит немало места, чтобы смотреть вперёд, но и о пространстве сзади не забудет. А заодно укажет, куда идти, ведь мы стремимся к центру.
Pac-Land (Namco, 1984) |
Привязанная камера Статическое упреждение: больше места для обзора в главном направлении |
Отодвинемся ещё назад. В начале 1981 года вышла скролл-леталка, опередившая своё время и вдохновившая новый жанр — Defender. Она предоставила двойное упреждение, но этого почти никто не заметил. Defender всегда наводит камеру на воображаемую точку впереди корабля, примерно на четверть экрана вперёд. Этот механизм отлично подходит к быстрой игре, где большинство врагов появляются спереди.
Defenter (Williams Electronics, 1981) |
Двойное упреждение: когда игрок меняет направление движения, камера меняет ракурс и смотрит вперёд. |
Bonanza Bros. — восхитительная игра в ограбление, выпущенная Sega для автоматов в 1990 году. В ней есть уникальный режим на двоих (кооперативный, с разделённым экраном), где два брата сотрудничают, чтобы исполнить ограбление.
Конечно же, грабителю важно видеть вперёд, и потому там сделали двойное упреждение. Но чтобы камера навелась на новую цель, надо сделать пару шагов: получается и плавно, и обзор хороший. Камера движется примерно вдвое быстрее, чем игрок, а это значит: когда игрок стоит, стоит и камера. Посмотрите на Красного (внизу).
Bonanza Bros. (Sega, 1990) |
Двойное упреждение (скорость камеры зависит от скорости движения) |
А вот так камера работает в Super Mario World, моей любимице по части работы с 2D-камерой. Посмотрите, с каким вниманием камеру подогнали к геймплею.
Super Mario World (Nintendo, 1990) |
Географический ракурс Платформенный возврат Окно свободного хода (по вертикали, срабатывает редко) Двойное упреждение (включается по порогу) Ручное управление (по горизонтали, дополнительными кнопками пульта) |
Опять-таки, есть два ракурса камеры, в зависимости от того, в какую сторону игрок решит пойти. Но если вдруг нужно назад (обычное дело в Super Mario World), камера никуда не поедет, пока Марио не пройдёт определённый порог. И только после этого камера наведётся на новую точку. Это очень помогает, ведь повернуться влево в SMW не означает пойти назад.
А совсем недавно Cave Story воспользовался двойным упреждением, чтобы двигать камеру влево-вправо в зависимости от скорости хода. Почти то же самое, что мы видели в Bonanza Bros. Только камера идёт в нужное место медленно, если игрок стоит, и быстро — если движется.
Cave Story (Studio Pixel, 2004) |
Привязанная камера (по вертикали) Двойное упреждение Физическое сглаживание Ручное управление (по вертикали) |
Jazz Jackrabbit 2, красивый платформер первых дней Epic Games, имел один необычный элемент камеры: он сдвигал камеру дальше от игрока, и по горизонтали, и по вертикали, в зависимости от нажатых кнопок.
Это отличный пример того, что я называю «упреждение по управлению»: сам игрок указывает камере, куда сдвинуться, в зависимости от того, куда он хочет попасть. Идёт влево — значит, нужно видеть больше слева. Отпускает кнопку — камера возвращается в центр.
Jazz Jackrabbit 2 (Epic Games, 1998) |
Линейное сглаживание (по вертикали) Упреждение по управлению: камера подбирает упреждение в зависимости от состояния управления (в данном случае — клавиш-стрелок) [ручное управление] (как частный случай упреждения по управлению) |
Упреждение по управлению может отражать и более явную точку упреждения, немало из этого мы видим в играх с управлением мышью. В Snapshot мы решаем головоломки, делая снимки элементов сцены и устанавливая их где-то в другом месте. Указатель расширяет наш обзор в нужную сторону — камера наводится на середину между игроком и указателем.
Snapshot (Retro Affect, 2012) |
Упреждение по управлению (на середину между игроком и указателем) Линейное сглаживание |
В Swapper есть несколько интересных приёмов работы с камерой, которые затронем позже. Насчёт упреждения по управлению — целевая точка клонирующего прибора напоминает направление взгляда и именно в этом направлении можно сделать упреждение. Это работает с любой игрой, где есть оружие с независимой наводкой. Игрок даже может идти задом и смотреть вперёд, если захочет — очень универсально, но нужно как-то управлять камерой.
Swapper (Facepalm Games, 2013) |
Упреждение по управлению Физическое сглаживание Географический ракурс Ракурс на объект Кинематографические рельсы |
В Secrets of R?tikon есть несколько интересных моментов с камерой. Насчёт компоновки кадра — там упреждение по движению, с простой экстраполяцией положения персонажа на основе текущей скорости.
В платформерах такая техника может и не сработать, особенно по вертикали: прыжки и приземления нельзя надёжно экстраполировать.
Secrets of R?tikon (Broken Rules, 2014) |
Упреждение по движению: камера гонится за будущим (экстраполированным) положением игрока Физическое сглаживание Ракурс на объект (положение и масштаб зависит от аттракторов) Жесты камерой (определённые действия вызывают отклик со стороны камеры, например, в полёте масштаб уменьшается) Кинематографические рельсы |
В Luftrausers тоже камера интересная: чтобы определить, куда смотреть, учитывается, куда самолёт смотрит (по управлению), куда летит (по движению) и другие подсказки наподобие воды, кораблей и снарядов, которые тоже притягивают камеру (см. в следующей части «ракурс на объект»).
Luftrausers (Vlambeer, 2014) |
Упреждение по управлению и движению Физическое сглаживание Ракурс на объект |
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (18)
Newbilius
16.12.2015 09:00+2Как круто. На первый взгляд кажется, что «камера в платформере — это просто». Ан нет, вон сколько тонкостей закопано…
OlegKozlov
16.12.2015 09:14+2Прекрасная статья! Ещё! Ещё!
Mercury13
17.12.2015 00:40Интересно, а какие-то приёмы работы с камерой в «червеце» есть? Интересно было бы знать.
OlegKozlov
17.12.2015 07:57+1Есть. :) По терминам этой статьи:
1. Упреждение по движению: точка привязки камеры вынесена вперёд от центра червя, причём чем быстрее он ползёт, там дальше она выносится.
2. Упреждение по управлению: когда игрок начинает сжимать червя для прыжка, то вынос точки привязки камеры ещё усиливается заранее передвигая камеру в ту область, куда червь сейчас прыгнет.
3. Линейное сглаживание — камера плавно стремится к точке своей привязки, тем быстрее, чем больше разница между фактическим положением камеры (центра экрана) и точкой её привязки.
Плюс масштаб всего происходящего завязан на размер червя, когда червь увеличивается, то камера «отъезжает». Причём делает это тремя-четыремя ступенчатыми переключениями, чтобы игрок ощущал, что его червь вырос. Если делать плавно, то рост и изменение масштабов игры нивелируются и не приносят удовольствия.OlegKozlov
17.12.2015 08:04+14. Упор в край. Камера «упирается» в края уровня, становясь более статичной и позволяя голове червя сильно смешаться от центра экрана, буквально упираться головой в его край.
DrLivesey
16.12.2015 11:16+2Огромное спасибо за статью. Тема для игростроя действительно важная, потому что неправильно реализованная камера может запросто испортить очень хорошую игру.
inborn_killer
16.12.2015 19:33Gamasutra — неиссякаемый кладезь статей для переводов ) Отличный перевод, а статья, по-моему, обязательна к прочтению всем небезразличным к геймдеву )
MichaelBorisov
16.12.2015 22:04+1В современных платформерах с управлением мышкой появляется еще возможность смещать камеру в направлении мышиного курсора. Мне очень нравится прокрутка в Raze 2. Похожим образом была реализована прокрутка на Амиге в Cannon Fodder.
SpiderMan
18.12.2015 11:09+2Спасибо за перевод, обязательно переводи вторую часть, очень полезный материал
demoded
Отличный материал! Никогда не думал, что внутри оно все так сложно :)
Mercury13
Часть первая из двух. Во второй части…
Рельсы.
Жесты камерой.
Кинематографические рельсы.
Географический ракурс.
Ракурс на объект.
Ракурс на область.
Как показать двоих в одном экране.
Тряска камеры.
Несколько разборов.
Сам я как-то переизобрёл двойное упреждение, а когда выяснилось, что в очередной игре на этом движке (уже не моей, был консультантом по движку) движущаяся платформа выходит из виду и на неё трудно запрыгнуть — настоял на платформенном возврате. Изначально тоже выходили, но были неподвижны и мышечная память не подводила.
anyxem
За это я и уважаю геймдев. Программисты игр решают огромное количество сложнейших задач, а на выходе получается казалось бы естественные простые вещи.
IgnisNoir
Скорее геймдизайнеры. Программисты просто реализуют это =)
dendron
Хороший геймдизайнер обязан быть хоть немного программистом. Иначе программист в качестве инструкции получит бессвязный, противоречивый и абстрактный бред, а на вопросы будет отвечать «тыжпрограммист, что я за тебя всё должен придумывать».