Тыркай тыркай)
В анриле оно все потом и кровью :)
Вот дистанция Culling'a 3000 (радиус Collision sphere в мобе), clamp 0.66 (в материале)
https://www.youtube.com/watch?v=FwtXvKYygUU&ab_channel=JagMaker
JagMaker
Спасибо большое! Буду стараться. Тут действительно пока сам не поймёшь, ничего не получится :)
Так и быть сегодня вечером запишу видосик как сделать.
Единственное скажи - должны исчезать боты когда к ним приближаешься (касаешься квадратом который на персонаже) или твой персонаж когда заходит в какой то квадрат? (я чет этот момент не понял)
И как у тебя на скринах сразу ассет накину лоу поли что бы проще понять тебе было.
Короче сделал вот такой вариант, писать видос не стал т.к. было не понятно придется импровизировать или нет.
Сделал через маску, с кусочком который предложил JadMaker (мне показалось очень удачным решением т.к. не нужно заморачиваться с топологией модельки, и все ноды материала доступны в отличии от Opacity) параметры подобрал через Instance.
Прозрачность получилась от 0 до 250.
0 - полностью видим.
250 - полностью скрыт.
Выглядит вот так:
Разобраться не составит труда.
Ссылка на скачивание проекта.
https://disk.yandex.ru/d/sBVgSw6EkGvJqg
563
Спасибо тебе огромное! Как будет возможность, обязательно изучу и сообщу как чего
563
Привет! В общем сделал всё как ты записал на видео, заработало, спасибо огромное :)
Только теперь у меня появились вопросы:
1. На видео видно, что когда запускаю игру, видно что NPC виден и видно, как при подходе героя и соприкосновения сферы, он резко исчезает, а потом уже начинает работать скрипт. Как сделать чтобы изначально NPC был невидимым?
2. Сразу то я не просёк, но теперь получается, что у персонажа две сферы коллизии. Одна изначально у него, вторая - это твоя сфера. Но из-за этого теперь возникают трудности с другими box collision где я придумываю всякие системы и получается что герой тригерится по два раза. Удалить-то одну сферу можно, но если остаётся одна сфера, то она должна быть большого радиуса, чтоб NPC начал издалека исчезать. А сфера большого радиуса запускает другие системы раньше, что неудобно.
Humppa
> На видео видно, что когда запускаю игру, видно что NPC виден
Это потоу что он стоит близко к игроку и сфера сразу соприкасается с ним и пока все загружается он становится полностью видимым.
> Как сделать чтобы изначально NPC был невидимым?
Если его поставить дальше он исчезнет и сразу будет не видимым.
> он резко исчезает
Если резко исчезает значит в таймлайне что работает не по плану :)
Посмотрел и да, я лоханулся поставил переменную в ту же фунцию от 0 до 250, а должна быть еще одна которая соответсвует времени от 0 до 2.
Добавил фунцию (назвал Time) и подключил туда переменную.
В функции первая точка (0,0) вторая (2,2) т.е. на второй секунде её значение равно 2м, это что бы время появления назад отматывать.
Таймлайн стал вот таким:
Сам блупринт теперь такой:
> 2. Сразу то я не просёк, но теперь получается, что у персонажа две сферы
> коллизии. Одна изначально у него, вторая - это твоя сфера. Но из-за этого
> теперь возникают трудности с другими box collision где я придумываю всякие
> системы и получается что герой триггерится по два раза. Удалить-то одну сферу
> можно, но если остаётся одна сфера, то она должна быть большого радиуса, чтоб
> NPC начал издалека исчезать. А сфера большого радиуса запускает другие системы
> раньше, что неудобно.
Ну тут 2 варианта. Или ты будешь считать дистанцию до ботов, и делать их видимыми или нет в зависимости от дистанции до них, или триггерить.
Сейчас ты по сути триггеришь. Для того что бы сфера не триггерилась ты можешь для нее создать отдельный канал назвать скажем PlayerDistance, и игнорировать её.
Для этого заходишь в верхнем меню Edit - Project settings
Слева находишь раздел Collision в нем кнопка New Object Channel
Назовешь PlayerDistance и выберешь Ignore - что бы ни кто её не видел (твою сферу).
Я два раза кликнул по созданной что бы ты видел как это.
Теперь заходишь в блупринт твоего перса и выбираешь сферу, в ней находишь коллизии, ставишь пресет Custom и выбираешь ObjectType - твой созданный PlayerDistance
Получилось вот так и его все игнорируют.
Заходишь в бота, и выбираешь у него капсулу.
В капсуле находишь коллизии, ставишь пресет Custom, становится доступен список внизу и там есть PlayerDistance в самом низу, на нем стоит галочка Ignore, меняешь её на Overlap.
Получится как на скрине, и теперь только бот может задевать капсулу игрока, а остальные её игнорят.
Пример обновил и залил на ту же ссылку.
https://disk.yandex.ru/d/sBVgSw6EkGvJqg
P.S.
Humppa
> Удалить-то одну сферу можно, но если остаётся одна сфера, то она должна быть
> большого радиуса, чтоб NPC начал издалека исчезать.
Ничего не удаляй - первая сфера это капсула игрока, её трогать нельзя.
563
[img=]
Не! Сфера не задевает его изначально. Добавил функцию в таймлайне, исправил блюпринт, но всё так же
В принципе скрипт работает отлично! Единственно чего нужно это чтоб изначально NPC был невидимым
Humppa
> Единственно чего нужно это чтоб изначально NPC был невидимым
Ну там же на событие бота - Event BeginPlay стоит смена материала в прозрачность, а переменная для таймлайна стоит в прозрачности.
Ты не забыл это сделать?
В самом первом видео это уже было.
Твой скрин в редакторе, а не в запущенном приложении, значит ли это что тебе нужно что бы в редакторе их не было видно?
Если да то перенеси код c Event BeginPlay в Construction Script (скопипасть в соседнюю закладку).
Тогда в редакторе тоже их не будет видно, они будут становиться невидимыми при установке на сцену, но мне кажется так их не удобно редактировать.
Хотя я могу только догадываться, что ты пытаешься сделать в конечном итоге.
563
Всё! Я нашёл свой косяк! Я случайно на NPC продублировал mesh. 2 skeletal mesh component было. Из-за этого он не исчезал при нажатии плэй.
Спасибо тебе огромное что "повозился" с моей задачей)
563
И с тригерными каналами тоже всё отлично работает, прям всё как надо! Благодарю!