Полезное

Мы Вконтакте

Discord канал

#
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 44
В общем есть блупринт с плоскостью, которая из себя представляет землю. Земля генерируется случайным образом, образуя мир. Но возникли проблемы с растительностью.
Есть ли способ заселить плоскость травой и деревьями в автоматическом режиме, если внутри блупринта рисовать растительность нельзя?

Ну или хотя бы, как заспаунить дерево прямо на поверхности с учётом холмов (Аналог кнопки END в редакторе)?

Спасибо, если кто-нибудь поможет)
Аватара пользователя
Пользователь
Сообщения: 474
Лучше все-таки использовать ландшафт для генерации земли.
Что бы спроекцировать на меш геометрию,можешь спаунить их например чуть выше чем верхняя точка в твоей "земле" (можно баундингбокс взять что бы проверить эту точку) и трассировкой направленной вниз найти точку пересечения с твоей "землей",как точка будет найдена то туда переместить дерево или что там у тебя.
Скорее всего можно так же за счет материала подобное реализовать
Аватара пользователя
Пользователь
Сообщения: 44
Zhernovoy Sergey писал(а):
Лучше все-таки использовать ландшафт для генерации земли.
Что бы спроекцировать на меш геометрию,можешь спаунить их например чуть выше чем верхняя точка в твоей "земле" (можно баундингбокс взять что бы проверить эту точку) и трассировкой направленной вниз найти точку пересечения с твоей "землей",как точка будет найдена то туда переместить дерево или что там у тебя.
Скорее всего можно так же за счет материала подобное реализовать


Мне кажется сложновато будет генерировать ландшафтом. Нужны приличные знания в движке. Хотя, если есть урок, я его с радостью съем)

А можно ли заселить кусок ландшафта растительностью, а потом его сохранить в блупринт? Короче как-нибудь перемещать всё это дело?

Bounding Box это куб, в котором случайным образом определяется точка? Если, да, то как им пользоваться? Звучит круто)
Аватара пользователя
Пользователь
Сообщения: 474
Explorer писал(а):
Zhernovoy Sergey писал(а):
Лучше все-таки использовать ландшафт для генерации земли.
Что бы спроекцировать на меш геометрию,можешь спаунить их например чуть выше чем верхняя точка в твоей "земле" (можно баундингбокс взять что бы проверить эту точку) и трассировкой направленной вниз найти точку пересечения с твоей "землей",как точка будет найдена то туда переместить дерево или что там у тебя.
Скорее всего можно так же за счет материала подобное реализовать


Мне кажется сложновато будет генерировать ландшафтом. Нужны приличные знания в движке. Хотя, если есть урок, я его с радостью съем)

А можно ли заселить кусок ландшафта растительностью, а потом его сохранить в блупринт? Короче как-нибудь перемещать всё это дело?

Bounding Box это куб, в котором случайным образом определяется точка? Если, да, то как им пользоваться? Звучит круто)


1)Просто он оптимизирован, но наверно лучше С++ использовать для него,но точно не скажу(да врде через блупринт не поработать с ним)
2)Можешь делать спаун акторов в своем блупринте,расставлять их,а ссылки на каждый объект записывать в переменную массив,примерно так(ну или статикмешкомпоненту добавлять ,а в ней менять меш)
3)Нет - это "куб" "описанный" вокруг модели,которая полностью в него помещается.При этом этот куб не может вращаться,по этому его можно задать двумя точками,собственно по этому и задается 2 точками верхнего и нижнего его углов.Через блупринт тебе нужно получить доступ к меш ,от него сделать GetBoundingBox,разбив структуру получишь две точке "верха" и "низа",ну оттуда уже соответственно возьмешь Z составляющую
Аватара пользователя
Пользователь
Сообщения: 44
Zhernovoy Sergey писал(а):
3)Нет - это "куб" "описанный" вокруг модели,которая полностью в него помещается.При этом этот куб не может вращаться,по этому его можно задать двумя точками,собственно по этому и задается 2 точками верхнего и нижнего его углов.Через блупринт тебе нужно получить доступ к меш ,от него сделать GetBoundingBox,разбив структуру получишь две точке "верха" и "низа",ну оттуда уже соответственно возьмешь Z составляющую


