Четверг, 04 Марта 2021, 13:35

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать беспрерывный циклический уровень
Как сделать беспрерывный циклический уровень
Valik_FenkoДата: Вторник, 24 Мая 2016, 17:43 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Не смог сформулировать свой вопрос и поэтому гугл ничерта не нашел(
В общем можно ли сделать так чтоб локация повторялась заного .Скажем если пришел от начала карты до конца она заного повторялась.Как бы хотьба по кругу..

Типа как в змейке =).Вышел за границы экрана справа - вылез слева.


Сообщение отредактировал Valik_Fenko - Вторник, 24 Мая 2016, 17:44
URGINSANДата: Вторник, 24 Мая 2016, 18:10 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Valik_Fenko, можно, расставь триггеры по краям карты и перемещай игрока в начало, в зависимости от места где он перешел.

Я на драйве
roma3fonДата: Вторник, 24 Мая 2016, 18:16 | Сообщение # 3
участник
Сейчас нет на сайте
Valik_Fenko, весь вопрос в том, как это должно выглядеть, мы можем подгружать элементы карты по кругу, или перемещать их, если речь идет о бесконечности в даль, тут нужно исхитриться с проекциями, а в змейке перемещается сама змейка, а не карта.
Можно к этому вопросу подойти креативно, и сделать мир в виде шара или цилиндра.


Сообщение отредактировал roma3fon - Вторник, 24 Мая 2016, 18:23
URGINSANДата: Вторник, 24 Мая 2016, 18:29 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
В delta force как то умудрились так сделать, сколько бы я не пробовал покинуть игровой мир, я всегда возвращался в начало.

Я на драйве
ShortKedrДата: Вторник, 24 Мая 2016, 18:55 | Сообщение # 5
Renword Studio
Сейчас нет на сайте
Valik_Fenko, URGINSAN, даже не триггеры, а границы, вроде если позиция x > 50, допустим, то переносим на противоположную сторону. Вообще, это будет смотреться криво.

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

Ещё, если у тебя нет моря, то мир должен быть бесшовный(с морем как раз он имеет бесшовность). Принцип тот-же, но все соседние миры должны полностью копировать оригинальный. Например у нас маленький мир и мы можем увидеть следующие его 50 копий, при этом, если на основном прыгает мячек, то и на другом должно происходить тоже самое. Нужно сделать простой механизм, при котором все объекты соседних миров копируют свойства основного, при этом основной мир тот, в котором мы находимся. Когда переходим на соседнюю копию - то она становится основной. Можно реализовать путём простой смены с копией. Основной мир в позицию игрока

Собственно на схеме у roma3fon, первые две матрицы, показаны эти способы) Всё остальное, считаю будет очень криво)


Сообщение отредактировал ShortKedr - Вторник, 24 Мая 2016, 19:09
MANMANAДата: Среда, 25 Мая 2016, 00:13 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
Ммммм.... а если двумя камерами реализвать, а не по принципу 2D платформера? smile Ведь, платформер не так нагружает систему, как например дублирование (расположение в новых координатах) частей террейна, нет?

http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
LertmindДата: Среда, 25 Мая 2016, 00:39 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
MANMANA, если мир квадратный, то надо 4 камеры, одна у игрока и три со смещением. Или ты про другой способ?
ShortKedrДата: Среда, 25 Мая 2016, 00:50 | Сообщение # 8
Renword Studio
Сейчас нет на сайте
Цитата MANMANA ()
Ведь, платформер не так нагружает систему, как например дублирование (расположение в новых координатах) частей террейна, нет?

Если грамотно реализуешь, то этот способ тоже будет мало нагружать систему)
Lertmind, MANMANA, а вот про способ с камерами не понял, что имеется в виду)


Сообщение отредактировал ShortKedr - Среда, 25 Мая 2016, 00:50
LertmindДата: Среда, 25 Мая 2016, 01:00 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
ShortKedr, не знаю, как именно думал MANMANA, у меня было предположение, что можно добавить камеру на другой стороне карты со смещением равным длине карты, чтобы сначала рендерить ту сторону карты, а потом уже с камеры у игрока. Ещё 2 камеры, чтобы стоя в углу карты, видеть три другие стороны. Это к реализации с перемещением игрока, когда он выйдет за край.

