3d форум по Blender

Blender => Вопросы от новичков => Тема начата: Aray_Labe от 16 Февраль 2018, 16:20:53

Название: Разделение модели на тайлы
Отправлено: Aray_Labe от 16 Февраль 2018, 16:20:53
Начав, однажды, покорять основы Blender'а захотелось создать простую изометрическую карту из моделек. Где-то вычитал, что именно 3д модели добавляют большую глубину изометрчиеской картинке и усиливают эффект 3Д.
Так вот вопрос: можно ли средствами Blender'а разбить/разрезать большую модельку (например, дом) на набор изометрических тайлов (ромбов)? Или выгоднее использовать какой-то сторонний софт?
Название: Re: Разделение модели на тайлы
Отправлено: Николай Николаев от 16 Февраль 2018, 17:05:17
... поясни - нужно разрезать 2d изображение (результат рендеринга) ил 3d модель? можешь показать пример? ...
Название: Re: Разделение модели на тайлы
Отправлено: Samovar от 16 Февраль 2018, 17:56:57
Цитировать
Так вот вопрос: можно ли средствами Blender'а разбить/разрезать большую модельку (например, дом) на набор изометрических тайлов (ромбов)? Или выгоднее использовать какой-то сторонний софт?
Зачем "резать дом на ромбы"? Вообще смысл тайлов - это оптимизация ресурсов и экономия видеопамяти... Отрендерить в изометрии для игры можно. Есть даже специальное дополнение, чтоб вручную камеру не настраивать...
https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Add_Mesh/Create_IsoCam

С помощью этой штуки очень просто отрендерить изометрические тайлы, надо просто взять затайленые текстуры, допустим тут: http://www.render911.ru
И смешать их как угодно с помощью узлов, по маскам как на прикреплёны картинках...


Затайленое 3D придётся создавать самому ручками... есть хороший для этого инструмент в Блендере- Dupli Faces

Название: Re: Разделение модели на тайлы
Отправлено: Aray_Labe от 16 Февраль 2018, 18:06:16
Сделать что-то типа такого:
https://cdn.tutsplus.com/gamedev/uploads/2013/05/split-big-tile.png

А резать на тайлы, чтобы в редакторе столкновений в дальнейшем определить, какая часть дома (набор тайлов) находится спереди персонажа, а какая сзади. Чтобы персонаж не проваливался в текстуру дома и не проходил сквозь нее сзади.
Название: Re: Разделение модели на тайлы
Отправлено: Samovar от 16 Февраль 2018, 18:21:30
Сделать что-то типа такого:
https://cdn.tutsplus.com/gamedev/uploads/2013/05/split-big-tile.png

А резать на тайлы, чтобы в редакторе столкновений в дальнейшем определить, какая часть дома (набор тайлов) находится спереди персонажа, а какая сзади. Чтобы персонаж не проваливался в текстуру дома и не проходил сквозь нее сзади.
Для этого проще создать карту препятствий теми же тайлами, помимо основной графики, и задав изображениям тайлов карты препятствий большую прозрачность алфа-канала 1, при запуске игры. Столкновения будут учитываться, но карты препятствий видно не будет... А сами объекты сортировать по глубине, относительно положения изображений нижней границы на экране, чтобы верхние объекты отрисовывались раньше чем нижние...


Хотя, да, согласен резать придётся, для того чтобы персонаж не проваливался, если находится в середине дома, но не обязательно на тайлы, а на элементы :)  Это можно устроить в любом  2D графическом редакторе...
Название: Re: Разделение модели на тайлы
Отправлено: Николай Николаев от 16 Февраль 2018, 18:58:17
>> А резать на тайлы, чтобы в редакторе столкновений в дальнейшем определить
... что за редактор столкновений? ...

>> Это можно устроить в любом  2D графическом редакторе...
... если количество большое, то наверное еще можно подумать в сторону автоматизации обработки с помощью imagemagick ...
Название: Re: Разделение модели на тайлы
Отправлено: Samovar от 16 Февраль 2018, 22:21:03

Aray_Labe, возможно я неправ...
Нарыл ещё инфы для понимания и врубания в проблему сортировки спрайтов для изометрии... возможно, кому-то поможет...
https://yal.cc/understanding-isometric-grids/
http://bannalia.blogspot.ru/2008/02/filmation-math.html

