Все о пони

Everypony.ru — это разносторонний портал, посвященный сериалу My Little Pony: Friendship is Magic.

Обсуждение сериала и всего прочего ведется в активной блогосфере — Табуне, и на форуме.

На портале есть своя пони-вики, которую может каждый свободно дописать, постоянно пополняющаяся библиотека фанфиков, аудиокниг и Minecraft-сервер.

Чат размещен в уютной Jabber-конференции по адресу [email protected].

Отправить свой материал для публикации в главном блоге можно через форму обратной связи, или на почту — [email protected]

Если у вас есть необходимость написать администрации сайта или у вас есть предложения, пишите на адрес: [email protected]

Ссылки
  • Донат

Джей Райт из команды Mane6 рассказывает о процессе работы над «Fighting Is Magic»

25 Янв 2012 by ponyPharmacist в рубрике Игры

Изначально размещенная в блоге разработчиков эта запись остро изобилует техническими подробностями, и, прежде всего, будет интересна flash-программистам и аниматорам.

Глубоко заинтересованным брони будет также интересно почитать многочисленные ответы Джея на комментарии к оригинальному посту.

Привет всем! С вами Джей.

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

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

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


Вся анимация несколько раз меняется во время своего путешествия:

  1. Начинается всё в виде идей в наших головах (на эктоплазменной основе).
  2. Мы создаем её на Flash (Векторная основа, множество цветовых палитр, мягкие края).
  3. Затем экспортируем в игру (Пиксельная основа, индексированные цвета, грубые края, немного рыданий прилагается)

Шаги 1 и 2 требуют большого количества креатива и времени. Шаг 3 состоит из множества маленьких шажочков, которые требуют планирование, знание движка и, даже, немного физического дискомфорта. Я остановлюсь на шаге 3, в частности в той части, которая ближе к моему сердцу (Как сказал доктор – еще пара миллиметров, и я был бы мертв): Палитры.

Долгое путешествие от Flash к 2D Fighter Maker 2nd (FM2K)

Итак, мы придумали анимацию для всех пони, и мы наделали кадров для неё на Flash. Теперь нам нужно перекинуть их в FM2K, который НЕ является Flash.


Смена расцветки стоила мучений.

Глубина цвета

В Flash имеется огромное количество цветов (Более 17 миллионов на выбор). То есть, в нем практически нет каких-либо ограничений для количества цветов на спрайт (я буду использовать слово “спрайт”, подразумевая один кадр анимации). В FM2K (как и во всех олдскульных файтингах, таких как Street Fighter II, King of Fighters, Samurai Showdown, MvC2, Mortal Kombat и пр.) используются 8-битные индексированные цвета. 8-битная графика использовалась и на 16-битных приставках, что уже смущало (SNES, Genesis/MegaDrive). 8 бит, по сути, означают, что вы можете использовать всего 256 цвета на спрайт. “Индексированный” означает, что вместо каждого пикселя, сообщающего подробно о своем цвете (“Я 32R 64G и 128B”), он всего лишь сообщает индекс, который сообщает его цвет. Мы поговорим о последствиях 8-битных ограничений (в частности в FM2K) и выгодах (да – есть и такие) на протяжении всего этого поста.

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

Несколько вещей, о которых скажу сразу

Мы не рисуем каждый спрайт попиксельно. Все игры, которые я перечислил выше, используют для своих спрайтов тот же формат, который будет и в конечном итоге: растровые изображения (состоят из точек, в отличие от векторов).

Случайный факт: В FM2K наша палитра ограничена тем, что каждое значение должно быть кратно 8 (Максимальное значение 32,768 – прямо как на SNES!), если же значение не кратно 8, оно будет округлено, если цвет совпадает с другим цветом из палитры, то тот будет просто удален из палитры. Спасибо FM2K!

Художники создают изображение вручную (или, как чаще это делается, переделывают более детализированные изображения или даже фотографии в случае с Mortal Kombat) пиксель за пикселем. Либо используют “Карандаш” (не “Кисть”) в Photoshop. При изображении кожи, они используют кожный цвет. Больше этот цвет в этом спрайте не будет использоваться. Если они используют желтый цвет для одежды, то они должны будут использовать другой желтый для волос персонажа.