Добавлено (25 мая 2016, 01:00)
---------------------------------------------
Кстати, вроде похоже на реализацию порталов, в которой я так и не разобрался, но хотел.

ShortKedrДата: Среда, 25 Мая 2016, 01:10 | Сообщение # 10
Renword Studio
Сейчас нет на сайте
Lertmind, не знаю, как вы хотите сделать, что бы не было косяков, но 4х рендер - это как-то много, не лучше уж сделать так как я предложил)

Кстати да, это порталы) Но, чтобы это выглядело без косяков, то есть создавалось ощущение, что мы действительно смотрим сквозь стену, так сказать - нужно написать шейдер. Камера рендерила бы cubemap, а шейдер обрабатывал бы его так, чтобы создавалось впечатление, что мы смотрим действительно через портал на объекты с той, другой стороны) Где-то я видел реализацию Real-time отражений на основе cubemap, так вот - это тоже самое, практически)


Сообщение отредактировал ShortKedr - Среда, 25 Мая 2016, 01:11
MANMANAДата: Среда, 25 Мая 2016, 12:34 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
How to make an Infinite world in Unity3d
Есть и ссылка на скрипт для бесконечного террейна. Но тут еще и объекты придется хранить и "расставлять в те же места"
Своего рода world streamer, world stream.
Building endless terrain in Unity3D

А вот шейдером - интересная идея. Существует шейдер, загибающий ( wink ) и изгибающий поверхности. А тут - по-другому бы - создать сферу и шейдером распрямлять поверхность.

А можно и не зацикливать, а генерировать новые участки террейна. Infinite terrain generation in Unity 3D – Part 1

Я собирался и нахожусь в процессе написания серии статей по террейну, но тема настолько обширная и глобальная, что не представляю ,сколько уйдет времени на описания разных вкусностей и заковык smile


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
ShortKedrДата: Среда, 25 Мая 2016, 17:52 | Сообщение # 12
Renword Studio
Сейчас нет на сайте
Цитата MANMANA ()
Я собирался и нахожусь в процессе написания серии статей по террейну, но тема настолько обширная и глобальная, что не представляю ,сколько уйдет времени на описания разных вкусностей и заковык


Вы хотите осветить всю бесконечность методов? biggrin

Вообще к террейну wrap игрового мира не относится по сути. Игровым миром не обязательно должен быть террейн. Террейн же - это просто инструмент.
С шейдером я не это имел ввиду, я имел ввиду порталы и отражения по средствам cubemap. Сгибание - это вроде как просто эффект, моделька не меняется, хотя можно и согнуть, но как-то оно не надо. Насчёт разгибания, думаю, бред, хотя бы в силу кое-каких особенностей рендера(на практике, когда будете писать шейдер, у вас пару косяков всплывёт)

Круглый мир в виде сферы, считаю - просто бредовые мечты. Во первых, сам мир вам придётся моделить на сфере, во вторых с разгибанием вы будете долго возиться. Если изначально не стоит задачи сделать планетки и бегать по ним по кругу(и тут не нужно прямой поверхности).

Самый оптимальный метод для типичной игры - сделать так, как я писал выше:
Цитата ShortKedr ()
Есть идея по лучше. Если, например у тебя конец мира заканчивается морем, можно разбить всё 3д пространство на прямоугольники(x, z) с размерами мира, назовём это чанками, когда в очередной раз мы переходим на другой чанк - игровой мир переносится на него, со всеми объектами. Добавить ещё туман и сделать водную гладь так-же подгружаемую, ну тут уже, думаю нужно её разбить на более маленькие элементы и все видимые части водной глади отображать. При этом они не заранее заготовлены, они появляются в поле видимости и исчезают, когда они нам не нужны.

Ещё, если у тебя нет моря, то мир должен быть бесшовный(с морем как раз он имеет бесшовность). Принцип тот-же, но все соседние миры должны полностью копировать оригинальный. Например у нас маленький мир и мы можем увидеть следующие его 50 копий, при этом, если на основном прыгает мячек, то и на другом должно происходить тоже самое. Нужно сделать простой механизм, при котором все объекты соседних миров копируют свойства основного, при этом основной мир тот, в котором мы находимся. Когда переходим на соседнюю копию - то она становится основной. Можно реализовать путём простой смены с копией. Основной мир в позицию игрока
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать беспрерывный циклический уровень
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2021
free games download
Рейтинг