UE4 Blueprints: Корректный AttachToComponent

Предисловие: не претендую на истину в последней инстанции.

Приём, я на связи.

Стояла передо мной задача: крепить Blueprint Class к сокету в SkeletalMesh. Вроде и информации много и уроков. Но вот важные мелочи не называют.

И в итоге этот объект либо коннектится не в той позиции, либо на сцене где он не должен быть, либо вообще пропадает.

Поэтому пишу здесь как решал эту проблему, дабы другие не мучились, а сразу знали в чём беда и как устранить.

Итак, это отдельный объект (Blueprint Actor) со своим компонентами, настройками, коллизией и прочим.

В принципе могу сразу сказать, что беда кроется в физике и в коллизии. Если их не отключить, то ужаса не миновать.

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

Сразу после этого создаём блоки для отключения физики и коллизии.

И вот тогда и только тогда можно делать коннект. Хотя если у вас объект не мировой, т.е. без физики и без коллизии, то можно сразу цеплять.

В Target сам полученный Actor из SpawnActor от Return Value. Внимание! В Parent обязательно указываем SkeletalMesh, в котором и есть сокет, если укажите что-то другое (например, Pawn всего персонажа), то сокет просто не будет найден и привязка пролетит мимо. Socket Name соответственно имя сокета.

И о чудо! Теперь всё работает.

Надеюсь помогло не только мне. Теперь можно и за артефактами!

Конец связи.

 
Источник: DTF

Читайте также