Она за работой.

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

Что я имею ввиду, говоря это? Взгляните на очаровательные бедра слева.

Здесь нет мягких очертаний и лишь несколько оттенков кожного цвета и цветов одежды. Термин для такой зубчатости – алиасинг. Вы наверняка слышали термин антиалиасинг раньше, когда речь шла о графике, или просто видели галочку с таким названием в какой-либо компьютерной игре.


Пинки на Flash, показывает антиалиасинг.

Вот пример одного из наших пони спрайтов на Flash, с применением Флешевского антиалиасинга. Как видите, Flash сглаживает края, добавляя новые, промежуточные, цвета.

Как вы можете заметить, он делает это с краями (части нашего спрайта накладываются на фон). Первой нашей задачей было избавление спрайтов от этой размытости. 8-битные индексированные цвета не имеют подобных уровней прозрачности, так мы и сможем избавиться от размытых границ, смешивающихся с фоном. Нам нужно отконвертировать наше размытое *.png в *.png с индексированным цветом и однобитной прозрачностью. 1-битная прозрачность означает, что пиксель не прозрачен – полностью виден. К счастью, этот шаг довольно прост (Хотя мы не можем приступить к нему, пока не завершим процесс раскрашивания, так приступим же)! Woo!


8-битная Пинки. Заметьте грубые очертания!

Вопрос: Почему бы не отключить сглаживание(антиалиасинг) во Flash, почему бы не экспортировать без сглаживания?

Ответ: Потому что:

Flash, Скажем так, посасывает. Как вы можете видеть, он иногда прорисовывает скачками (Грива и хвост и Пинки, поднятое копыто у Рэинбоу), или заливка выходит за границу (Ухо у Рэинбоу, Хвост Пинки, и куча других мест). Конечно, мы могли сделать так, и сохранить МНОГО времени, но мы бы не были счастливы с грубыми и неряшливыми спрайтами. Да и всем остальным это вряд ли бы понравилось.

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

FM2K и значение слова “программист” в нашем случае

Давайте отдохнем немного от разговоров о пикселях. Когда мы говорим, что мы “программисты”, когда говорим про FM2K, это все равно, что говорить про дрессировщика в цирке, что он “программирует” льва стоять на платформе и прыгать через обруч. Программа льва говорит ему откусить человеку голову, но у дрессировщика есть кнут и стул. Он не программирует льва, он лишь приручает его. Так что мы дрессировщики FM2K.

Суть FM2K в том, чтобы люди, не умеющие программировать, могли легко создать файтинг. И у него получается! Это не чересчур легко, но гораздо проще, чем если бы мы создавали бы свой собственный движок с нуля (Чего не умеет делать никто из нашей команды).

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

Скажем, нам нужно, чтобы система считала, сколько раз вас ударили в воздушном комбо перед тем, как скорость вашего падения начнет увеличиваться, или, чтобы она позволяла вам отскочить от стены дважды за комбо, или даже, чтобы она видела, что Пинки Пай Сражается с Эплджек, и кто из них первый игрок, а кто второй… Все эти опции не предусмотрены по умолчанию. Если бы мы были программистами и писали свой собственный движок, то мы просто добавили бы эти опции в коде. Но так как мы дрессируем FM2K, то мы должны выяснить, как использовать данные нам кирпичики, чтобы построить устойчивую структуру. Прямо как Лего. Мы не можем добавлять свои детали, но мы можем делать очень даже классные вещи из того, что мы имеем.

Окей, вернемся к разговорам о пикселях.

Вопрос: Зачем пони так много цветов! Пинки Пай вся розовая, с розовыми гривой и хвостом. В чем же сложность?