То, о чём я писал:
Цитировать
А сами объекты сортировать по глубине, относительно положения изображений нижней границы на экране, чтобы верхние объекты отрисовывались раньше чем нижние...
https://yal.cc/top-down-bouncing-loot-effects/

 
Название: Re: Разделение модели на тайлы
Отправлено: Aray_Labe от 18 Февраль 2018, 17:05:58
Просто интересен процесс и как именно правильно к нему подходить. То есть, насколько я понял, простейший способ - это отрендерить изображение со всеми "изометрическими" настройками камеры, а далее разрезать готовую картинку на ромбы, части уже в графическом редакторе?
Пробовал делать так, но на этапе "склейки" этого объекта из ромбов в одну модель, например, в Tiled - делает просто кашу из ромбов вместо нужного. Получается и разбивать/собирать картинку тоже нужно в каком-то особом порядке?
Название: Re: Разделение модели на тайлы
Отправлено: Николай Николаев от 18 Февраль 2018, 17:27:18
>> Пробовал делать так, но на этапе "склейки" этого объекта из ромбов в одну модель, например, в Tiled - делает просто кашу из ромбов вместо нужного.
... так ты бы выкладывал что у тебя получается/не получается, тогда было бы понятнее в чем тебе помочь ...
Название: Re: Разделение модели на тайлы
Отправлено: Samovar от 19 Февраль 2018, 03:28:08
Aray_Labe, многое зависит от движка... можно вообще сделать в 3D, выставив изометрическую камеру и не парится, там пиксели полигонов моделей сортируются в соответствии с Z-буфером и нет таких проблем, как в 2D, когда надо отрисовку спрайтов (тайлов) сортировать программно самому ...
https://www.youtube.com/watch?v=t1tuft4sDFY
Инфа по теме:
https://ru.wikipedia.org/wiki/Z-буферизация
http://sapr-cad.ru/glava-osnovnye-kontseptsii-graficheskogo-programmirovaniya/metod-zbufera
http://algolist.manual.ru/graphics/3dfaq/articles/31.php
http://www.flasher.ru/forum/blog.php?b=630
в добавок:
https://ru.wikipedia.org/wiki/Категория:Методы_Z-сортировки
https://ru.wikipedia.org/wiki/Двоичное_разбиение_пространства
Название: Re: Разделение модели на тайлы
Отправлено: Samovar от 19 Февраль 2018, 03:46:13
В общем, изометрия в 2D это геморойно :) Если, допустим, сетка шага для персонажа шириной 32 пикселя (ширина спрайта персонажа), то и крупное изображение придётся разбивать на ромбы 32х16...
а если 2D-игра не основана на сетке перемещений персонажа (клетках как в шахматах) по английски Grid Based... то возникнут проблемы... Единственное решение - это попиксельный Z-буфер, но есть ли такая возможность в движке?

хотя погодь ... я попробую порубить твою картинку на тайлы и устроить сортировку как в этом примере https://yal.cc/understanding-isometric-grids/ на движке Game Editor
Название: Re: Разделение модели на тайлы
Отправлено: Samovar от 08 Март 2018, 08:21:53
Нарыл инфу на английском. Там описаны два подхода:


через тайлы
(http://www.openspace-engine.com/images/support/tutorials/mapStructure_2d_5.jpg)


второй подход
(http://www.openspace-engine.com/images/support/tutorials/mapStructure_2d_6.jpg)

(http://www.openspace-engine.com/images/support/tutorials/mapStructure_2d_7.jpg)

(http://www.openspace-engine.com/images/support/tutorials/mapStructure_2d_8.jpg)


http://www.openspace-engine.com/support/tutorials/mapStructure




Пока в Game Editor у меня ничего не вышло с тайлами... буду пробовать второй вариант
Название: Re: Разделение модели на тайлы
Отправлено: Samovar от 17 Март 2018, 17:14:42
Попробовал в Construct Classic
Релизы: http://c2community.ru/forum/viewforum.php?f=29
Думаю, лучше резать на фрагменты от углов...
Название: Re: Разделение модели на тайлы
Отправлено: Samovar от 20 Март 2018, 01:26:14
экзешник и исходник для Cоnstruct Classic внутри архива iso.7z