012| Основы процедурной генерации контента (PCG) в Unreal Engine 5.2.1

Поділитися
Вставка
  • Опубліковано 28 січ 2025

КОМЕНТАРІ • 43

  • @Mr_Fortnite_007
    @Mr_Fortnite_007 2 місяці тому +2

    видео урок длинный но очень поучительный.
    я непременно в будущем буду использовать этот урок чтобы создать что-то для своих проектов Спасибо за видео урок я вам очень благодарен

    • @svaretsky
      @svaretsky  2 місяці тому

      @@Mr_Fortnite_007 но урок уже весьма устаревший. В версиях движка 5.3, 5.4 и 5.5 добавили очень много всего.

  • @ЮраЗарубин-з4л
    @ЮраЗарубин-з4л Рік тому +1

    Добрый день. Как всегда на высоте! Но хотелось бы сделать пару предложений и есть просьба. Предложения: 1) на мой взгляд не стоит делать так много Static Mesh Spawner. Вы на каждые меш сделали отдельную ноду, можно в одну ноду засунуть несколько мешей одинаковых по размеру, по размеру - это важно т.к. при необходимости измений размера меша трансформировать вы будете всю группу сразу. Тем не менее управлять можно целой группой, а не отдельно каждой нодой с мешем. Если нужно увеличить число каких-то мешей, а какие-то наоборот убавить то там есть вес. 2) Добавьте в BP Forest + PCG и укажите этот PCG_Forest и тогда его не надо будет его вытаскивать на ландшафт, он типа сам погрузится вместе со сплайном. Вытаскивать будете только сплайн. Это просто удобней.
    Просьба: вы можете объяснить как сделать так, чтобы после размещения сплйана Forest и "сброса" его точек на ландшафт вычесть из этих точек точки сплайна Дороги? Т.е. скинули точки Forest на землю, скинули точки Дороги на землю и уже за тем вычли. У меня никак не получается сделать это именно в таком порядке. Вычесть из одного сплайна другой я могу только если точки этих сплайнов еще в "воздухе".

    • @svaretsky
      @svaretsky  Рік тому

      С помощью ноды Different происходит вычитание. У меня в уроке этот момент показан.

    • @ЮраЗарубин-з4л
      @ЮраЗарубин-з4л Рік тому

      @@svaretsky Поместите сплайн леса повыше, а сплайн дороги пониже, так что бы их точки не соприкасались. Потом уроните их на поверхность, и только после этого попробуйте вычесть. Вы их вычитаете ДО того как опустите на землю, да, в таком виде это работает. А вот после того как они прилипнут к земле - нет. И почему не понятно. Даже если эти точки будут в одном PCG_Main создоваться от разных сплайнов.
      Тут смотрите какая сложность. Зачем мне это все нужно вообще. Когда создается сплайн леса то все норм, он "падает" на землю и все красиво. А теперь вам, как разработчику надо добавить дорогу и вот тут возникает проблема. Какая? Если вы просто разместите сплайн Дороги в поле сплайна Лес то все сработает, вы даже сможете создать точки по сплайну, скинуть их вниз на поверхность и привязать к ним палки/ветки, НО текстура будет общей - обычной текстурой поверхности. Да, можно как в уроке нарисовать дорогу руками, НО если вы захотите дорогу переместить то вы переместите только сплайн Дороги, но не нарисованную вами дорогу вручную. Она останется на старом месте.
      Моя идея была в том чтобы сделать Дорогу полностью генерированной. Это Текстура дороги (например грязь)+ Подтягивание/Вдавливание поверхности, т.е. изменение геометрии + Мелкие объекты (камни/ветки).
      Я пересмотрел все что только смог найти по этим вопросам. Выяснил следующее: 1) Нарисовать Текстуру можно только в разделе ландшафта. Выбираем сплайн и размещаем. Все просто. В настройках к нему есть три основных, как по мне, параметра: а) Текстура б) Меш (например асфальтовое покрытие - если надо) 3) изменение геометрии поверхности (вдавливание или ВЫдавливание). Мало того, можно выделить отдельный слой для Сплайнов и там будут только сплайны и они будут автоматом подтягивать поверхность или вдавливать. И вроде Ура, все круто, но вот тут-то и вылазить проблема невозможности вычесть из сплайна Леса, сплайн дороги.
      Т.е. Дорога идет по поверхности ландшафта. Лес Изначальный весит в воздухе, а когда ты раняешь точки леса на ландшафт, на Дорогу, он их НЕ вычитает. Обидно(
      Да, решение я нашел, но это жуть. Можно в BoundersModification выставить высоту точек сплайна Дороги = 30000, они уходят в небеса и там вычитаются из изначального сплайна Леса, но, блин, серьезно? Я считаю мне просто мозгов не хватает сделать это правильно, или глаз замылился, так как эту тему я месяца полтора - два долблю уже.
      Помогите пожалуйста(((
      П.с. Извините что так много текста, нагорело.(

    • @svaretsky
      @svaretsky  Рік тому

      @@ЮраЗарубин-з4л а зачем сплайны привязывать к земле? Пусть себе висят. Я привязываю лишь точки, которые они создают.

    • @svaretsky
      @svaretsky  Рік тому

      @@ЮраЗарубин-з4л мне наверное не понять проблему, пока с ней не столкнусь. Урок был по основам. Поэтому на более сложные темы я пока не могу давать советов. Я стараюсь идти от простого к сложному.

    • @ЮраЗарубин-з4л
      @ЮраЗарубин-з4л Рік тому

      @@svaretsky понял, буду ждать новых уроков.

  • @barmaleevmax
    @barmaleevmax Рік тому

    Вопрос: на 28:30 зачем применять денсити фильтр на этапе смещения инстансов, когда мы рандомность положению задаем? Можно же просто ко всей массе применить трансформ поинтс?
    Вопрос номер 2: можно ли как-то денсити привязать к скейлу? Чтобы не ступенчатый такой был край, а плавненько поднималась растительность. Обратил внимание, что есть в блюпринтах Houdini spline, поэтому проведу гудиневскую аналогию)) Денсити умножить на pscale как-то есть возможность?
    Вопрос 3: можно ли использовать сразу лендскейповский сплайн, из которого сделана дорога для создания пробелов в лесу?
    ЗЫ По второму вопросу увидел ответ: "scale by dencity" правильно?

    • @svaretsky
      @svaretsky  Рік тому

      Я чуть позже постараюсь ответить, потому что для этого мне потребуется пересмотреть ролик.

    • @svaretsky
      @svaretsky  Рік тому

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

  • @Дмитрийсекрет-н7о

    крутой видос

  • @vals4903
    @vals4903 Рік тому

    Здравствуйте! Благодарю за уроки, все наглядно. Работаю в 5.3. Единственно столкнулся, что PSG_Scatter не хочет работать после PSG_Spline. Через Landscape как показывали в начале работает. Напрямую через In работает только если выставить в фильтре Spatial или Concrete, в других вариантах не работает. Но создавать объекты вокруг кубов созданных после PSG_Spline не хочет упорно. Если не затруднит, подскажите, пожалуйста.

    • @svaretsky
      @svaretsky  Рік тому

      Скоро выйдут уроки на 5.3 и там будет блок по созданию дополнительных объектов вокруг деревьев. Это будет упрощенной версией PCG_Scatter, но смысл одинаковый. Думаю вам поможет.

    • @vals4903
      @vals4903 Рік тому

      Благодарю. Успехов !@@svaretsky

    • @vals4903
      @vals4903 Рік тому

      @@svaretsky Нашел решение. В самом PSG_Scatter ,самую первую после входа, поставил ноду Merge. Она собирает все данные об объектах воедино и дальше все работает хорошо.

  • @bloodrage5372
    @bloodrage5372 Рік тому +1

    Можно делать и без tag, через BP_Spline добавляешь PCG и в Get Spline Data указываешь Actor Filter (Self), так даже проще, а так спасибо интересно смотреть как другие делают, что то для себя подчеркиваешь.

    • @krancore
      @krancore 8 місяців тому

      привет, могу вопрос закинуть, возможно ли в сплайн добавлять блюпринты как объекты. Например у меня есть спавнеры для ботов и я хочу их по карте прокинуть сплайном. Так можно?

  • @IrakliKochiashvili
    @IrakliKochiashvili Рік тому

    Здравствуйте.Полезные уроки,большое спасибо.У меня вопрос- в 3дмаксе собрал конкретный ландшафт по изогипсам(горы и тд.)
    Как из этой модели сделать анриловский ландшафт что-бы клеить на него PCG графы?Если есть идеи поделитесь плиз.Спасибо.

    • @svaretsky
      @svaretsky  Рік тому

      К сожалению пока не работал с 3д Максом, поэтому не могу пока помочь

    • @IrakliKochiashvili
      @IrakliKochiashvili Рік тому

      Я занёс этот меш в Unreal и хочу сделать из него Unreal Landscape.Спасибо

    • @svaretsky
      @svaretsky  Рік тому

      @@IrakliKochiashvili если вы хотите, чтобы меш определялся, как полноценный ландшафт - то ничего не получится. Местный ландшафт строится на основе карт высот.
      Но если вам важны PCG графы, то их можно строить и на мешах. Так например на меше бревна можно генерировать грибы и так далее. Это я покажу позже.

    • @barmaleevmax
      @barmaleevmax Рік тому

      Геометрию из макса можно перенести только как статик меш. Чтобы получить из нее ландшафт, нужно посчитать карту высоты в максе и ее применить к лендскейпу. Только надо учесть, что у лендскейпа в анриле очень своеобразные размерности, типа не 4096*4096 а 4081*4081, и если вам важно сохранить весь ландшафт как есть, то нужно карту высоты рендерить именно такого размера. Причем рендерить в 16-битный png, от 8 битного образуется лесенка на ландшафте, т.к. интерполяция серого не плавная.

  • @thedarksidehorror
    @thedarksidehorror 8 місяців тому

    На версии 5.4 не получилось вырезать дорогу из сплайна

    • @svaretsky
      @svaretsky  8 місяців тому

      Я еще не работал с 5.4, потому не знаю что там изменилось

  • @ЕвгенийКирюшкин-л4и

    Здравствуйте!! Крутой видос!! Подскажите. Допустим я хочу сделать ,что бы деревья в игре можно было рубить или собирать траву. Как мне это можно реализовать с этим плагином? если есть ответ или видео подскажите.

    • @svaretsky
      @svaretsky  Рік тому

      Для начала нужно создать актера с мешем дерева. Настроить взаимодействие персонажа с этим актером. То есть условно сделать жизни для дерева и урон игрока при рубке. Как кончатся жизни ивент на падание дерева. И потом этих актеров можно будет спавнить с помощью PCG. У меня потом будут уроки на эту тему, но ещё не скоро.

  • @denisstenin9556
    @denisstenin9556 Рік тому

    Привет, напомни, плиз...
    Как сделать чтобы деревья смотрели ровно вверх? Я уверен что ты об этом говорил, но в таком большом видосе потерял таймкод.
    Спасибо!

    • @svaretsky
      @svaretsky  Рік тому

      У входного узла есть 2 зелёных пина. Landscape и Landscape Height. Вот второй и надо подключать к Projection.

    • @denisstenin9556
      @denisstenin9556 Рік тому

      @@svaretsky Понял, спасиб ) Там оно уведомляет что депрекейтед и лучше использовать геттеры, я среди геттеров получу, в целом понял спасибо.)

  • @ВладимирАСР-в1д
    @ВладимирАСР-в1д 11 місяців тому

    КОМЕНТ ДЛЯ ПРОДВИЖЕНИЯ 2

  • @ВладимирАСР-в1д
    @ВладимирАСР-в1д 11 місяців тому

    КОМЕНТ ДЛЯ ПРОДВИЖЕНИЯ 3

  • @ВладимирАСР-в1д
    @ВладимирАСР-в1д 11 місяців тому

    КОМЕНТ ДЛЯ ПРОДВИЖЕНИЯ

  • @Игорь-в1э5щ
    @Игорь-в1э5щ Рік тому

    странно у меня почему то нету density noise(

    • @svaretsky
      @svaretsky  Рік тому +1

      Версия движка 5.3?

    • @svaretsky
      @svaretsky  Рік тому

      Если да, то там он называется Attribute Noise

    • @Игорь-в1э5щ
      @Игорь-в1э5щ Рік тому

      спасибо@@svaretsky

    • @Игорь-в1э5щ
      @Игорь-в1э5щ Рік тому

      вопрос не по уроку можно как то поменять путь скачивания моделей из quixel content? на С диски места уже нету@@svaretsky

    • @svaretsky
      @svaretsky  Рік тому +1

      @@Игорь-в1э5щ в самом quixel где иконка аккаунта есть настройки. Там можно поменять.