Нет, нет, речь не про маппинг в нетрезвом состоянии.
Речь пойдёт о построении секторов, повёрнутых на 45.
Как вариант, можно сначала нарисовать локацию под прямым углом, затем повернуть ее.
Однако, неизбежна проблема с выравниванием вершин секторов по сетке.
А уж редактировать такие участки - способ заработать себе головную боль.
Сразу скажу, из-за того, что текстуры придётся в любом случае немного растягивать, поворачивать,
этот способ подойдёт для UDMF формата. Для классики всё же более-менее вариантом будет создание и поворот целой локации.
Итак, здесь изображён квадрат (А) 64х64 и его приближенный диагональный вариант (Б).
Б можно спокойно нарисовать по сетке, перемещать по ней, делить (перед этим уменьшив сетку), склеивать.
Особенностью Б является то, что его линии кратны трём.
Получается такое соотношение, что у линий А 4 элемента по 16 примерно равны 3 диагональным элементам.
Длина линии у А - 64, а у Б примерно 68 (67.88).
Тут свойства пола и потолка, они повёрнуты и имеют одно значение в scale: 0.9428, которая выравнивает текстуру по сектору.
Здесь у стен указывается только scale по ширине линии - 0.95. Это округлённая величина 0.9428.
Дело в том, что у игры/редактора/формата точность scale у стен не такая высокая в отличии от пола и потолка. В общем, 0.95 будет достаточно.
Однако, из-за этой низкой точности такая текстура стены с длиной 6516 будет не совпадать с полом на 6-8 пикселей.
Поэтому такие длинные стены лучше разбивать, благо, что это просто, т.к. всё привязано к сетке.
Откуда взялась 0.9428? Сейчас объясню:
Скрытый текст:
Ранее я упомянул соотношение линий А и Б, и что диагональная версия 64 будет 67.88.
И если 64 разделить на 67.88, то получится 0.9428. Чтобы найти диагональную версию, например, для 512,
достаточно разделить его на это же число (0.9428). т.е. оно работает с любыми размерностями.
Чтобы объяснить его природу, нужно прибегнуть к математике.
Дело в том, что диагональ - это по-сути гипотенуза равных катетов. А отношение гипотенузы и равных катетов - это квадратный корень двух.
т.е. у 67.88 оба катета равны 48. Это 3 элемента по 16. Соответственно 4 элемента по 16 уже будет 64.
Вырисовывается такая формула отношения:
67.88 = 64 / 4 * 3 * квадратный_корень(2)
67.88 = 64 * 0,75 * квадратный_корень(2)
Теперь выведем отношение:
0.9428 = 64 / 67,88
0.9428 = 64 / (64 * 0,75 * квадратный_корень(2))
0.9428 = 1 / (0,75 * квадратный_корень(2))
Если быть более точным, то 0.94280904158206336586779248280647.
0.75 - это соотношение, когда мы хотим от числа, кратного 4, получить кратный 3 катет приблизительной диагонали к числу.
квадратный корень - это быстрый способ решения задачи Пифагора. Между прочим иррациональное число.
Такие вот дела. Если честно, совсем не уверен, что грамотно объяснил, но как мог. Если что, задавайте вопросы.)
soldierDude Есть небольшая хитрость, при маппинге под углом лучше просто использовать текстуры без явного тайлинга (типа FLAT19 ).
А под углом ставить только декоротивные элементы. Типа ламп или каких-то объектов. Такой подход в разы упростит жизнь, чем пытаться изначально выстраивать по сетке, от которой потом нельзя будет отвязаться.