Смотрю уже повторно, для закрепления пройденного. Искренний лайк!)
@СергейПустельник-л9т2 жыл бұрын
А за туториалы спасибо вам огромное. Смотрю все с удовольствием сначала и до конца. Тысячу лайков за ваш труд!!!!!!!!!
@aleksandr70762 жыл бұрын
Спасибо, отлично! ++++++++++ ++++++++ +++++++
@AndriiTurchynRieltorDnipro Жыл бұрын
спасибо
@gametap7265Ай бұрын
Добрый день, я решил написать этот блупринт с нуля сам и все получилось, но так и не понял как сгенерировать объект сразу с каким то мешем тайм код 22:35, у меня был план такой: 1.Создадим Static Mesh(как у авторов карты, т.е. выберем случайный из массива и создадим копию) 2. Создадим с помощью этого меша Static Mesh Component и в методе Add Static Mesh Component добавим его, но видимо так не работает и предполагается, что метод Add Static Mesh Component не просто добавляет, но и одновременно создает. В общем в итоге, потыкав на разные ноды и разнеся чат GPT вопросами, пришел к тому же решению.
@AlexanderSemenkoАй бұрын
Этот метод создаёт пустой объект, которому потом надо назначать меш отдельной функцией (как в примере). Его аналог на С++ работает также: UStaticMeshComponent *mesh_component = CreateDefaultSubobject(TEXT("Object_Name")); mesh_component->SetStaticMesh(указатель на UStaticMesh);
@davidshapirofitnessmotivat899411 ай бұрын
Александр очень благодарен, очень помогают Ваши курсы! не подскажите, а там где Random Yam Rotation, как сделать так , что бы разброс был и рандомным, но что бы , объект не заходил один, на другой?
@AlexanderSemenko11 ай бұрын
Для этого вам нужно контролировать взаимное положение каждого объекта и индивидуально их корректировать. Это задача "со звёздочкой". Проще будет развести объекты в пространстве так, чтобы они не пересекались даже при поворотах.
@davidshapirofitnessmotivat899411 ай бұрын
@@AlexanderSemenko Благодарю!
@doctor_livsi_pod_phonk Жыл бұрын
Здравствуйте, а что можно использовать что бы учитывались коллизии и два в одном предмете не было?
@AlexanderSemenko Жыл бұрын
Коллизию учитывает компонент триггера - капсула, сфера или куб. У неё есть события OnBeginOverlap и OnEndOverlap, которые генерирует движок при столкновениях предметов с таким триггером. Мы это подробно разбираем дальше на других курсах.
@doctor_livsi_pod_phonk Жыл бұрын
@@AlexanderSemenko да это то я знаааю) именно вот в данном примере они помогут? Для конструирования объектов с учётом коллизий, что бы они друг в друге не спавнились?
@AlexanderSemenko Жыл бұрын
@@doctor_livsi_pod_phonk Это сама по себе нетривиальная математическая задача. Я бы при спавне очередного объекта вызывал для него GetOverlappingActors(), и для каждого объекта в массиве пытался бы сместить текущий объект прочь от него так, чтобы он не пересекался с ним. После этого снова вызывал бы этот метод и если количество пересекающихся объектов станет меньше - продолжал бы, иначе бросил попытки двигать объект и заспавнил бы его в другой рандомной локации, после чего повторил коррекцию. Но это решение "в лоб", а вот чтоб решить изящно, один раз посчитать, а потом заспавнить - тут нужно глубокое понимание математики. Можно упростить математическую задачу, если описать каждый заспавненный объект сферой или параллелепипедом, и для них посчитать пересечения, но тогда между ними будет больше свободного пространства, чем могло бы быть.
@@AlexanderSemenko ну для конструктора думаю ваш метод тоже нормальный, максимум что игрушка будет чуть подольше загружаться, а во время игры уже думаю неважно это
@Prototiphrom2 жыл бұрын
Крен, Рысканье, Тангаж🤣🤣🤣
@СергейПустельник-л9т2 жыл бұрын
Возможно этот метод не совсем подойдет для спавна пикапов на уровне. Первым долгом из-за терейна. Он ведь практически не бывает плоским. И даже если доработать этот код и связать его с координатами высоты ландшафта то дальше гемор пойдет с коллизиями. И опять надо будет писать и писать код. Для травы, камней и деревьев в редакторе есть хорошие готовые решения, которые также можно настроить на некий рендом. А иные объекты и пикапы геймдизайнеры предпочитают ручками ставить, точно зная сколько и куда ставить.
@AlexanderSemenko2 жыл бұрын
Это могут быть любые другие объекты, которые не обязательно надо подбирать, например, мусор на земле, льдины на воде, толпа на улице - любой рандомный набор объектов.
@alexanderwagner81998 ай бұрын
А стоит переживать, если большую часть происходящего я не понимаю? Отдельные функции понятны, вроде, а вместе какая-то каша.
@AlexanderSemenko8 ай бұрын
Переживать не стоит - просто продолжайте изучать эту тему ещё 2-3 недели, дайте голове привыкнуть к новому формату информации - и потом внезапно обнаружите, что постепенно непонятное - становится понятным.
@raizenradeonovich15702 жыл бұрын
Александр , здравствуйте) Я только-только начал изучать Ваш курс по С++ и хотел бы спросить: этот курс разчитан на полных чайников, таковым я не являюсь, так как знаю питон на базовом уровне (функции, списки, словари). Как по мне, Вы не уделили внимание этим понятиям. Не было обьяснения что такое переменная, как ее обьявлять в С++, такие вещи начинающие не могут знать. Что такое цикл, как обьявлять функцию, что такое аргументы функции? Например я не совсем понял как обьявлять переменную в С++, почему перед ней должны стоять те, или инные типы, или как работает цикл for в С++. Это я что-то не понимаю, или обьяснение будет потом? Или, может, настоящий программист дожен сам гуглить всю теорию? Жду ответа, и, в любом случае, спасибо за проделанную работу!)
@raizenradeonovich15702 жыл бұрын
Этот коммент есть еще под 7-ой частью курса по С++, решил дублировать, что бы Вы точно увидели)
@MrT0R0NAGA2 жыл бұрын
"Или, может, настоящий программист дожен сам гуглить всю теорию?" Если честно, мне даже не совсем понятно, как вы подходите к изучению, если должно быть и так понятным, что практически невозможно уложить весь курс в видеоуроки на KZbin. *например курс «Прикладное программирование (языки С и С++)» в МГУ им. Ломоносова длится 48 недель (12 месяцев) и включает в себя 288 часов, это просто лекции без времени на ответы и вопросы учащихся, разборы работ и пр. активность преподавателя. **Вы изучаете какую-то тему, вам естественно НЕ может быть понятно все, вы откладываете и идете смотреть как решают эту проблему другие, изучаете ее столько, сколько вам необходимо, день-два или неделю+. Ищите в книгах, форумах, роликах и пр. Потому, что каждый человек объясняет по своему, каждый лектор может по разному раскрыть вопрос... это как разные люди по разному рассказывают анекдоты, у кого-то смешно, а у другого вообще без эмоций. По сути, любой лектор дает вам направление и немного знаний, а дальше вы сами, сколько вам необходимо, ковыряетесь и расширяете их по этому вопросу. Есть легендарная книга "Освой самостоятельно C++ за 21 день", просто открываете оглавление и там тема "Как данные хранятся в массиве", ей посвящена одна страница, но чтобы глубже понять этот вопрос можно потратить 4-5 дней по 2-3 часа каждый и прочитать по этому вопросу сотни и сотни страниц руководства.
@raizenradeonovich15702 жыл бұрын
@@MrT0R0NAGA, каюсь, я не совсем чётко сформулировал вопрос. Всем понятно что программист должен искать что-то для себя непонятное в инете сам, суть не в этом. А хотел я спросить, будет ли объяснение базовой теории именно от Александра. Если вы смотрели первые серии курса, думаю вы поймёте, о чем я говорю. И да, я очень сомневаюсь, что в курсе МГУ не было разняснения (вообще) базовых понятий. К слову Александр от А до Я рассказал как скачать и настроить VS code, Double Commander, что само по себе не является сложным, а базовые аспекты программирования были упущены...
@AlexanderSemenko2 жыл бұрын
Я подробно объясню на курсе по С++ и про переменные, и про типы, и про аргументы, про циклы и про десятки других важных понятий. Как вы этого не увидели на моём курсе??
@raizenradeonovich15702 жыл бұрын
@@AlexanderSemenko, опять же, я посмотрел только 2 серии, да ещё и смотрел ночью, вполне возможно что что-то упустил, пересмотрю ещё раз) В любом случае, ещё раз спасибо!