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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Конец связи.

1212
5 комментариев

Комментарий недоступен

2

Коллизию не обязательно отключать. Физику нужно, потому что компонент со включенной физикой не может быть ни к чему приаттачен. Когда ты делаешь AttachToComponent для актора, в действительности ты делаешь AttachToComponent для его рутового компонента. Если физика включена не на рутовом компоненте, то рут прицепится, но вся иерархия начиная с симулирующего компонента отвалится.

2

Мило но у меня было похлеще
я хотел сделать отрожение лазерного луча от зеркальных поверхностей
около 6 часов с помошью тригинометрии и синусов делал логику отражения

оказалось есть специальная функкия Mirror
тру стори

1

По пробуй при помощи LineTrace функции.