Ответ: Отличный вопрос. Что ж, вы забываете о некоторых вещах. Контуры имеют другой цвет, глаза сделаны градиентом, рот и зубы показываются не в каждом кадре, кьюти марка, Слегка затененный цвет кожи на заднем плане, ресницы. Даже теперь набралось не так много, но помните, что антиалиасинг требует для каждого из этих цветов промежуточные цвета, друг меж другом. Так, если контур гривы где-либо пересекается с контуром кожи, то нам нужен будет переходный цвет для этого случая.


Полная пинкизация.

К примеру: используя стандартные настройки Photoshop’а, конвертируя Пинки в индексированные цвета, мы с легкостью заполним все 256 слотов палитры: лишь розового 176 оттенков. Черт, да даже для желтую часть кьюти марки 9 оттенков желтого потребовалось. А теперь представьте, каково это – перерисовать вручную 176 оттенков розового для второго игрока… Ужасно скучно. Это еще не считая того, что вы не знаете, какой оттенок розового где используется – либо это грива, либо переход от гривы к коже, либо переход от кожи к кьюти марке и т.д. и т.д…

Вопрос: Почему мы не можем конвертировать в Photoshop, задав меньшее количество цветов? 30 или 40? Упростить палитру?

Ответ: Хороший вопрос. Мы можем! К сожалению, этот процесс полностью автоматический. Мы не можем задать ему какие цвета НЕ вырезать. Для примера, что был выше, на палитре просто не останется желтого цвета для кьюти марки, таким образом, если другая анимация покажет нам кьюти марку поближе, то у нас просто не будет нужного цвета для ее отображения, и оригинальный желтый заменится близким цветом из палитры.

Казалось бы — в этом есть смысл, но не забывайте, что этот процесс не знает, что нам нужно будет еще менять расцветку для других игроков. Возьмем, к примеру, кьюти марку. Она может быть наполовину желтая, наполовину розовая на оригинальном Flash-спрайте. В нашей простой панели, что мы получили ранее, может не оказаться нужного цвета. Тогда программа просто перекрасит пиксели в похожие цвета.

Пока что все вроде бы неплохо! Если не учитывать того, что этим похожим цветом может оказаться часть цвета глаз, или переходного цвета между телом и зубами. Для первого игрока все будет отображаться нормально, но вот когда дело дойдет до расцветки другого игрока… К примеру, я хочу поменять цвет кожи на… скажем, темно зеленый. Это означает, что переходный цвет от кожи к кьюти марке тоже изменится и повлечет за собой изменение цвета глаз и переходного цвета между телом и зубами (Появятся темно зеленые точки). Это бросается в глаза и выглядит не очень красиво.

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


Ранние тесты палитры.

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

Я привел один из ранних тестов палитры. Заметьте: если цвет кожи ЭйДжей становится темнее/ярче, то и цвет шляпы и волос также становится темнее/ярче. Если приглядеться, то можно заметить, что иногда цвет все еще распространяется на вовсе неожиданные места!

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


От темного к светлому: шляпа > кожа > волосы

Сначала мы придумали палитру ЭйДжей с темно коричневой гривой и белой шляпой, но она не прижилась.

Волосы нормальной ЭйДжей – это её самая светлая часть (бледно желтый). Самая темная часть – шляпа. Наша идея состояла в том, что ее шляпа станет самой светлой частью (белой), а волосы – самой темной (темно коричневый). В итоге получилось, что все переходные цвета превратились в некое подобие пони оспы. Мы перепробовали 7 или 8 различных шляп – от коричневого до белого, но маленькие точки все равно появлялись везде, будь то на гриве/хвосте или на ресницах, т.к. цвет этих частичек совпадал с тем цветом, который мы выбрали для шляпы. И тогда мы перекрасили ее гриву из светло желтого в темно коричневый, но пятна стали лишь еще заметнее, к тому же темные пятна появились на зубах, глазах и шляпе.

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

ЭКСТРА СОВЕТ ДЛЯ PHOTOSHOP!: используя инструмент “обесцвечивание”, или выставляя «обесцвечивание» на 0, вы не добьетесь правильного результата, как покажется на первый взгляд. К примеру, желтый на 50% яркости и красный на 50% яркости будут иметь одинаковый оттенок серого, если вы обесцветите их. Это НЕ ПРАВИЛЬНО. На самом деле красный цвет темнее желтого. Лучший способ что-либо обесцветить, использовать черно-белый корректирующий слой (как собственно и было сделано изображение выше).


