2016-03-16 3 views
0

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

ответ

0

Это зависит от того, как вы хотите, чтобы ваш ландшафт выглядел. Если вы хотите создать части местности в чем-то внешнем, например Blender, тогда да, все эти части должны будут легко сочетаться. Но это очень много работы, так как вам нужно будет создать множество кусочков, которые подходят друг другу, чтобы пейзаж оставался интересным.

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

Как только вы создали сетку вашего блока, вы можете начать изменять свой код, чтобы указать, как можно изменить высоту вершин, чтобы дать вам интересный ландшафт. Пока первые вершины вашего нового блока находятся на одной высоте (например, y-позиция) в качестве последних вершин вашего текущего блока (при условии, что они имеют одинаковые позиции x и z), они выстраиваются в линию. Тем не менее, вы можете сделать это еще проще, не используя отдельные блоки, а скорее обновив свой объектный меш, чтобы добавить новые вершины и треугольники, чтобы вы создавали ландшафт, который является только одной частью, которая изменяется, а не имеет отдельные блоки.

Существует множество способов создания интересной местности. Одним из наиболее часто используемых функций для создания полуслучайной и интересной местности является Perlin Noise. Еще один его недавний симплексный шум. Как и большинство случайных функций генератора, у него есть начальное значение, которое вы можете отслеживать, чтобы вы могли создать интересный ландшафт. И выровняйте края блоков, если вы все еще хотите использовать отдельные блоки, а не одну сетку, которая динамически расширяется ,

Уверен, что существует много обучающих онлайн-программ о шумовых функциях для процедурного создания ландшафта. Учебники Amit Patel - это хорошие визуальные и интерактивные объяснения, here is one of his tutorials about noise-based landscapes. Взгляните на его другие великие уроки. Будет также много учебников по динамическому созданию сетки, просто выполните поиск Google - быстрый взгляд говорит мне, что CatLikeCoding's Procedural Grid tutorial, вероятно, будет всем, что вам нужно.