Linetrace. Unreal Engine 4 по-простому

Предисловие

На написание этой статьи меня вдохновил мой однокурсник, которому нужно было быстро объяснить основы движка. Я не профессионал в этом деле, но постараюсь простым и понятным языком объяснить как и что работает.

Что такое Linetrace?

Каждый день ты смотришь на какие-то вещи, как, например, я сейчас на экран. Ты не можешь увидеть что за этим предметом. Твой взгляд с ним столкнулся. Так вот Linetrace - это прямая, которая исходит из конкретной точки и заканчивается в другой. Он так же может сталкиваться с объектами в твоей игре.

Как пользоваться?

Посмотри на картинку снизу.

Linetrace. Unreal Engine 4 по-простому

Входные данные:
Start - подключаются координаты начала Linetrace.
End - подключаются координаты конца Linetrace.
Draw Debug Type устанавливается способ отображения Linetrace.

Выходные данные:
Out Hit - информация о результате столкновения.
Return Value - статус столкновения(было/не было).

Давай попробуем применить Linetrace в движке.

Linetrace. Unreal Engine 4 по-простому

Пусть он запускается при нажатии клавиши "Е". В качестве начала выберем координаты нашей камеры, то есть наших глаз. Для конца выберем некую точку, удалённую на расстояние 1500 в направлении нашего взгляда. Также не забудь поставить For Duration в поле Draw Debug Type, чтобы видеть результат работы нашего Linetrace.

Как видишь, при нажатии на клавишу появляется красная линия - это и есть Linetrace. Красный квадрат показывает координаты места столкновения с другим объектом.

Теперь попробуем вывести название этого объекта в консоль.
Напиши следующий код:

Linetrace. Unreal Engine 4 по-простому

Break Hit Result содержит информацию о столкновении(координаты, сам объект и другое).
Этот код значит следующее:
Если столкновение было - получить имя объекта(с которым столкнулся наш Linetrace) и вывести его в консоль.

Ура! Название куба успешно выводится в консоль!

Заключение

Надеюсь, тебе стало понятно, что такое Linetrace, и как им пользоваться. Про различные виды этой ноды мы поговорим в других статьях, конечно, если, вы этого захотите. Спасибо, что прочитали!

4242
12 комментариев

Это чтобы видеть название предметов, когда лутаешься, например?

1
Ответить

На самом деле, применений этому есть много, к примеру самое простое - стрельба. Пускаем Linetrace на далёкое расстояние и наносим урон тому объекту, в который попали. Я привёл самый простой пример. Но мне уже сказали, что хотят чего-то более интересного, поэтому следующую статью постараюсь сделать покруче. :D

4
Ответить

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

1
Ответить

Вещь очень базовая, но наличие таких материалов на русском - полезно и классно. Автор, пиши ищо :)

1
Ответить

Есть вторая статья.

1
Ответить

Спасибо! Сам удивлён, что такого очень мало.

Ответить

На самом деле очень полезно и доступно для тех, кто не хочет лезть в официальную документацию

1
Ответить