Как бы вы хранили сложные спрайты NES, например, из оригинальной Final Fantasy?

Я знаю, что в NES были 4-цветные спрайты (1 цвет обычно прозрачный Редактировать согласно zneak, 1 цвет всегда прозрачен). Как же тогда в оригинальной Final Fantasy было столько спрайтов с 4 цветами + прозрачность? (Пример листа спрайтов -- особенно обратите внимание на большие внизу.)

Я понимаю, что вы можете наслаивать спрайты для получения дополнительных цветов (например: наслоение Мегамена дает ему 6 цветов: тело = 3 + транс, лицо = 3 + транс). Странно, что эти ФФ все ровно 4 цвета + прозрачный. Если бы в FF использовалось подобное наслоение, почему они остановились бы на 4+1, а не на 6+1?

Есть ли другой способ отображения спрайтов, дающий вам дополнительный цвет?

Также интересен тот факт, что большие спрайты имеют размер 18x26. Спрайты имеют размер 8x8 (мне кажется, я где-то читал, что иногда они бывают 8x16), но и 18, и 26 имеют [множитель 8] + 2. Очень странно.


person Dinah    schedule 20.07.2010    source источник
comment
И оригинальные игры Megaman, и Final Fantasy вышли в 1987 году. Может быть, команда Megaman придумала что-то, чего команда FF еще не до конца осознала?   -  person rampion    schedule 20.07.2010
comment
Самый простой способ победить FF: четыре бойца/рыцаря.   -  person Steve Tjoa    schedule 20.07.2010
comment
@rampion: возможно, но кажется маловероятным. Я очень надеюсь, что реверс-инженер ROM придет и скажет последнее слово. Хотя я не задерживаю дыхание. Сейчас есть только около дюжины вопросов с тегом «nintendo», поэтому я предполагаю, что SO не является основным онлайн-прибежищем для разработчиков NES. Хотел бы я знать, где они тусуются. Я пытаюсь изучить этот материал. Я могу легко найти учебные пособия и другие подобные ресурсы, но не так много в разделе вопросов и ответов.   -  person Dinah    schedule 20.07.2010
comment
может быть кто-то на forum.gbadev.org что-то знает об этом.   -  person ninjalj    schedule 20.07.2010
comment
@ninjalj: спасибо за подсказку. попробую и там.   -  person Dinah    schedule 20.07.2010


Ответы (5)


Насколько я знаю, 1 не обычно прозрачен: он всегда прозрачен.

Как вы заметили, спрайты имеют размер 8x8 или 8x16 (это зависит от бита 6 регистра управления PPU, сопоставленного с адресом памяти 0x2000 в адресном пространстве ЦП). Размеры символов, не кратные 8, просто означают, что в одном или нескольких составляющих спрайтах есть потерянные пиксели.

Что касается цветов, то я позволю себе отличаться: последний спрайт внизу с поднятым мечом имеет следующие 8 цветов: http://img844.imageshack.us/img844/2334/spritecolors.png

Я считаю, что это скорее художественный выбор, потому что каждый блок 8x8 ограничен 3 непрозрачными цветами; может быть, просто было более последовательно использовать меньше цветов.