R.I.P. Shania Twapplejack. 2011-2011. Не выжила в этом суровом мире.

Нам повезло, что мы выбрали ЭйДжей в качестве первого персонажа, поскольку ее палитра была одной из самых сложных, хотите верьте, хотите нет: не так много оттенков (все красные/коричневые/желтые), ограниченный контраст (самые темные области не силно отличаются яркостью от самых светлых), но достаточный, чтобы быть заметным глазу. Тем самым ЭйДжей помогла нам отсеять все неудобные методы на нашем пути и избежать исправления ошибок в дальнейшем.

Сам процесс создания палитры

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

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

Вечеринка в самом разгаре, но мы понимаем, что нам здесь уже скучно. Она спросила не хочу ли я выйти наружу. Там темно, но тепло, хотя, откровенно говоря, даже если бы там шел кислотный дождь и дули штормовые ветра, я бы и тогда сказал «да». «Да». Мы шли и разговаривали, так непринужденно и легко. Наши руки соприкасались три или четыре раза, после чего она проскользнула своей рукой в мою.

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

Мы поднялись по лестнице, и тогда она повернулась ко мне, освещенная мягким теплым светом. Она смотрела мне в глаза и игриво покусывала свои губы. Я нежно гладил ее волосы, а затем притянул ее к себе. Я мог чувствовать ее дыхание на своих губах, ничто прежде не было столь настоящим, ни одна девушка не вызывала во мне таких чувств. И в тот момент, когда наши губы ужи почти соприкоснулись, человек в желтом дождевике выскочил из-за кустов и ударил ее ножом прямо в сердце, убивая ее прямо у меня на глазах.

Этот человек схож в чем-то с процессом создания палитры.

1. Этап Пикассо


Рэрити: этап личинки.

Это то, что мы получим в конце этого этапа. Выглядит глупо, так оно и есть, и так оно и должно быть, но также это очень полезно. Это изображение содержит все переходные цвета и указывает, где именно они находятся. Она состоит из цветов, взятых из кадра, экспортированного из Flash, а затем обрисованных карандашом в Photoshop для придания пиксельной границы и ручных градиентов.

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

2. Создаем палитру

Итак, у нас есть изображение личинки Рэрити, на котором есть все цвета, которые нам потребуются. Когда мы экспортируем это изображение в 8-битный *.bmp, цвета сортируются Photoshop-ом в порядке частоты их использования в спрайте. Такая сортировка нам ничем не поможет. Есть и другие виды сортировки, но ни один из них нам не подходит. Нам придется сортировать их вручную, вследствие особого “метода” смены цвета в FM2K.

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

Я использовал небольшую бесплатную программу, которая позволяет переназначать цвета в bitmap-палитре, не изменяя изображение. Цвета стоят не так как нам нужно, и их расстановка займет время. Мне нужно будет проверить каждый цвет, подсвечивая его в Photoshop и смотреть что измениться в моем изображении. Я уже говорил, что импортированные bitmap-ы должны иметь размер кратный четырем? Нет? Программа тоже не говорит! А уж сколько веселья было, пока мы искали, в чем же проблема (видимо для 8-битных bitmap-ов существует ряд ограничений)!

Теперь, когда запущена наша программа, с изображением в ней мы открываем его в Photoshop и начинаем работу. Процесс этого шага описан ниже:

  1. “Где этот цвет у нас в палитре (2-я строка, 4-й слот слева)?”
  2. Подсветить в Photoshop (2-я строка, 4-й слот слева).
  3. Посмотреть, чему он соответствует на моем специальном опорном изображении (последний оттенок серого на пересечении волос и кожи).
  4. Используя бесплатную программу, переместить цвет на пустое место, следуя логике, чтобы позже мне было легче найти этот цвет.
  5. Повторить шаги с 1 по 4 для цветов с 50 по 70 в палитре, группируя их в разделы (Сначала цвета кожи, затем цвета для глаз, после цвета для кьюти марки и т.д.).