А, вот оно что, теперь понятно. Спасибо большое) Всех кто мне помогал обязательно запомню)

Zhernovoy Sergey писал(а):
...трассировкой направленной вниз найти точку пересечения с твоей "землей"...


А как определить точку пересечения с землёй? Из Line Trace взять Hit Location?

С деревьями в общем понятно, а как быть с травой?
И ещё, тут появилась новая проблема:
viewtopic.php?f=3&t=1967
Аватара пользователя
Пользователь
Сообщения: 474
Лучше всего сделать отдельный канал для твоей земли (в настройках проекта трейсченел),все его должны игнорировать кроме твоей "земли".Из результатов трассировки берешь ImpactPoint(точка пересечения/попадания),с помощью ImpactNormal(нормали в точке пересечения/попадания) можешь задать положение своему дереву и тд.
Насчет травы возможно так же ,это ж тоже меш,но с несколькими плоскостями с материалом альфы - скорее всего так же.Но учти что тебе нужно всю инфу о порождаемых тобой объектах хранить ,что бы в дальнейшем адекватно обработать.
Вообще например в SourceEngine (пример: half-life2) трава спаунится материалом,то есть в св-вах материала есть скрипт который занимается "расставлением" травы,там где есть материал (при этом можно ставить и другие меши)
Аватара пользователя
Пользователь
Сообщения: 44
Zhernovoy Sergey писал(а):
Лучше всего сделать отдельный канал для твоей земли (в настройках проекта трейсченел),все его должны игнорировать кроме твоей "земли".Из результатов трассировки берешь ImpactPoint(точка пересечения/попадания),с помощью ImpactNormal(нормали в точке пересечения/попадания) можешь задать положение своему дереву и тд.


Извини за нубство, а как после создания канала его использовать?

Zhernovoy Sergey писал(а):
Насчет травы возможно так же ,это ж тоже меш,но с несколькими плоскостями с материалом альфы - скорее всего так же.Но учти что тебе нужно всю инфу о порождаемых тобой объектах хранить ,что бы в дальнейшем адекватно обработать.
Вообще например в SourceEngine (пример: half-life2) трава спаунится материалом,то есть в св-вах материала есть скрипт который занимается "расставлением" травы,там где есть материал (при этом можно ставить и другие меши)


В анриале можно через материал такое сделать? Или тоже надо писать скрипт?
Аватара пользователя
Пользователь
Сообщения: 474
1)В настройках проекта - по умлочанию ставишь значение игноре.Для своей земли настраиваешь в св-вах коллизии свой канал на блок.Что бы все понять нужно как минимум потестировать тебе,объяснять на словах писать много
2) Не подскажу ,с материалами особо далеко не разбирался,достаточно было пару текстур смешать,и по нужным местам раскидать текстуры.Но там есть вроде возможность брать ворлд позишн ,так что скорее всего и можно. Опять же,точно не скажу,возможно кто то другой точно скажет
Аватара пользователя
Пользователь
Сообщения: 44
Zhernovoy Sergey писал(а):
1)В настройках проекта - по умлочанию ставишь значение игноре.Для своей земли настраиваешь в св-вах коллизии свой канал на блок.Что бы все понять нужно как минимум потестировать тебе,объяснять на словах писать много
2) Не подскажу ,с материалами особо далеко не разбирался,достаточно было пару текстур смешать,и по нужным местам раскидать текстуры.Но там есть вроде возможность брать ворлд позишн ,так что скорее всего и можно. Опять же,точно не скажу,возможно кто то другой точно скажет


Всё, с трэйсом разобрался. Ещё раз спасибо)


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница