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, и как им пользоваться. Про различные виды этой ноды мы поговорим в других статьях, конечно, если, вы этого захотите. Спасибо, что прочитали!

5151 показ
5.5K5.5K открытий
12 комментариев

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

Ответить

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

Ответить

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

Ответить

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

Ответить

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

Ответить

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

Ответить

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

Ответить