На словах это звучит не так уж и сложно (но это так).

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

МНОГО МИНУТ СПУСТЯ…

3. Упорядочили палитру? Теперь конвертируем!

Этот этап тянет на отдельный пост. Мы начинаем конвертировать все наши флешевские кадры в прозрачные *.png. Затем конвертируем спрайтолисты (изображения, содержащие в себе все наши кадры в правильном порядке, что-то вроде раскадровки). Такое совмещение всех кадров в один спрайтолист позволяет сохранить кучу времени, ведь следующие шаги нужно будет делать не для 20–30 изображений, а для одного. Затем мы конвертируем получившиеся спрайтолисты в 8-битные *.png, ИСПОЛЬЗУЯ НАШУ СОБСТВЕННУЮ ПАЛИТРУ, чтобы избавиться от тысяч ненужных нам цветов и оставить только нужные. Затем конвертируем получившиеся 8-битные *.png в 8-битные *.bmp.

Да… мы прошли через все эти шаги и да, было множество причин, почему мы выбрали этот способ. Включая преобразование нашего прозрачного фона в пурпурный своим способом, принцип импорта/экспорта палитр в Photoshop и т.д. и т.п. Так же немного времени нам сохранила забавная штучка под названием “Капля” в Photoshop.

ИТАК, НАКОНЕЦ. Мы импортировали наши bmp в FM2K.

4. Импорт в FM2K


Чистое зло.

Неожиданно, после всего того, что было, этот шаг не такой уж и плохой. За исключением двух кнопочек, которые нужно попеременно нажимать, одна из которых делает не то, что она говорит она делает, и если вы забудете какая именно и не нажмете ее, то все палитра персонажа будет потеряна безвозвратно! Вот такие вот маленькие нюансы и заставляют нас держать себя в руках. Ах да, если в RGB значение цвета в границе 8 до другого цвета, то FM2K удалит его без предупреждения и закроет разрыв. Из-за этого Рэрити потеряла пять или шесть цветов. А теперь давайте помолчим минуту в память о храбрых пурпурных волосинках (какими бы они там не были, кого волнует). А, кстати, я уже говорил, что мы не можем использовать черный цвет? Нам пришлось использовать цвет, RGB значение которого отличается не менее 8 от черного, или он станет прозрачным! Это было круто, когда весь наш первый тест был в прозрачных пятнах.

5. Меняем цвета по-крупному


Twilight Sparkle.

Помните Преимущество, о котором я говорил в начале? В этом и была цель всего, что было до этого. Многие бы шаги можно было пропустить, если бы мы исключили это: Выбор цвета для остальных игроков. И это и правда веселая часть. Создание крутых альтернативных расцветок. Место есть для 8 расцветок, но доступ — только к шести (а то и пяти).

Иногда мы использовали расцветки пони предыдущих поколений, если же они посасывали или просто не подходили (помните про разницу значений), тогда мы просто придумывали что-то свое сами или брав за основу пони заднего плана, или делали их светло синими, потому что Коннеру нравится светло синий. Этот шаг все же не обошелся без осложнений (неожиданно): FM2K использует стандартную виндосовскую палитру для выбора цвета, а она не особо радует.

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

В конце последнего поста вас ждет приятный бонус.

Отдел дополнительных плюшек

Теперь я отвечу на некоторые вопросы, которые у меня возникли в процессе, и некоторые вопросы, что нам задавали о процессе.

Вопрос: Почему бы не создать расцветки для других игроков вне FM2K, а потом просто импортировать их в него?


Мама Твай.

Ответ: Это прекрасная идея, и все было бы намного проще. Нам бы не пришлось вручную сортировать цвета в палитре перед импортом, то есть пропустили бы самый болезненный шаг. Но, к великому сожалению, FM2K не поддерживает импорт внешних палитр (или даже хоть что-нибудь похожее). Наши руки связаны!

Вопрос, который нам задавали очень часто: Почему бы не создать встроенный pony creator для нашей игры?

