WorldEditor на Unity. Часть 1
Привет любители стратегий и третьего Варкрафта. Ранее, я публиковал посты о ходе разработке игры ElementalsFight (убийцы Варкрафта). Сейчас я бы хотел поведать о создании редактора.
Этап 1 - Тайловый редактор
Те, кто щупал WorldEditor, помнят, что редактор позволял в пару кликов создать интересную поверхность с переходами от одной текстуры к другой.
Чем же отличается редактор Warcraft`а от привычных нам редакторов в Unity, UnrealEngine и т.д.?
Для 3д они используют Terrain. Это один кусок поверхности, который мы можем модифицировать и рисовать на нем текстуру по принципу графического редактора (Paint).
Да, можно было бы наложить текстуру по тайлам, как в варкрафте, но что делать с возвышенностями\низинами в дальнейшем, ведь видно, что это отдельный участок поверхности?
Поделить изначально на тайлы (куски поверхности) и накладывать текстуру уже на них. Тайлы мы создали, расположили их, базовую текстуру наложили.
Далее, нам нужно рисовать по кускам нашу текстуру. Я решил воспользоваться масками, чтобы вырезать из текстуры нужный кусок и вставить в зависимости от типа текстуры на краях.
Как новичок, я ошибся, и изначально проверял не по углам тайлов на тип текстуры, а по каждой стороне (8 сторон)
Далее, нужно было сделать больше типов текстур, с которым может взаимодействовать наш тайл (4 угла - 4 возможных текстуры по бокам)
Пришлось значительно модифицировать шейдер в Amplify, чтобы добиться желаемого результата (не без костылей). Чтобы каждая последующая текстура перекрывала предыдущую и создавала свой слой.
С этим еще есть некоторые проблемы и есть куда улучшать, но желаемый результат получен. Редактор убийцы Варкрафта3 - в разработке :)Видео-пример работы редактора можете посмотреть ниже