Как я могу получить текстуры на краях стен, как в Super Metroid и Aquaria?


57

Такие игры, как Super Metroid и Aquaria, представляют местность, где на других частях есть камни и прочее, в то время как глубже за ними (т. Е. Под землей) есть другие детали или просто черный цвет.

введите описание изображения здесь

введите описание изображения здесь

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


1
В Aquaria есть редактор уровней, так что вы можете посмотреть, как именно они создали активы.

2
Кроме просмотра уровня редактора Aquaria, основной метод, используемый здесь, состоит в том, чтобы иметь два (или более) слоя рендеринга ландшафта.
Thedaian

Ответы:


133

Метроид просто использует плитки, ничего особенного там не происходит.

Аквариум, однако, делает что-то довольно умное. Если вы заметите, многие из этих камней на кровати повторяются несколько раз. Вот один из камней, например:

одна разновидность повторяющегося рока с каждым экземпляром в кружке

Похоже, они только что сбросили спрайтов по краям своей местности. Это похоже на то, что сделал Metroid - огромный арсенал краевых плиток, но если вы обратите внимание, вы можете заметить повторение плиток. Аквариумы делают то же самое, кроме каменных спрайтов, а не на сетке.

Как повторить это

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

Во-первых, возьмите себе хорошую кучу каменных спрайтов:

некоторые спрайты перди-рока

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

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

Тада!

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

И другие особенности местности ...

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

  1. Соберите несколько точек через случайные интервалы, а не фиксированные интервалы.
  2. Не просто хранить точку зрения. Также сохраните нормали ребра, из которого вы выбрали точку.
  3. Выберите случайное вращение в пределах определенного диапазона вращения нормали. Например, если нормаль указывает на 30 градусов, выберите поворот в пределах 20 градусов (то есть между 10-50 градусами).
  4. Нарисуйте свой гриб в выбранном повороте и на произвольной длине стебля.

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

Финальные заметки

Поскольку комментатор спросил: я создаю эти изображения в Adobe Photoshop (сокращено здесь на 50% для четких линий) с помощью планшета Wacom Intuos3 (который позволяет рисовать от руки и естественно, а также изменять ширину линии и т. Д.).


25
Хороший ответ! Отличное сопроводительное произведение.
Тим Холт

2
Ух ты, большинство рисунков и фотографий, которые я когда-либо видел в ответе.
Xeoncross

Лучший ответ. Отличная работа
Эллис

2
@ Джонатан Хоббс: Очень хорошая работа. Вы рисовали все это? Если да, то какую программу вы использовали? Мне очень нравится результат и эффект, который он дает, когда пытаюсь что-то продемонстрировать. Благодарю.
Джесси Эмонд

4
Я думаю: «Мне нужно получить один из этих планшетов, чтобы я мог сделать такое хорошее искусство!» Тогда я думаю: «О, хорошо, я все равно
плохо умею

3

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

Надеюсь, это поможет.


После этого вы МОЖЕТЕ визуализировать его и просто использовать плоскости для достижения того же результата (при условии, что они предназначены только для переднего плана, и игрок никогда не прикасается к ним, таким образом, многоугольник внутри сцены будет меньше, так как возможно, чтобы иметь как можно больше объекты дублированы (как в примерах 2 выше) будет весьма интенсивным поли.
Dan_Tsukasa

Если вы используете треугольную полосу для создания границы, она будет менее интенсивной (N / 2) +2, но вы не сможете получить хороший эффект «перекрытия» без создания конкретных плиток.
Джонатан Коннелл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.