Генератор ландшафта и динамическая растительность - Форум Игроделов
Пн, 20 Май 2024, 09:56 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Генератор ландшафта и динамическая растительность
Генератор ландшафта и динамическая растительность
DefakeДата: Чт, 13 Мар 2014, 11:37 | Сообщение # 1
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте, у меня есть два вопроса по unity3d.
Все помнят игру Spore? Там ландшафт на планетах генерировался случайно, случайно генерировались поселения, растения, водоемы и пр. Так же было и в Darkspore (по слухам, сам я не играл). То как деревья делать динамически, понятно - в определенной зоне поставить определенное количество деревьев в рандомных точках. А что делать с ландшафтом, водоемами? Как их по уровню распределить динамически?

Второй вопрос: что будет, если вместо деревьев из редактора юнити делать их простыми модельками? Производительность не уменьшится? То же самое с травой: если делать ее не с помощью редактора уровней, а отдельным объектом каждый раз, то производительность не уменьшится? Если это не безумие, тогда сколько можно расставить таких растительных объектов по локации, чтобы было нормально играть, в случае если:
1) если они просто модельки на карте
2) если они динамические: ну там стрельнул - дерево сломалось, на траву наступил - примялась
?


Юнька супер, юнька класс!
Блитз мы смоем в унитаз!!
 
СообщениеЗдравствуйте, у меня есть два вопроса по unity3d.
Все помнят игру Spore? Там ландшафт на планетах генерировался случайно, случайно генерировались поселения, растения, водоемы и пр. Так же было и в Darkspore (по слухам, сам я не играл). То как деревья делать динамически, понятно - в определенной зоне поставить определенное количество деревьев в рандомных точках. А что делать с ландшафтом, водоемами? Как их по уровню распределить динамически?

Второй вопрос: что будет, если вместо деревьев из редактора юнити делать их простыми модельками? Производительность не уменьшится? То же самое с травой: если делать ее не с помощью редактора уровней, а отдельным объектом каждый раз, то производительность не уменьшится? Если это не безумие, тогда сколько можно расставить таких растительных объектов по локации, чтобы было нормально играть, в случае если:
1) если они просто модельки на карте
2) если они динамические: ну там стрельнул - дерево сломалось, на траву наступил - примялась
?

Автор - Defake
Дата добавления - 13 Мар 2014 в 11:37
VolkOrievithДата: Чт, 13 Мар 2014, 15:34 | Сообщение # 2
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Цитата Defake ()
стрельнул - дерево сломалось, на траву наступил - примялась

Это вам к создателям FarCry 2 надо обращаться)) Насколько я знаю, Unity большого кол-ва объектов не поддерживает.
Насчет ландшавта вам url=http://gamecreatingcommunity.ru/forum/86-1650-1]сюда[/url]
Про динамическое распределение по уровню - Random вам в руки и мануал на шею smile
Цитата Defake ()
что будет, если вместо деревьев из редактора юнити делать их простыми модельками?

Можно. Нужен просто особый материал, при котором стандартный Terrain из моделек делает 2d объекты. В стандартном паке его нет, но деревья можно скачать где-то на форуме. Не помню где, но я качал. Там в паке есть нормальный материал.
А вот про траву объектами - это, наверно, только через терраин. Там ведь в разделе травы можно и просто 3д модельки поставить.


Сообщение отредактировал VolkOrievith - Чт, 13 Мар 2014, 15:35
 
Сообщение
Цитата Defake ()
стрельнул - дерево сломалось, на траву наступил - примялась

Это вам к создателям FarCry 2 надо обращаться)) Насколько я знаю, Unity большого кол-ва объектов не поддерживает.
Насчет ландшавта вам url=http://gamecreatingcommunity.ru/forum/86-1650-1]сюда[/url]
Про динамическое распределение по уровню - Random вам в руки и мануал на шею smile
Цитата Defake ()
что будет, если вместо деревьев из редактора юнити делать их простыми модельками?

Можно. Нужен просто особый материал, при котором стандартный Terrain из моделек делает 2d объекты. В стандартном паке его нет, но деревья можно скачать где-то на форуме. Не помню где, но я качал. Там в паке есть нормальный материал.
А вот про траву объектами - это, наверно, только через терраин. Там ведь в разделе травы можно и просто 3д модельки поставить.

Автор - VolkOrievith
Дата добавления - 13 Мар 2014 в 15:34
DefakeДата: Пт, 14 Мар 2014, 06:04 | Сообщение # 3
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Цитата
Насчет ландшавта вам

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

Цитата
Насколько я знаю, Unity большого кол-ва объектов не поддерживает

Я проводил небольшой тест - ставил спаунер кубиков и через каждые 0.005f дельта тайма там создавался новый. Когда перевалило за 2100 - резко начало лагать. Но это ведь 2100 объектов, которые единовременно падают, отскакивают, сталкиваются. Ставил после 2100 блок, и тогда, когда все кубики достигали земли и успокаивались, лагать переставало. Значит, статичные объекты, вроде деревьев, не должны ведь занимать столько ресурсов, даже если у каждого будет код?

Цитата
Нужен просто особый материал, при котором стандартный Terrain из моделек делает 2d объекты

Из деревьев делать 2д объекты? Эмм... Я что-то не понимаю?

Цитата
через терраин. Там ведь в разделе травы можно и просто 3д модельки поставить.

А код к каждому объекту травы можно поставить?
Скорее всего это не то.. Я хочу добавить и что-то вроде спаунера травы и к каждому мини-кустику простенький код:
Есть стадия роста, и есть скрипт умирания, когда траву съедают. Если это будет возможно, то и что-то типа примятия, когда наступаешь на траву


Юнька супер, юнька класс!
Блитз мы смоем в унитаз!!


Сообщение отредактировал Defake - Пт, 14 Мар 2014, 06:24
 
Сообщение
Цитата
Насчет ландшавта вам

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

Цитата
Насколько я знаю, Unity большого кол-ва объектов не поддерживает

Я проводил небольшой тест - ставил спаунер кубиков и через каждые 0.005f дельта тайма там создавался новый. Когда перевалило за 2100 - резко начало лагать. Но это ведь 2100 объектов, которые единовременно падают, отскакивают, сталкиваются. Ставил после 2100 блок, и тогда, когда все кубики достигали земли и успокаивались, лагать переставало. Значит, статичные объекты, вроде деревьев, не должны ведь занимать столько ресурсов, даже если у каждого будет код?

Цитата
Нужен просто особый материал, при котором стандартный Terrain из моделек делает 2d объекты

Из деревьев делать 2д объекты? Эмм... Я что-то не понимаю?

Цитата
через терраин. Там ведь в разделе травы можно и просто 3д модельки поставить.

А код к каждому объекту травы можно поставить?
Скорее всего это не то.. Я хочу добавить и что-то вроде спаунера травы и к каждому мини-кустику простенький код:
Есть стадия роста, и есть скрипт умирания, когда траву съедают. Если это будет возможно, то и что-то типа примятия, когда наступаешь на траву

Автор - Defake
Дата добавления - 14 Мар 2014 в 06:04
seamanДата: Пт, 14 Мар 2014, 08:11 | Сообщение # 4
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Но это ведь 2100 объектов, которые единовременно падают, отскакивают, сталкиваются.

Из-за коллайдеров. Юнити не держит много коллайдеров. Были даже попытки прицепить к юнити другой физический движок.
Цитата
Из деревьев делать 2д объекты? Эмм... Я что-то не понимаю?

На расстоянии меняем деревья на импосторы/билборды ...
Цитата
А код к каждому объекту травы можно поставить?

Зачем? Чтобы "колыхалась"? Это делается не кодом, а шейдером.
Цитата
Есть стадия роста, и есть скрипт умирания, когда траву съедают. Если это будет возможно, то и что-то типа примятия, когда наступаешь на траву

Для этого вам нужен комп типа такого:
http://ru.wikipedia.org/wiki/IBM_Watson
 
Сообщение
Цитата
Но это ведь 2100 объектов, которые единовременно падают, отскакивают, сталкиваются.

Из-за коллайдеров. Юнити не держит много коллайдеров. Были даже попытки прицепить к юнити другой физический движок.
Цитата
Из деревьев делать 2д объекты? Эмм... Я что-то не понимаю?

На расстоянии меняем деревья на импосторы/билборды ...
Цитата
А код к каждому объекту травы можно поставить?