person zneak    schedule 20.07.2010
comment
RE оружие: правда, но это просто многослойные спрайты, поэтому они не сбивали меня с толку, как это делают те, у кого нет оружия. - person Dinah; 20.07.2010
comment
@Dinah: (используйте @zneak перед своим ответом в комментарии, если хотите ответить мне; таким образом StackOverflow уведомит меня) Тогда это действительно художественный выбор. Они умеют накладывать спрайты, чтобы получить более 5 цветов, даже делают это. Так что это не техническая проблема. - person zneak; 20.07.2010
comment
@Dinah (снова): может быть, на первый взгляд это не очевидно, но на самом деле трудно создавать красивые спрайты с тайлами 8x8/8x16 и не более чем 3 цветами + прозрачными для каждого из них. Я призываю вас попробовать это некоторое время. - person zneak; 20.07.2010
comment
RE '@': интересно, я получил уведомление обо всех комментариях к моему вопросу. Должны быть разными для ответов. RE Красиво выглядящие спрайты с 3-мя цветами: у меня есть, и это очень сложно. Я озадачен, почему они не использовали больше цветов. Поскольку 2 слоя дают 6 цветов, зачем останавливаться на 4? Для большого черного мага в шляпе они используют один из 4 цветов только для затенения шляпы. Похоже, они действительно намеревались использовать только 4. Я предположил, что для этого ограничения должна быть техническая причина. - person Dinah; 20.07.2010
comment
@Dinah: Есть также опасения по поводу ограничений спрайтов. PPU NES поддерживает до 8 спрайтов в одной строке пикселей, и после этого момента они будут отброшены, что не совсем круто. Помните уровни замка Super Mario Bros., мерцающие из-за огненных шаров? Кроме того, фон гораздо более ущербен, чем спрайты в плане цветов (каждый блок фоновых тайлов 16x16 тоже имеет 3 цвета + прозрачный), и сделать красивые спрайты поверх дерьмового фона может быть не намного лучше. В общем, я по-прежнему считаю, что это художественный выбор, учитывая технические ограничения. - person zneak; 20.07.2010

Я нашел ответ. В конце концов я сломался, скачал ПЗУ и извлек растровые изображения с помощью NAPIT. (кстати: смотреть на растровые изображения, извлеченные из ПЗУ, чертовски тяжело для ваших глаз!)

Я сопоставил несколько растровых изображений и конечных результатов здесь.

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

Вот видео на YouTube с множеством хороших примеров. Когда вы находитесь на экране с синим фоном (@ 0:27), контуры и лицо черного мага имеют синий цвет фона (т.е. нет черного контура, он прозрачный). В бою фон черный. @ 1:46 используется заклинание, из-за которого фон становится серым. Все черные области, включая контуры и черные глаза, мигают серым цветом. Вокруг этой части видео также разыгрываются другие заклинания с вспышками разного цвета. Результаты такие же.

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

person Dinah    schedule 23.07.2010

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

person Community    schedule 20.07.2010
comment
леденец: Спасибо! Я не знал об этом. Как только бета-версия станет общедоступной, я опубликую там. - person Dinah; 20.07.2010

Я только что бегло взглянул на лист спрайтов, но мне кажется, что спрайты с более чем 3 цветами + 1 прозрачный либо имеют оружие, либо используют 3 цвета + черный контур. Кроме того, если бы вы могли показать этот лист спрайтов с сеткой, разделяющей тайлы...

person ninjalj    schedule 20.07.2010
comment
Мне тоже было бы интересно посмотреть, где находится разделение между тайлами. Интересно, это что-нибудь прояснит? Что касается 3 цветов + черный: это моя точка зрения. Если нет техники, о которой я не знаю, все цвета, включая черный, занимают один из этих трех непрозрачных цветов, доступных спрайту. Что касается оружия, я предполагаю, что это просто еще одна наложенная плитка с собственными цветами, но я не клянусь в этом. - person Dinah; 20.07.2010
comment
@Dinah: Я подумала, может быть, очертания — это отдельные спрайты, и мне было интересно, какие эффекты вы бы сделали с отдельными очертаниями и цветными спрайтами. - person ninjalj; 21.07.2010
comment
Я думаю, вы должны быть правы. Я сломался и нашел ПЗУ с использованным NAPIT для извлечения тайлов спрайтов. Я не могу найти плитки для контуров, но я могу найти плитки для персонажей. Черная и прозрачная части имеют одну и ту же цветовую маску. Бьюсь об заклад, что цвет прозрачен, а черные части наложены позже. Я давно не играл, но, возможно, если персонаж вспыхивает белым при ударе в бою (или что-то в стиле NES), может быть проще изменить палитру контуров на белый, чем возиться с основной частью персонажа. - person Dinah; 21.07.2010

Возможно, дополнительные 2 цвета были зарезервированы для оружия.

person Joyce    schedule 20.07.2010