Мы отклонились от темы. А тема важная! Вы делаете игру. Мы делаем. Ок! Мы ее сделали. Дальше что? Нам ее надо продать - так ведь? Нам ее показать надо хоть кому то. И как мы это делаем? - Загружаем на облако 3 гига архив и даем на него ссылку в соцсети с рекламой словами - а вот я игру сделал, не хотите ли испробовать? Я пытаюсь понять и представить себе весь процесс до финального продукта. Или этого тут ни кто не знает? Есть к примеру Скетфаб - сайт. Делаем модели, загружаем устанавливая цену - ждем покупателя. Модель можно на сайте открыть и заценить. А сделали игру - далее куда? Как ее показать то людям?
Мы отклонились от темы. А тема важная! Вы делаете игру. Мы делаем. Ок! Мы ее сделали. Дальше что? Нам ее надо продать - так ведь? Нам ее показать надо хоть кому то. И как мы это делаем? - Загружаем на облако 3 гига архив и даем на него ссылку в соцсети с рекламой словами - а вот я игру сделал, не хотите ли испробовать? Я пытаюсь понять и представить себе весь процесс до финального продукта. Или этого тут ни кто не знает? Есть к примеру Скетфаб - сайт. Делаем модели, загружаем устанавливая цену - ждем покупателя. Модель можно на сайте открыть и заценить. А сделали игру - далее куда? Как ее показать то людям?
Steam, gog, epic store итд. Сейчас масса площадок. Это раньше тебе нужно было издателя искать.
Еще понял что в папке самого проекта можно удалять DerrivedDataCache папку...
Погуглил как это перенаправить на второй SSD. Поудалял в левых проектах DerrivedDataCache.
Вычистил 300гб с диска C... Капец
UPD4# - Как же Анриал жестко юзает Shared VRAM... Зафигачил 180 3К параллаксов без "Power of 2". Думал все взорвется и сдохнет. Ведь у видяхи 10гб а он хочет 20гб кушать. Но, он прост выгрузил все в оперативку что не влезло и пофигу ))
Завтра поменяю видяху, думаю непосредственно в самом редакторе вообще разницы не почувствую. Разве что в рендере когда прям памяти сильно не хватает... Посравниваю еще. Если будут какие то итоговые выводы - отпишусь. Прост уже второй месяц ковыряю Анриал а так до сих пор и не понял сколько ему надо видеопамяти то блин ))
P.S. Если че я не в курсе как лучше делать эти параллаксы. Через 2 Texture Array и 2 Материала. Через 2 больших Атласа. Или это не лучше варианты чем у меня 180 текстур на 180 шейдеров. И работает ли "Power of 2" на этих EXR текстурах тоже не ясно. Одни вопросы )))
astar_spb, эффектно, да, там вообще 7 часов полная технодемка, пока только час осилил, но уже радует )
Джонсинг, это действенно лишь в том случае, когда проект(ы) "на полке", а не в работе (разве что vault кеш или квиксель можно рубить с концами, если ассеты уже в проекте), в остальных случаях даже в папке проекта – бинарники, сейвы, интенрмедиат сносятся по несколько раз в день и тут же генерятся заново с пкм по файлу проекта, если hotreload не справляется с кардинально-обновляемым кодом, чтобы на лету внести новый функционал, но вот deriveddatacache в процессе работы лучше не удалять, чтобы не ждать часами, пока редактор с ноля сгенерирует раб. материалы – они более-менее статичны, обновляются автоматически вдогонку к периодическому насыщению проекта ассетами, материалами и т.п.
вообще, думал – имеет ли смысл озвучивать нижеследующее, или "ответить в стол", но поскольку "игра в простыни" – мультиплеер, решил обозначить пару нюансов, чтобы у тех, кто решит всерьёз заниматься движком, а не профанить бугатти поездкой в булочную, сложилось более полное представление об инструменте, поэтому:
сплайн и есть "инструмент" – это дефолтный класс с тонной функционала, инкапсулированного "под капотом" и с навешанными на него погремушками/интерфейсом в потомке-бп, и чем лучше понимание потенциала класса, тем проще наследовать от него новый класс с оверрайдами и доп. методами взаимодействий с иными классами посредством потомка-бп (блюпринта)
поэтому и с нативным террейном, т.е. с его классом, дефолтный сплайн работает норм, т.к. они "знакомы", а с каким-то иным кастомным – с ограничениями/косяками, и "нарезка" геометрии тут не при чём, и дебаг-лучи типы классов не определяют, а только наличие/отсутствие препятствий на их пути c hit result координатой в случае пересечений.
просто импортированная через датасмит геометрия по умолчанию "расквартирована" в каком-то грендчайлде относительно род.класса актора и никак не в наследнике класса актора с террейном, и чтобы сплайн корректно раскрыл свой потенциал в подобном кастомном классе, созданном датасмит, потребуется как минимум перепарентить бп-датасмит к классу террейна, либо привести (каст на родителя) класс со своим лендскейпом к совместимости с род. функционалом, либо же по уму – унаследовать от класса актора террейна новый кастомный класс со своим блекджеком и оверрайдами для создания новых фич и затем вывести его педали в бп, которые будут созданы от этого кастомного класса – для навешиваний декалей или чего-то ещё, что необходимо.
можно и в блюпринтах создать логику вроде бп из урока, но это будет версия с ограничениями и "наугад", поскольку в бп увидеть все возможности род. класса, как в его хедере/срр, не выйдет, если не открыть сорцы в подходящем ide или хотя бы не прочесть описание всех возможностей класса в мануале движка.
сюда же и особенности работы с памятью – движок (не инструменты редактора, а контент) работает с динамической хип-памятью и всё, что генерит во вьюпорте, особенно в рантайме – размещает в ней, вызывая данные по эвентам и распределяя нагрузку по необходимому оборудованию в соотв. с инструкциями в коде. поэтому загрузка видеопамяти напрямую зависит от объёма данных/команд на исполнение (отрисовку десятка, или тысячи статикмешей, фонариков и т.п.) в единицу времени, т.е. фрейм, и всем этим процессом заведует оптимизация "стоимости" контента.
да, это не десять условных рулек в бивисе накрутить по гайду и запарить всех тонной страниц с уникальным "сакральным знанием" – ооп на плюсах, да ещё в связке с рефлекшн и её макросами во фреймворке ue ластится только к тем, кто знает, где и когда почесать можно )
Вчера видяху поменял. По-фасту успел посравнивать всякое. Например время рендера в экстерьере, UE5.1.1 - Lumen 1440p/Легкие настройки и команды для Сиквенсера - одной и той же сцены, но при разном объеме заполненной видеопамяти (симулировал забитую видеопамять - параллаксами за кадром
).
M.2 SSD PCI-E 3.0 (UE много кэширует шейдеров и всякого)
1080p/1440p
Если делать все с умом и верным подходом можно собирать экстерьеры практически любой сложности в UE. Даже из неоптимизированных ассетов на Нанитах. Тут наверное ключевая фраза - "с умом и верным подходом" и "собирать". На 12гб именно 'рендрить' большие экстерьеры можно разве что на Люмене не на самых жестких настройках, ну или в 1080p на норм настройках. Разумеется с всякими HLOD/Culling-Вольюмами и Нанитами и прочими оптимизациями. Никаких PathTracer без Нанитов на озеленении, ибо будет вылетать когда памяти будет сильно не хватать, да и будет большая просадка по времени рендера.
Ну а в вьюпорте и самом редакторе, ничего интересного по изменениям. Разница не такая уж и большая между 3080/3090 в моей сцене. Ну тип там на ~7% от силы больше FPS. Чуть меньше статтеров. И наверное самое приятно что можно не париться и фоном держать открытый макс/фотошоп и прочее что немного фоном но забивает видеопамять. В Эпиковском - CitySample (Big City) где выбран большой кусок WorldPartition там прям ощутимая разница по статтерам и равномерности фреймтайма. Т.е средний FPS снова таки не сильно больше, но это небо и земля - https://i.imgur.com/qHoMOMt.png Разумеется если выбрать меньше кусок WorldPartition или SmallCity, то там все ОК у обеих видях.
Вообще конечно тяжко идет сейчас изучение UE у меня, некоторые вещи в Анриале по 2-3 раза переделывал что бы понять как лучше и 'дешевле по ресурсам' получилось. Но когда понимаешь как делать оптимально то сразу кайф ))
P.S. Че там по GPULightmass и Лоушанг-Бейку в интерьерах - фиг знает. Не моя тема.
summitz, в данном случае привязка к версии не принципиальна, там очень простая логика реализации по оверлапу с объектом и событию нажатия клавиши всего через пару нод – релатив ротейшн/таймлайн с кривой позиции, запускаемых от актуального контроллера и с проверкой условия состояния.
навскидку по "open door ue" на русском выдало это: https://youtu.be/ExuCvCYQeT8
– вкратце, для начала нужно закинуть геометрию с корректным пивотом (на углу двери) в блюпринт, вытащить переменную геометрии в граф и добавить необходимый экшн. если требуется взаимодействие двери с иным объектом (допустим, в неё просто входит некий объект без нажатия клавиш), то потребуется вывести переменную этого объекта в бп двери, т.е. создать в нём новую переменную, настроить её на конкретный бп-объект в свойствах и указать видимость паблик - включить для неё глазик, как и для переменной двери), только вместо эвента/события клавиши навесить логику на эвенты для бокс коллижн-волюма – его оверлап бегин и оверлап энд – они в свою очередь добавляются выбором коллижн-волюма и кликами по большим зелёным кнопкам с плюсиками в свойствах, что добавит пару необходимых нод на граф, от которых и запускать то, что в примере с ютуба запускается по кнопке.
Earanak, на персии есть, раздача оживает не сразу, но скачать можно:
+ в первую очередь надо иметь ввиду главное правило: всё, что не видно во вьюпорте – освобождает память. это верно даже для случая, если тяжёлый объект находится за стеной – пока в скринспейсе нет хотя бы одного его пикселя, он для памяти не существует, и можно настраивать лод таким образом, чтобы облегчённая версия (лод 1, 2 и т.д.) объекта отрисовывалась от % видимости объекта во вьюпорте, но тут надо быть аккуратным и тщательно подбирать значения, чтобы не наплодить popup-ы – в мастерклассе об этом есть