Зачем? Чтобы "колыхалась"? Это делается не кодом, а шейдером.
Цитата
Есть стадия роста, и есть скрипт умирания, когда траву съедают. Если это будет возможно, то и что-то типа примятия, когда наступаешь на траву

Для этого вам нужен комп типа такого:
http://ru.wikipedia.org/wiki/IBM_Watson

Автор - seaman
Дата добавления - 14 Мар 2014 в 08:11
DefakeДата: Пт, 14 Мар 2014, 12:00 | Сообщение # 5
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Цитата
Юнити не держит много коллайдеров.

Эмм.. А может это исправили в старших версиях?
Или может просто сделать, чтобы поддерживались коллайдеры вблизи, а дальние отключались на время?
Просто тогда мне не имеет смысла больше изучать unity.
Или же вы имели в виду, что unity не может справиться с лагами, когда идет взаимодействие коллайдеров? Если так, то всё нормально, я об этом знаю, и мне не нужны сильные возможности физики. Мне просто нужно много статичных объектов, у которых есть код.
Цитата
Чтобы "колыхалась"? Это делается не кодом, а шейдером

Нет, мне не нужно, чтобы трава колыхалась. (Кстати, до сих пор не знаю, что такое шейдеры.. Надо бы почитать)
Цитата
Для этого вам нужен комп типа такого

Ну почему? Я же не собираюсь делать столько травы. У меня есть несколько водоемов - около них растет травка, на двух полянках, так же есть пару областей из кустарников, и есть лес. Я хочу сделать что-то типа мини-экосистемы. Чтобы травоядные животные могли есть траву. Почему я не могу добавить код каждому растительному объекту? Код ведь совсем несложный, строчек 10-20 (В случае с травой, например. У дерева, скорее всего, сложнее)


Юнька супер, юнька класс!
Блитз мы смоем в унитаз!!


Сообщение отредактировал Defake - Пт, 14 Мар 2014, 12:19
 
Сообщение
Цитата
Юнити не держит много коллайдеров.

Эмм.. А может это исправили в старших версиях?
Или может просто сделать, чтобы поддерживались коллайдеры вблизи, а дальние отключались на время?
Просто тогда мне не имеет смысла больше изучать unity.
Или же вы имели в виду, что unity не может справиться с лагами, когда идет взаимодействие коллайдеров? Если так, то всё нормально, я об этом знаю, и мне не нужны сильные возможности физики. Мне просто нужно много статичных объектов, у которых есть код.
Цитата
Чтобы "колыхалась"? Это делается не кодом, а шейдером

Нет, мне не нужно, чтобы трава колыхалась. (Кстати, до сих пор не знаю, что такое шейдеры.. Надо бы почитать)
Цитата
Для этого вам нужен комп типа такого

Ну почему? Я же не собираюсь делать столько травы. У меня есть несколько водоемов - около них растет травка, на двух полянках, так же есть пару областей из кустарников, и есть лес. Я хочу сделать что-то типа мини-экосистемы. Чтобы травоядные животные могли есть траву. Почему я не могу добавить код каждому растительному объекту? Код ведь совсем несложный, строчек 10-20 (В случае с травой, например. У дерева, скорее всего, сложнее)

Автор - Defake
Дата добавления - 14 Мар 2014 в 12:00
игнатДата: Пт, 14 Мар 2014, 14:43 | Сообщение # 6
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Вы понимаете что вообще не один 3D двиг не справиться с такой задачей.
Во-первых, трава нужна везде одинакова - иначе не красиво. Во-вторых, Вы считать траву не пробовали? И даже не прикинули.
Миллионы скриптов - Вы представляете, что это? Трава гнётся шейдером, тригер для коровы - тригером.



Правила форума · участник GCC
 
СообщениеВы понимаете что вообще не один 3D двиг не справиться с такой задачей.
Во-первых, трава нужна везде одинакова - иначе не красиво. Во-вторых, Вы считать траву не пробовали? И даже не прикинули.
Миллионы скриптов - Вы представляете, что это? Трава гнётся шейдером, тригер для коровы - тригером.

Автор - игнат
Дата добавления - 14 Мар 2014 в 14:43
seamanДата: Пт, 14 Мар 2014, 16:07 | Сообщение # 7
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Сколько будет "кустиков" травы?
Цитата
Или может просто сделать, чтобы поддерживались коллайдеры вблизи, а дальние отключались на время?

Естественно.
 
