Автор Тема: Разделение модели на тайлы  (Прочитано 499 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Aray_Labe

  • Житель
Разделение модели на тайлы
« : 16 Февраль 2018, 16:20:53 »
Начав, однажды, покорять основы Blender'а захотелось создать простую изометрическую карту из моделек. Где-то вычитал, что именно 3д модели добавляют большую глубину изометрчиеской картинке и усиливают эффект 3Д.
Так вот вопрос: можно ли средствами Blender'а разбить/разрезать большую модельку (например, дом) на набор изометрических тайлов (ромбов)? Или выгоднее использовать какой-то сторонний софт?

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Разделение модели на тайлы
« Ответ #1 : 16 Февраль 2018, 17:05:17 »
... поясни - нужно разрезать 2d изображение (результат рендеринга) ил 3d модель? можешь показать пример? ...

Оффлайн Samovar

  • Житель
Re: Разделение модели на тайлы
« Ответ #2 : 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

« Последнее редактирование: 16 Февраль 2018, 18:15:24 от Samovar »

Оффлайн Aray_Labe

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

А резать на тайлы, чтобы в редакторе столкновений в дальнейшем определить, какая часть дома (набор тайлов) находится спереди персонажа, а какая сзади. Чтобы персонаж не проваливался в текстуру дома и не проходил сквозь нее сзади.

Оффлайн Samovar

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

А резать на тайлы, чтобы в редакторе столкновений в дальнейшем определить, какая часть дома (набор тайлов) находится спереди персонажа, а какая сзади. Чтобы персонаж не проваливался в текстуру дома и не проходил сквозь нее сзади.

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


Хотя, да, согласен резать придётся, для того чтобы персонаж не проваливался, если находится в середине дома, но не обязательно на тайлы, а на элементы :)  Это можно устроить в любом  2D графическом редакторе...

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Разделение модели на тайлы
« Ответ #5 : 16 Февраль 2018, 18:58:17 »
>> А резать на тайлы, чтобы в редакторе столкновений в дальнейшем определить
... что за редактор столкновений? ...

>> Это можно устроить в любом  2D графическом редакторе...
... если количество большое, то наверное еще можно подумать в сторону автоматизации обработки с помощью imagemagick ...

Оффлайн Samovar

  • Житель
Re: Разделение модели на тайлы
« Ответ #6 : 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/

 
« Последнее редактирование: 16 Февраль 2018, 23:04:52 от Samovar »

Оффлайн Aray_Labe

  • Житель
Re: Разделение модели на тайлы
« Ответ #7 : 18 Февраль 2018, 17:05:58 »
Просто интересен процесс и как именно правильно к нему подходить. То есть, насколько я понял, простейший способ - это отрендерить изображение со всеми "изометрическими" настройками камеры, а далее разрезать готовую картинку на ромбы, части уже в графическом редакторе?
Пробовал делать так, но на этапе "склейки" этого объекта из ромбов в одну модель, например, в Tiled - делает просто кашу из ромбов вместо нужного. Получается и разбивать/собирать картинку тоже нужно в каком-то особом порядке?

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Разделение модели на тайлы
« Ответ #8 : 18 Февраль 2018, 17:27:18 »
>> Пробовал делать так, но на этапе "склейки" этого объекта из ромбов в одну модель, например, в Tiled - делает просто кашу из ромбов вместо нужного.
... так ты бы выкладывал что у тебя получается/не получается, тогда было бы понятнее в чем тебе помочь ...

Оффлайн Samovar

  • Житель
Re: Разделение модели на тайлы
« Ответ #9 : 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/Двоичное_разбиение_пространства
« Последнее редактирование: 19 Февраль 2018, 03:55:15 от Samovar »

Оффлайн Samovar

  • Житель
Re: Разделение модели на тайлы
« Ответ #10 : 19 Февраль 2018, 03:46:13 »
В общем, изометрия в 2D это геморойно :) Если, допустим, сетка шага для персонажа шириной 32 пикселя (ширина спрайта персонажа), то и крупное изображение придётся разбивать на ромбы 32х16...
а если 2D-игра не основана на сетке перемещений персонажа (клетках как в шахматах) по английски Grid Based... то возникнут проблемы... Единственное решение - это попиксельный Z-буфер, но есть ли такая возможность в движке?

хотя погодь ... я попробую порубить твою картинку на тайлы и устроить сортировку как в этом примере https://yal.cc/understanding-isometric-grids/ на движке Game Editor
« Последнее редактирование: 19 Февраль 2018, 04:12:13 от Samovar »

Оффлайн Samovar

  • Житель
Re: Разделение модели на тайлы
« Ответ #11 : 08 Март 2018, 08:21:53 »
Нарыл инфу на английском. Там описаны два подхода:


через тайлы



второй подход







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




Пока в Game Editor у меня ничего не вышло с тайлами... буду пробовать второй вариант

Оффлайн Samovar

  • Житель
Re: Разделение модели на тайлы
« Ответ #12 : 17 Март 2018, 17:14:42 »
Попробовал в Construct Classic
Релизы: http://c2community.ru/forum/viewforum.php?f=29
Думаю, лучше резать на фрагменты от углов...

Оффлайн Samovar

  • Житель
Re: Разделение модели на тайлы
« Ответ #13 : 20 Март 2018, 01:26:14 »
экзешник и исходник для Cоnstruct Classic внутри архива iso.7z

 

* По форуму

* Последние вложения

2018-12-13_191934.png
Скачано: 3
Автор: oleg126

Скачано: 4
Автор: MusaevRamiz
untitled.jpg
Скачано: 16
Автор: Samovar
17.jpg
Скачано: 19
Автор: nilsen71
15.jpg
Скачано: 13
Автор: nilsen71