Тёмный

Урок 12 | Unreal Engine 4 Blueprint - Cast Обмен данными между Blueprints 

Cyberstars -  How to create a game
Подписаться 143 тыс.
Просмотров 22 тыс.
50% 1

В этом уроке мы разберем как передавать данные из одного blueprint в другой с помощью cast в игровом движке Unreal Engine 4
Разовый донат new.donatepay.ru/@cyberstars
Patreon - / cyberstars
Discord - / discord
Google Play - play.google.com/store/apps/de...
Facebook - CyberstarsEn...
Instagram - cyberstars_...
ВКонтакте - cyberstars_entertainment

Опубликовано:

 

5 авг 2019

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 116   
@user-jh5jm1fz2u
@user-jh5jm1fz2u Месяц назад
Автор, спасибо большое за уроки! Очень крутой стиль повествования и крайне понятное объяснение! Не бросайте не смотря ни на что, у Вас талант!
@user-hz1oq6et1m
@user-hz1oq6et1m 3 года назад
Очень важная и полезная инфа. доходчиво объясняешь, только меня лично музыка на фоне отвлекает
@gagiktamrazyan771
@gagiktamrazyan771 4 года назад
Очень исчерпывающе )) правда не с первого раза все понял, но каждый раз напоминаю себе: "Ты гуманитарий !"
@TheFruitcake1983
@TheFruitcake1983 4 дня назад
Наконец-то кто-то нормально объясняет
@JekaG81
@JekaG81 5 лет назад
Подробно, доступно, без лишнего! Самое оно!
@sxpv
@sxpv Год назад
Кайф спасибо. Все время забываю, что надо оборачивать блюпринт в переменную, чтобы к нему обращаться
@vadispi
@vadispi 2 года назад
Спасибо тебе, ОГРОМЕНЕЙШОЕ! Целый день сегодня убил чтобы реализовать это. Спасибо большое что доходчиво объяснил)
@ВладЛеонтьев
@ВладЛеонтьев 5 лет назад
Наконец то долгожданный ролик!!!!!
@user-ti7cp4mu7b
@user-ti7cp4mu7b 5 лет назад
Во как раз это искал❤ спасибо!!! Еле нашел!
@RPAXGAMING
@RPAXGAMING 4 года назад
То что надо было) спасибо
@gamein513
@gamein513 5 лет назад
Интересный обзор ролика, возьму к сведению
@ruslanartemyev4788
@ruslanartemyev4788 4 года назад
Ты святой человек. Спасибо тебе.
@ВладЛеонтьев
@ВладЛеонтьев 5 лет назад
вот такие уроки важны! просто без заморочек, полное понимание зато!!!!
@ivan-_-8577
@ivan-_-8577 4 года назад
На понимание по такому уроку не надейся, дружище.
@medvedercheg
@medvedercheg 2 года назад
Огромное спасибо!
@voinsveta221
@voinsveta221 5 лет назад
ОО Спасибо!!
@kristiandeimos6533
@kristiandeimos6533 Год назад
Приходится пипец как фокусироваться чтобы что то понять из за музыки. Она со всякими клэпми и бассами, ооочень отвлекает. А так лайк ♥
@hirtiy_lisenok
@hirtiy_lisenok Год назад
Спасибо огромное
@andreylebedev7614
@andreylebedev7614 5 лет назад
Заебись,Саша,все заебись!
@maxreliz2889
@maxreliz2889 3 года назад
Лучше бы рассказал в каких случаях это применяется. А то кто ни будь будет вте делать через касты. Для передачи инфы есть BP interface. А этот способ только для записи переменных при старте и ни как больше. Оптимизация братан. А про Tick вообще стоит забыть и использовать только в крайнем случае или для теста логикию
@eddit1086
@eddit1086 3 года назад
Вопрос новичка : интересно почему никто не задает вопрос о том что Гет Актор Оф Касс работает без Каста...или я один это заметил?
@user-rx2gd4fh9p
@user-rx2gd4fh9p 3 года назад
@@eddit1086 потому что каст - это приведение к классу, т.е полиморфизм. Взять эктора по классу же является точным жестким указанием конкретного эктора
@KadykovDenis
@KadykovDenis Год назад
наконец то нормальный комментарий. А можешь обяснить как сделать на Блюпринтах что то похожее на Синглтон?
@doctor_livsi_pod_phonk
@doctor_livsi_pod_phonk 10 месяцев назад
Брат, это я все знаю, а че везде так надо интерфейсами? Даже в компоненте задачи для дерева тоже нужно интерфейсом в игрока например?
@doctor_livsi_pod_phonk
@doctor_livsi_pod_phonk 10 месяцев назад
​@@user-rx2gd4fh9pполиморфизм это переопределение одинакового метода в классах наследниках.
@user-sc4bh8fv8d
@user-sc4bh8fv8d 4 года назад
Огромное спасибо! Лучший урок по теме Cast to.
@superlexadnepr
@superlexadnepr Год назад
Спасибо!
@drake3138
@drake3138 8 месяцев назад
Лучший
@kirillmalchenko4453
@kirillmalchenko4453 Год назад
Большое спасибо
@cyberstars-5839
@cyberstars-5839 Год назад
Xeon E3 v2. Nvidia 1060 6gb. 12gb RAM
@AndriiTurchynRieltorDnipro
@AndriiTurchynRieltorDnipro Год назад
спасибо
@mounreal
@mounreal 2 года назад
музычка топ (инфа тоже, само собой)
@antoncheykin1492
@antoncheykin1492 Год назад
Спасибо
@panorama7251
@panorama7251 4 года назад
Конкретно данный урок принципиально неточен. Получать ВСЕ объекты подобного класса - плохо. "Не обращайте на это внимание" тоже плохо, это собственно информация, которая кое о чем говорит. В свое время очень сильно запутался и все бросил из-за таких советов.
@ivan-_-8577
@ivan-_-8577 4 года назад
«Перекинуть с одного в другой. Каст в переводе - бросать» Ох, ребята. Он вас научит тут. Глубине понимания вопроса, так сказать.
@ivan-_-8577
@ivan-_-8577 9 месяцев назад
@@Beatrixxxomg каст это не перекинуть с одного в другой, это термин, означающий приведение типа. В частности родительского класса к классу потомка, чтобы получить доступ к экземпляру и его данным. И эта процедурка намертво сшивает загрузку объектов в памяти что может так себе сказаться на быстродействии.
@ivan-_-8577
@ivan-_-8577 9 месяцев назад
@@Beatrixxxomg Простите, тип чего? Каста?
@Dyk-07
@Dyk-07 7 месяцев назад
​@@ivan-_-8577 Все говорят что касты это зло, лично я верю но не встречал гайдов как обойтись без кастов. Может быть вам поподались такие гайды?
@ivan-_-8577
@ivan-_-8577 7 месяцев назад
@@Dyk-07 можно использовать интерфейсы, но если классы друг без друга не должны работать в принципе (например анимблупринт и персонаж) то отказ от каста не имеет смысла. А так, интерфейсы отлично справляются с проблемой связанности. Ну а в с++ каст работает несколько иначе, связанность там создаётся подключением библиотек и классов.
@leshalozhkin
@leshalozhkin 2 года назад
Блинаааа, чувааак, спасибо! Я звукач и вот эти все дела столько времени занимают с программированием. Но благодаря таким, как ты, можно жить)) Вопрос, а как такие связки влияют на производительность? И вообще мне кажется, через день я забуду, что тут наворотил)) Как работать так, чтобы не запутываться во всех этих связях?
@SilverMLP
@SilverMLP 9 месяцев назад
в 2023 актуально! Спасибо!
@Alexey_Pe
@Alexey_Pe 3 года назад
Мне понравилось, особенно на 10:53, после 11:36 сразу свернул видео и пошёл самостоятельно делать. Не уверен правильно ли сделал, но мне не важно, просто хотел что то сделать сам, а о качестве подумаю через несколько месяцев) В итоге сделал всё иначе, но мне всё равно понравилось, главное что оно работает) Вот что я сделал: 1. При старте BP2 записывает свои размеры в переменную (BP2_Vector). 2. При старте BP1 берёт размеры BP2 из переменной BP2_Vector. 3. При соприкосновении с коллизией BP1 изменяет BP2_Vector. 4. В BP2, в event Tick происходит изменение размеров на BP2_Vector. Вот тут скриншоты как я это сделал и итог imgur.com/a/H237qDI Получилось совсем немного, хотя мне это было не важно, ещё есть ноды print string которые занимают место, но это тоже не важно, я хотел что бы они были. Единственное, я не понял как мне сделать так, что бы когда я отходил от BP1, BP2 уменьшался. Я хотел сделать if, но он принимает только bool перменные, а у узла on component hit нету bool выхода, поэтому я так и не понял как мне это сделать
@Lucerbius
@Lucerbius 2 года назад
Не знаешь как из BP передать переменную в Anim BP? Смысл в том, чтобы нажав кнопку на клавиатуре, бот получил эту команду (и он вывел на экран Print String). (то что в видео с Anim BP не работает)
@user-oi1zl6de8i
@user-oi1zl6de8i 2 года назад
Если бы не дер..мовая громкая музыка, то была бы отличная подача материала. Но все равно спасибо за видео.
@ivanbeany
@ivanbeany 3 года назад
Спасибо. Тема не раскрыта полностью, но для начального уровня вполне себе хорошее описание применения.
@716BaZa
@716BaZa Год назад
Можно больше разных примеров? Это очень важно для понимания
@user-xn1ku6gs9z
@user-xn1ku6gs9z 2 года назад
Как передать данные, если первый блупринт ещё не заспавнился, а вот после его спавна, данные его переменных должны передаваться в другой блупринт!?
@volniy-hleb
@volniy-hleb 2 года назад
Почему когда создаем Cast на блупринт еще нужно в объекте указывать блупринт. Глупость. У меня например блупринты менюшек и как мне теперь кастовать между ними?
@ZhenyaBruss
@ZhenyaBruss 7 месяцев назад
Не очень понял, почему мы дважды ссылаемся на другой обьект. Первый раз когда создаем ноду "каст ту (название объекта)", а потом еще и создаем переменную с ссылкой на этот обьект. В чем прикол?
@sergeydudkin92
@sergeydudkin92 2 года назад
Наконец то я нашёл урок, где нормально показано как создать переменную actor, активировать её и записать в неё сам блюпринт, на который ссылаешься. P.S но появилась другая проблема, мне нужно вкл и выкл множество светильников на сцене, а actor'у можно присвоить только один блюпринт объект на сцене, как их все сгруппировать и каст шёл сразу на множество одинаковых объектов?
@doctor_livsi_pod_phonk
@doctor_livsi_pod_phonk 10 месяцев назад
Массив брат
@Lucerbius
@Lucerbius 2 года назад
Благодарю за урок. Теперь понятно, как передать команду боту через нажатие кнопки на клавиатуре. Только как выполнить анимацию ботом при появлении команды пока не понятно. AnimBP так не подключить.
@camelot6239
@camelot6239 2 года назад
Anim bp подключается через set anim instanse class и в target подключается меш которому нужно изменить аним бп или подключить аним бп если не подключен
@user-jh5jm1fz2u
@user-jh5jm1fz2u Месяц назад
6:57 Мы можем соединить ноду Get и Set? Я попробовал, работает так же
@akillus83
@akillus83 3 года назад
А что если нужно не вызывать переменную, а давать команду на исполнение всей логики. Например: BP1 - камера видеонаблюдения которая при помощи Pawn Sense мониторит территорию. BP2 - это противник который при помощи Pawn Sense всегда видит игрока. В моем случае BP2 сразу начинает атаковать т.к. начинает с Event Tick или Begin Play. Как сделать так, чтобы при попадании игрока в поле зрения BP1, с BP1 подавалась команда на BP2 на исполнение атакующей логики??? Подскажите кто шарит. Или скиньте ссылку на такой урок плиз. Буду весьма благодарен!!!
@mike1pmov
@mike1pmov 2 года назад
Cast это конечно же бросать, но не в программировании. Собственно и в UE это не "бросать". Cast здесь в смысле слова Casting, т.е. определение роли. А именно мы не знаем например какого класса объект столкнется с нашим объектом, но попытаемся его кастовать и при удаче получить доступ к его свойствам и методам, при неудаче значит это объект другого класса.
@doctor_livsi_pod_phonk
@doctor_livsi_pod_phonk 10 месяцев назад
Неправда. Узнаем или этот объект или находится в цепочке наследования
@alexwayne7891
@alexwayne7891 Год назад
А как сделать каст из контроллера в BT task?
@gadji2011
@gadji2011 Год назад
3:21.Переменная war1? Он заранее знал, что начнётся война и пытался нас предупредить? А весь канал учит работе с анриалом, чтоб мы могли работать программистами в иммиграции … все сходится!
@eddit1086
@eddit1086 3 года назад
Гет Актор Оф Класс работает и без Каста... Зачем тогда нужен Каст в этой схеме ????
@user-rx2gd4fh9p
@user-rx2gd4fh9p 3 года назад
Не нужен
@peoplegame5988
@peoplegame5988 Год назад
А как сделать тоже самое но только с UI
@user-mg1bn1bf9b
@user-mg1bn1bf9b 8 месяцев назад
Все вы туториалщики делаете одно и тоже, создаёте BP и вытаскиваете их на сцену, что бы с них ссылки получить, а что делать если два файла BP не на сцене, и между ними надо информацию передать через Cast To, вы либо сами не знаете, либо просто не хотите объяснить.
@user-bd9qn3zq5i
@user-bd9qn3zq5i 3 года назад
Этот ролик и ролик про интерфейсы реально вредны для людей кто не разбирается в программировании, т.к. вводят в заблуждение и преподают плохие практики. Их стоит удалить и записать новые. Или просто удалить.
@cyberstars-5839
@cyberstars-5839 3 года назад
Пожалуйста уточните не верные моменты
@user-bd9qn3zq5i
@user-bd9qn3zq5i 3 года назад
@@cyberstars-5839 Вы говорите: "cast позволяет осуществить передачу данных между 2-му блупринтами. Cast в переводе с англ. - бросать. cast это связующий мост между 2-мя блупринтами" Это не так, назначение cast это приведение типов. Ни больше, ни меньше и к передачи данных не имеет ни какого отношения. В данном случае правильный перевод с английского будет "в ролях". Cast ни в коем случае не мост и ни каким образом блупринты не связывает. Что делает каст? Если грубо, то он получает адресс в памяти и пытается интерпретировать эту область памяти в соответствие с тем типом данных, которые вы ожидаете там увидеть. Далее, Вы говорите, что нельзя создать переменную-ссылку на класс BP_2, это не так, ещё как можно, более того, так и нужно было сделать и тогда cast был бы не нужен). Далее, использование getallactorsofclass это пример плохой архитектуры игры, стоило сказать что использовать его нужно только тогда, когда иначе ну никак, вместо этого Вы используете этот метод как единственно возможный для получения ссылок на объект в real-time. Кроме того, cast в Вашем примере с getallactorsofclass не нужен, нет смысла приводить массив объектов BP_2 к типу BP_2. И последний Ваш пример с onComponentHit. Вот это мог бы быть хороший пример где cast нужен(например если бы Вы использовали пин otherActor), но Вы и в этом примере используете getallactorsofclass, который возвращает массив объектов BP_2 и приводите их к типу BP_2.
@eddit1086
@eddit1086 3 года назад
@@user-bd9qn3zq5i Вот это поворот...) А то все комментарии завалены похвалами от таких же как и я начинающих. Не подскажете кто на ЮТ может преподносить информацию более подробно и профессионально??
@user-bd9qn3zq5i
@user-bd9qn3zq5i 3 года назад
@@eddit1086 Я не знаю безусловных авторитетных источников. Везде информация подаётся фрагментарно. Даже в мануалах от самих эпиков. Любой результат можно достичь многими разными способами. На этом канале также полно полезной информации, надо только правильно относиться к тому что смотришь. Обучение чему-то это постоянный сбор пазла. Unreal Engine Rus хороший канал был.
@ManifestM
@ManifestM 2 года назад
@@user-bd9qn3zq5i всё верно сказано. Результата можно достигнуть разными способами,но важнее достигать их правильными,чтобы потом не получить неожиданный exception. Максимально правильно были подмечены ошибки в данном видео
@user-sv2ow5zq7u
@user-sv2ow5zq7u 3 года назад
музыкальный - нафига оно тут нужно? и, во-вторых, музыка должна быть раза в 3 тише голоса. просто не возможно смотреть ролик
@cyberstars-5839
@cyberstars-5839 3 года назад
согласен, ролик старый - раньше монтировал без наушников
@DARKKING-gu8ki
@DARKKING-gu8ki 4 года назад
круто но музыка громкая
@cyberstars-5839
@cyberstars-5839 4 года назад
уже учел) в новых роликах еле слышно
@eddit1086
@eddit1086 3 года назад
@@cyberstars-5839 в новой творческой студии это вроде как можно исправить в любой момент.
@user-mf3yq5zn9p
@user-mf3yq5zn9p 3 года назад
А если BP1 - это мод, а BP2 - виджет, и их ведь на сцену не установишь, то как их связать?
@cyberstars-5839
@cyberstars-5839 3 года назад
создайте переменную с вашим UMG и обращайтесь к ней
@user-mf3yq5zn9p
@user-mf3yq5zn9p 3 года назад
@@cyberstars-5839 вот так просто, без всякой интриги? :-)
@gameanimation9011
@gameanimation9011 4 месяца назад
Люди а как сделать каст level blue print ну например у меня голод написан в level bp и мне нужно что бы еда получила переменную еды и прибавила к ней 10
@cyberstars-5839
@cyberstars-5839 4 месяца назад
Левел блупринт для этого лучше не брать. Можно это делать в отдельном компоненте перса
@gameanimation9011
@gameanimation9011 4 месяца назад
@@cyberstars-5839 хорошо
@gameanimation9011
@gameanimation9011 4 месяца назад
​@@cyberstars-5839аааа что делать я весь код из левел БП закинул в БП еды и почему-то у меня багнулся delay и еда уходит за мили секунду
@user-zq9gq5nr6o
@user-zq9gq5nr6o 2 года назад
А если этого блюпринта нет на карте ???? А если потом спавнится ? Посмотрел много видео и везде показывают то что на карте
@cyberstars-5839
@cyberstars-5839 2 года назад
Тогда можно взять переменную и запихать в нее ссылку
@user-zq9gq5nr6o
@user-zq9gq5nr6o 2 года назад
@@cyberstars-5839 в том то и дело, что часто вылазит ошибки "невозможно прочитать" Думаешь сделать каст, на блюпринт, которого нет на карте, делаешь переменную, указываешь в ней ссылку на этот каст который тебе нужен,. но там нужно указать то что на карте...Или допустим мне нужно сделать каст на контроллер, что подключать в таргет? Сколько видео не смотрел подобных ответов не находил.
@ВладЛеонтьев
@ВладЛеонтьев 5 лет назад
классная музыка!
@hirtiy_lisenok
@hirtiy_lisenok Год назад
Возникла проблемма, у меня нет вкладки Default
@cyberstars-5839
@cyberstars-5839 Год назад
Сверху window там все окна
@MAKSPC-yb2ou
@MAKSPC-yb2ou 3 года назад
буде урок як зробити шутер ???
@user-sq4jt2qj4b
@user-sq4jt2qj4b 3 года назад
вымм гщшлщз шщ-фуа шщ-0щзхщ
@voinsveta221
@voinsveta221 5 лет назад
информацию на ютубе по этой теме не найдешь
@arti8209
@arti8209 5 лет назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-szNdM0vo2PI.html
@Kitsikoo
@Kitsikoo 4 года назад
а где найдёшь?
@voinsveta221
@voinsveta221 4 года назад
@@Kitsikoo здесь
@joeelusive1661
@joeelusive1661 Год назад
Нестор? Ты ли это?
@cyberstars-5839
@cyberstars-5839 Год назад
Нестор топ :)
@DayzeXzxR
@DayzeXzxR Год назад
грузит музыка, мешает
@xsoniqchannel
@xsoniqchannel 4 года назад
с виджетами не прокатит, их нельзя вытащить на сцену
@cyberstars-5839
@cyberstars-5839 4 года назад
Нод - Get All Widgets Of Class, в нём выбираете свой виджет, Из его выхода нод get и индекс 0 и вы получаете ссылку на любой виджет
@xsoniq344
@xsoniq344 4 года назад
@@cyberstars-5839 спасибо, а как получить данные в виджет с левел блюпринта?
@MuLLeR029
@MuLLeR029 10 месяцев назад
Без примеров не очень эффективный обучающий ролик. Пример с 2 сферами некорректный т.к не отражает действительность, а является чем-то абстрактным. К чему данную информацию подвязывать непонятно. А видео судя по всему относиться к новичкам т.к они смотрят чтобы научиться. А если нет, то непонятно вообще для кого данные видосы.
@MuLLeR029
@MuLLeR029 10 месяцев назад
Складывается ощущение, что данные видосы скорее для тех, кто уже в теме, кому просто нужны дополнительные инструменты.
@nodfix2639
@nodfix2639 4 года назад
Автор не понимает приципы программирования ( видно тут и на уроке по интерфейсам ( а жаль... Толкового контента не хватат(
@cyberstars-5839
@cyberstars-5839 4 года назад
Интересно, что за принципы программирования которые я не понимаю
@Anna-uh1sp
@Anna-uh1sp 4 года назад
Многим ребятам, включая меня, этот урок помог, как и другие ролики данного автора. Вероятно, проблемы с пониманием как раз таки у тебя, т.к. вряд ли ты тут "самый умный в комнате".
@nodfix2639
@nodfix2639 4 года назад
@@cyberstars-5839 Извините, не хотел обидеть, контент у вас полезный для кого-то не спорю... Но... 1. cast это не "бросать", а castTo - это приведение к 2. зачем в вашем примере делать каст если мы итак через GetAllActors получили уже bp2 actor? 3. cast и interface это прежде всего про наследование и полиморфизм 4. В примере с интерфейсами вы получили 0ой объект после GetAllAcxtos, а списали это на последовательное и параллельное выполнение, а то что вы добавили цикл - это последовательно для всех вызов метода (никакого параллелизма)... не стыковка тут(да и в каком-то виде введение в заблуждение). И вообще у того же Unreal Engine Rus более правильный подход к уроку по интерфейсам там хоть в каком-то виде про полиморфизм, а то что делали вы - лучше делать через Event Dispatcher (независимо от того используются ли интерфейсы), на случай если таких объектов будет очень много. А по CastTo лучше бы был пример где мы после GetAllActors(разных типов с разным функционалом) приводим каждый к нужному и вызываем их уникальные функции, например.
@nodfix2639
@nodfix2639 4 года назад
@@Anna-uh1sp Я рад что урок вам помог, и не сомневаюсь что он полезен для многих, и все чему-то научились, но есть более правильные способы сделать то что было у автора в примере, и тут не совсем уместное использование функционала (микроскопом тоже можно гвозди забивать). docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/CastNodes/index.html docs.unrealengine.com/en-US/Engine/Blueprints/UserGuide/Types/Interface/UsingInterfaces/index.html Вот тут в первых абзацах куда более правильное описание зачем нужны castTo и Interfaces (если с англ плохо, то гугл переводит норм)
@Anna-uh1sp
@Anna-uh1sp 4 года назад
@@nodfix2639 Чем ваша статья кардинально отличается от ролика? Там много текста, а смысл простой - есть возможность получить связь с данными другого класса и работать с ними как хочешь. Зачем усложнять понимание?
Далее
ЭТОТ ПЕНЁК ИЗ PLANTS VS ZOMBIES - ИМБА!
00:48
УРА! Я КУПИЛ МЕЧТУ 😃
00:11
Просмотров 760 тыс.
Добыл iPhone 16
14:11
Просмотров 788 тыс.
Урок 3 | Unreal Engine 4 Blueprint  - Строки
11:25