СообщениеСколько будет "кустиков" травы?
Цитата
Или может просто сделать, чтобы поддерживались коллайдеры вблизи, а дальние отключались на время?

Естественно.

Автор - seaman
Дата добавления - 14 Мар 2014 в 16:07
DefakeДата: Пт, 14 Мар 2014, 23:27 | Сообщение # 8
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
игнат, по совету скачал Far Cry 2, посмотрел. Ведь тот движок справился. Трава сгорает, а значит на ней есть скрипты, она придавливается, когда по ней проезжаешь машиной. Кусты гнутся, уничтожаются стебель за стеблем, деревья ломаются, всё подвержено пожарам. Там ведь тоже значит много скриптов. Но у меня локация в разы меньше и растительности там тоже не столько же. И почему миллионы? Тыщи две - это просто максимальный максимум.
"кустики" травы - я и назвал, чтобы вы не подумали, что я хочу сделать скрипт для каждой травинки. Я имею в виду для каждой единицы травы. Ну то есть как бы кустик)
Цитата
Естественно

Я в смысле, это предусмотрено в движке, что коллайдеры отключаются или это самому писать?
Цитата
Или же вы имели в виду, что unity не может справиться с лагами, когда идет взаимодействие коллайдеров?

Вы так и не ответили. Вы имели в виду это или то, что в принципе юнити не держит большое количество коллайдеров. Как лимит объектов на сцене. Или не всё так плохо?


Юнька супер, юнька класс!
Блитз мы смоем в унитаз!!
 
Сообщениеигнат, по совету скачал Far Cry 2, посмотрел. Ведь тот движок справился. Трава сгорает, а значит на ней есть скрипты, она придавливается, когда по ней проезжаешь машиной. Кусты гнутся, уничтожаются стебель за стеблем, деревья ломаются, всё подвержено пожарам. Там ведь тоже значит много скриптов. Но у меня локация в разы меньше и растительности там тоже не столько же. И почему миллионы? Тыщи две - это просто максимальный максимум.
"кустики" травы - я и назвал, чтобы вы не подумали, что я хочу сделать скрипт для каждой травинки. Я имею в виду для каждой единицы травы. Ну то есть как бы кустик)
Цитата
Естественно

Я в смысле, это предусмотрено в движке, что коллайдеры отключаются или это самому писать?
Цитата
Или же вы имели в виду, что unity не может справиться с лагами, когда идет взаимодействие коллайдеров?

Вы так и не ответили. Вы имели в виду это или то, что в принципе юнити не держит большое количество коллайдеров. Как лимит объектов на сцене. Или не всё так плохо?

Автор - Defake
Дата добавления - 14 Мар 2014 в 23:27
seamanДата: Сб, 15 Мар 2014, 14:45 | Сообщение # 9
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Там ведь тоже значит много скриптов.

Для сгорания не нужны скрипты на каждой травинке. Нужен один скрипт "включающий" огонь, изменяющий текстуру распределения травы по поверхности и заменяющий текстуру самой поверхности.
Цитата
деревья ломаются

Это тоже можно сделать двумя способами. Как собираетесь Вы (также сделано во многих плагинах "разрушения" для Юнити) - на каждом стволе скрипт, который подменяет единый меш на куски. Или второй способ - единый скрипт, который в реальном времени генерит эти куски. Второй способ сложнее, но думаю в FarCry реализован именно он.
 
Сообщение
Цитата
Там ведь тоже значит много скриптов.

Для сгорания не нужны скрипты на каждой травинке. Нужен один скрипт "включающий" огонь, изменяющий текстуру распределения травы по поверхности и заменяющий текстуру самой поверхности.
Цитата
деревья ломаются

Это тоже можно сделать двумя способами. Как собираетесь Вы (также сделано во многих плагинах "разрушения" для Юнити) - на каждом стволе скрипт, который подменяет единый меш на куски. Или второй способ - единый скрипт, который в реальном времени генерит эти куски. Второй способ сложнее, но думаю в FarCry реализован именно он.

Автор - seaman
Дата добавления - 15 Мар 2014 в 14:45
waruiyumeДата: Сб, 15 Мар 2014, 15:23 | Сообщение # 10
Нет аватара
 