Очень длинный ответ: Такой уже есть! Он называется FM2K (или mugen!). Просто создаете кадры для каждой из возможных анимаций в любой программе, которая вам нравится, экспортируете их и затем импортируете в FM2K, после чего используете его для создания любых ударов, каких только пожелаете, используя созданные изображения. Шучу, конечно же. Вообще, вы уж нас извините, но мы не будем его делать. Мы хотели бы, чтобы он был, это бы сильно упростило создание персонажей!

Если поподробнее об этом, то это все равно, что просить у группы инструмент, который бы менял стиль их игры. Вам все еще нужно учиться петь, сочинять новые песни, играть на инструментах и т.д. и т.п. Или все равно, что просить киностудию предоставить инструмент для смены актеров в фильмах на ваших dvd. Вы не можете, актер есть в каждом кадре. Если вы конечно не замените каждый кадр (конечно вы можете написать крутую программу, которая будет делать это за вас, но согласитесь это тоже совсем не легко). Я надеюсь, вы понимаете, о чем я. К сожалению здесь все не так просто.

FM2K не берет части пони из внешних библиотек сделанных нами, а потом создает на их основе анимацию (как мы делали на Flash вначале). Каждый кадр анимации впаян внутрь. Нет никаких внешних редактируемых объектов. К примеру, если нам нужно будет изменить кьюти марку Твайлайт на банку собачей еды или сделать ей афро, нам придется создать это все на Flash, причем во всех видах, в которых они могут использоваться, поместить их на все кадры с анимацией Твайлайт, затем импортировать, экспортировать их снова в FM2K одну за одной.
Я могу пойти дальше и выложить все в Интернете в текстовой форме, где не будет ни изображений, ни спрайтов что позволит вам создать своих собственных персонажей (а не просто смену расцветки).*

*Был бы рад опровержению, но создание пони не сделать проще. И да, я знаю про Fire Pro Wrestling и даже про Drawn to Life, но это совсем другой случай, и я объясню почему: они не полностью основаны на спрайтах. Там есть отдельные спрайты для рук, ног, голов и т.д. с предустановленными “позами” (согнутыми, прямыми, поднятыми и т.д.). И каждая поза повторяется несколько раз с разными расцветками или с наручными повязками или чем-то подобным. Когда в игре используется анимация, игра просто берет уже готовые наборы частей тела. У полностью основанных на спрайтах нет таких компонентов.

Мы не двигаем отдельно части тела. Каждое состоит из пикселей для этого кадра для этого положения в анимации. Одно изображение для каждого возможного кадра, для каждой анимации, для каждого возможного движения или реакции. Drawn to Life использует компоненты и “костную” основу, что позволяет вращать компоненты. Подобных игр множество.

Вопрос вдогонку: Так почему бы не использовать подобную компонентно основанную систему для вашей пони игры?

Ответ:

  1. Потому что это плохо выглядит.
  2. Это требует гораздо больших трудозатрат, так как FM2K не имеет подобного встроенного функционала (вы не можете вращать объекты в FM2K, так что нам пришлось бы рисовать отдельно каждое положение для каждого компонента).
  3. Такая анимация выглядела бы совсем не реалистично, она выглядела бы ужасно. Серьезно.
  4. Пользовательский редактор пони в принципе невозможен, ввиду некоторых ограничений. Нам бы пришлось писать собственный движок. Мы не собираемся делать этого.

Вопрос: Окей, все вроде бы понятно, но что на счет дополнительных костюмов! К примеру, для каждой пони гала платья или очки Вандерболтов для РД!

Ответ: Это было бы круто! Нам это нравится так же, как и вам. Но это, так же как и редактор пони, практически невозможно. Снова все сводится к качеству нашей работы, затраченному времени, ограничениям движка.

