Linetrace. Unreal Engine 4 по-простому
Предисловие
На написание этой статьи меня вдохновил мой однокурсник, которому нужно было быстро объяснить основы движка. Я не профессионал в этом деле, но постараюсь простым и понятным языком объяснить как и что работает.
Что такое Linetrace?
Каждый день ты смотришь на какие-то вещи, как, например, я сейчас на экран. Ты не можешь увидеть что за этим предметом. Твой взгляд с ним столкнулся. Так вот Linetrace - это прямая, которая исходит из конкретной точки и заканчивается в другой. Он так же может сталкиваться с объектами в твоей игре.
Как пользоваться?
Посмотри на картинку снизу.
Входные данные:
Start - подключаются координаты начала Linetrace.
End - подключаются координаты конца Linetrace.
Draw Debug Type устанавливается способ отображения Linetrace.
Выходные данные:
Out Hit - информация о результате столкновения.
Return Value - статус столкновения(было/не было).
Давай попробуем применить Linetrace в движке.
Пусть он запускается при нажатии клавиши "Е". В качестве начала выберем координаты нашей камеры, то есть наших глаз. Для конца выберем некую точку, удалённую на расстояние 1500 в направлении нашего взгляда. Также не забудь поставить For Duration в поле Draw Debug Type, чтобы видеть результат работы нашего Linetrace.
Как видишь, при нажатии на клавишу появляется красная линия - это и есть Linetrace. Красный квадрат показывает координаты места столкновения с другим объектом.
Теперь попробуем вывести название этого объекта в консоль.
Напиши следующий код:
Break Hit Result содержит информацию о столкновении(координаты, сам объект и другое).
Этот код значит следующее:
Если столкновение было - получить имя объекта(с которым столкнулся наш Linetrace) и вывести его в консоль.
Ура! Название куба успешно выводится в консоль!
Заключение
Надеюсь, тебе стало понятно, что такое Linetrace, и как им пользоваться. Про различные виды этой ноды мы поговорим в других статьях, конечно, если, вы этого захотите. Спасибо, что прочитали!
Это чтобы видеть название предметов, когда лутаешься, например?
На самом деле, применений этому есть много, к примеру самое простое - стрельба. Пускаем Linetrace на далёкое расстояние и наносим урон тому объекту, в который попали. Я привёл самый простой пример. Но мне уже сказали, что хотят чего-то более интересного, поэтому следующую статью постараюсь сделать покруче. :D
Например, да. Ещё можно стрелять, можно привязать трассировку к анимации ходьбы и стрелять лучами из пяток на каждый шаг, чтобы при ходьбе по снегу был звук хруста, по грязи хлюпанья, и так далее.
Вещь очень базовая, но наличие таких материалов на русском - полезно и классно. Автор, пиши ищо :)
Есть вторая статья.
Спасибо! Сам удивлён, что такого очень мало.
На самом деле очень полезно и доступно для тех, кто не хочет лезть в официальную документацию