Сообщений: 85
Награды: 1
Репутация: 37
Статус: Offline
Мимо крокодил
http://jflevesque.com/2012....spreads


 
СообщениеМимо крокодил
http://jflevesque.com/2012....spreads

Автор - waruiyume
Дата добавления - 15 Мар 2014 в 15:23
seamanДата: Сб, 15 Мар 2014, 20:45 | Сообщение # 11
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Есть и для Юнити огонь:
http://unity3d.ru/distrib....=t&sd=a
Но там как раз Вашим способом. Для травы не пойдет.
 
СообщениеЕсть и для Юнити огонь:
http://unity3d.ru/distrib....=t&sd=a
Но там как раз Вашим способом. Для травы не пойдет.

Автор - seaman
Дата добавления - 15 Мар 2014 в 20:45
DefakeДата: Вт, 18 Мар 2014, 22:32 | Сообщение # 12
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Цитата
изменяющий текстуру распределения травы по поверхности

трава исчезает и деревья становятся без листьев. Это всё текстуры?
waruiyume, seaman, спасибо за огонь, почитаю.
Цитата
единый скрипт, который в реальном времени генерит эти куски

Не понимаю, как это. Ну допустим да, скрипт отлавливает попадание в дерево пули и создает упавшую ветку. А в самом дереве как в этом случае исчезнет ветка?


Юнька супер, юнька класс!
Блитз мы смоем в унитаз!!
 
Сообщение
Цитата
изменяющий текстуру распределения травы по поверхности

трава исчезает и деревья становятся без листьев. Это всё текстуры?
waruiyume, seaman, спасибо за огонь, почитаю.
Цитата
единый скрипт, который в реальном времени генерит эти куски

Не понимаю, как это. Ну допустим да, скрипт отлавливает попадание в дерево пули и создает упавшую ветку. А в самом дереве как в этом случае исчезнет ветка?

Автор - Defake
Дата добавления - 18 Мар 2014 в 22:32
игнатДата: Ср, 19 Мар 2014, 14:37 | Сообщение # 13
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Как-как? Удаляется.
Делается динамическая система разрушения объектов. А если будет много времени и средств, то можно всё сделать раздельно.



Правила форума · участник GCC
 
СообщениеКак-как? Удаляется.
Делается динамическая система разрушения объектов. А если будет много времени и средств, то можно всё сделать раздельно.

Автор - игнат
Дата добавления - 19 Мар 2014 в 14:37
DefakeДата: Чт, 20 Мар 2014, 20:18 | Сообщение # 14
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
игнат, вот я про это. Как удаляется, моделька-то целостная? Или как раз куча моделек веток и они как-то на уровне собираются вместе?
Или же моделька, в которой сгруппированы ветки? Тогда ведь тоже код в кусте нужен, чтобы понять, какую часть удалять

И, кстати, про сгибание травы. Как там дело обстоит?
Цитата
единый скрипт, который в реальном времени генерит...

Так же? (только не пойму, можно ли будет скриптом отловить юньковствую траву?)


Юнька супер, юнька класс!
Блитз мы смоем в унитаз!!


Сообщение отредактировал Defake - Чт, 20 Мар 2014, 20:19
 
Сообщениеигнат, вот я про это. Как удаляется, моделька-то целостная? Или как раз куча моделек веток и они как-то на уровне собираются вместе?
Или же моделька, в которой сгруппированы ветки? Тогда ведь тоже код в кусте нужен, чтобы понять, какую часть удалять

И, кстати, про сгибание травы. Как там дело обстоит?
Цитата
единый скрипт, который в реальном времени генерит...

Так же? (только не пойму, можно ли будет скриптом отловить юньковствую траву?)

Автор - Defake
Дата добавления - 20 Мар 2014 в 20:18
игнатДата: Чт, 20 Мар 2014, 20:43 | Сообщение # 15
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Цитата Defake ()
И, кстати, про сгибание травы. Как там дело обстоит?

Это шейдер.
С придумыванием крафтинга дерева у меня возникли небольшие проблемы.



Правила форума · участник GCC
 
Сообщение
Цитата Defake ()
И, кстати, про сгибание травы. Как там дело обстоит?

Это шейдер.
С придумыванием крафтинга дерева у меня возникли небольшие проблемы.

Автор - игнат
Дата добавления - 20 Мар 2014 в 20:43
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Генератор ландшафта и динамическая растительность
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024