Как я уже говорил, наша анимация не на компонентной основе. Мы не можем просто заменить компоненты. Нам придется добавить платья или шляпу, или что-либо другое, что бы это ни было в каждый кадр исходной Flash анимации, импортировать, а затем экспортировать все это снова (даже если мы сделаем это, то в движке нету встроенного способа для смены костюмов, так что придется проделать серьезную работу, чтобы сделать это возможным, так что и одного хватит). И, конечно, если делать платья, то для каждого игрока нужен будет свой цвет, значит новая палитра (намного более сложная), так как появится куча новых, соприкасающихся цветов. Хотя от этой идеи действительно тяжело было отказаться.


Бонус в виде Рэрити в разных расцветках!

КОНЕЦ

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

30 комментариев

  • Я думал, что делать игры легко, но потом я пошел на информатику. И прочитал это интервью

    • А мне понравилось, когда встречаешь препятствия, появляется стремление их преодолевать. Даже просто для того, чтобы не повторять действия одни и те же по 100 раз, надо что-нибудь придумывать. Лень — двигатель прогресса. Другое дело, что это все равно очень длительный процесс, даже простую игру писать надо достаточно долго (особенно в одиночку), не говоря уже о чем-то крупном.

  • «Рэрити: этап личинки.»
    сделайте меня это развидеть О_О

    • Опять ава в тему!

      • Этот человек зашёл с аккаунта с сайта. Т.е у него там стоит аватар с Рэрити.

        • Значит он пишет посты под стать аватарке)

  • Вах, статейку-то перевели. Молодцы.

  • O’Rarity и Скутарэрити выглядят неплохо.

  • And that’s how Equestria was made! Интересное интервью, много технических подробностей. Судя по всему, написать собственный движок было бы даже быстрее, учитывая, сколько подводных камней у перевода из Flash в этот FM2K. Жаль, что у них в команде нет такой возможности, да и это действительно очень трудоемкий процесс.

    • Если писать собственный движок, то кроме времени написания нужно выделять время на его отладку. Всё правильно сделали, взяв готовый. Только я статью по диагонали пробежал и не понял, почему взяли именно этот движок, с 256 цветами.

      • «нужно выделять время на его отладку» я про это говорю. Взяли этот, потому что он простой в освоении (больше причин, по крайней мере, в тексте не было).

  • Мне все равно на каком движке и с какой приправой, главное чтобы оно работало! Жаль не понятно, когда выпустят, чтоб играть можно было, уже понравилось- музыка и анимация!
    Надеюсь здешний блог будет следить за новостями и сообщит дату выхода полностью играбельой версии?)

  • Хоть я практически не разбираюсь ни в создании игр (и на готовых движках в том числе), ни в редактировании изображений, все равно читать было интересно, ну и познавательно, конечно.
    Кстати, смеялся в голос от шутки про человека в желтом дождевике)

  • Вы перевели эту стену текста? Ух!
    Сомневаюсь, правда, что многим это будет сильно интересно.

  • Превосходный материал. Вспомнил, как запиливал свою Lost Ponies Dream — удивительно, но как мне, так и авторам из Mane6 приходилось сталкиваться с подобными проблемами =)

  • Куча костылей, бред какой-то.

    P.S. «мы заплатим вас заплатить вдвойне» — редактору нужно выспаться.

  • Очень интересно. Спасибо за перевод!

  • Многабукаф…но осилил.

    P.S готичная Рарити готична ( Рарити с чёрной гривой на последнем изображении )

  • Ну вот… Я то думал, что они там по хардкору свою игруху пилят, а они просто спрайты через задницу в готовый конструктор загоняют…

  • почему я не выжела

  • А когда игра выйдет ?

  • Я не поняла только одного — о чём эта игра?

  • Это файтинг, в них практически нет сюжета (почти во всех)

  • [f[jkhjg.hjgfjgfhgdcghhgcghdcgfgfdxgfxg

  • Я сежу в контакте если хотите вступить в мою групу она называется Ренбоу деш а как меня зовут узнаете там

  • Я не думала, что это так сложно- создавать палитру персонажей.

  • http://files.everypony.ru/ponies/mane6/interview-15.jpg наверно вы узнаете маму Твайлайта

  • а где сылка на тему

  • Кто хочет скачать эту игру?

Комментировать Дерпи

Спам-фильтр:WordPress CAPTCHA