Полезное

Мы Вконтакте

Discord канал

Блок мат. выражения

Добавлено Фев 26 2016
Блок мат. выражений

Блок Math. Expression позволяет записать в себя математическую формулу, после чего будет автоматически сгенерирован Blueprint график. Преимущество данного функционала не только в том, что можно быстро создать математическое выражение, но и в производительности. Блоки Mat Expression будут обрабатываться в процессе игры быстрее, чем вручную собранное выражение из обычных математических блоков в Blueprint.

Создание

Чтобы создать узел Math Expression, щелкните правой кнопкой мыши на поле graph и выберите Add Math Expression…из контекстного меню.

Add Math Expression

Узел Math Expression представляет собой автоматически собираемую graph-подсистему. Чтобы раскрыть его щелкните по нему дважды ЛКМ, чтобы увидеть внутренние функции. По умолчанию название/выражение пустое. Каждый раз, когда Вы переименовываете узел, создается новое выражение с узлами в подсистеме.

Чтобы переименовать узел и обновить подсистему, щелкните правой кнопкой мыши по узлу и выберите Rename.

Например, задайте имя узлу Math Expression выражением:

(1+x)*sin(myVar)-2.4/rand()

После обновления узел Math Expression будет иметь два float входа, X и MyVar, и один float выход.

Узел Math Expression

Если дважды щелкнуть по узлу с этим выражением, Вы увидите следующую graph-подсистему:

Внутренности Math Expression

Graph-подсистема создается при следующих условиях:

  1. По набранному имени (имена, начинаются с буквы) либо создается входная переменная на узле Math Expression, либо функция в подсистеме. В приведенном выше примере: х , sin, MyVar и rand.
    1. Если набранное имя совпадает с существующей переменной в Blueprint, то создается узел Get этой переменной (т.е. если в Blueprint уже есть переменная MyVar).
    2. Если после набранного имени имеется открытая скобка, как sin( или rand(, то создается узел этой функции.
    3. Если предыдущие два условия не выполнены, то набранное имя станет входной float переменной узла Math Expression.
    4. Входные переменные могут использоваться несколько раз, если их имена совпадают.
  2. Численные константы всегда записываются в поле узла математической операции, а не создают какой-то новый узел или входную переменную.
  3. Математические операторы (такие как +, *, -) превращаются в соответствующие узлы.
  4. Как в математике, выражения внутри скобок имеют приоритет, и создаются в первую очередь.

Поддержка выражений

Переменные

Имя переменной может быть любым, но важно помнить следующие моменты:

  • Имена переменных могут содержать числа, но имя не должно начинаться с цифры.
  • Имя переменной не должно совпадать с именем скрытой переменной Blueprint.
  • Следите за типами переменных. Например, boolVar+1.5 (сложение булевой переменной с дробной) является недопустимым выражением.

Порядок операций

Приоритеты выполнения операций (сначала наивысший):

  1. Действия в круглых скобках
  2. Факториалы
  3. Экспоненты
  4. Умножение и деление
  5. Сложение и вычитание

Доступные функции Blueprint

Простые функции Blueprint, которые находятся в библиотеке функций, должны быть доступны. К ним относятся:
Тригонометрические функции (sin/cos/tan, asin, acos и т.п.):
sin(x)
Ограничивающие функции (min, max, clamp и т.п.):
clamp(y,0,20)
Функции округления (floor, fceil, round и т.п.):
round(z)
Показательные функции (square, power, sqrt, loge, e/exp и т.п.)
Некоторые, обычно использующиеся функции или узлы имеют несколько названий. Вот некоторые примеры:
Функция Power: power, pow
Тригонометрические функции (asin/arcsin, acos/arccos и т.п.)

Так как обычно Вы ищите функцию по названию в меню, когда тянете соединительную линию, убедитесь, что введен правильный номер и тип параметра. Узел Math Expression выдаст ошибку, если имеется несоответствие.

Основные виды структур

Есть некоторые основные структуры, которые мы довольно часто используем в математике, такие как векторы, преобразования и т.п.. Вы можете создать и работать с этими типами в своих выражениях.
Ключевое слово vector создаст узел MakeVector:
vector(x,y,z)
Ключевое слово rotator создаст узел MakeRotator:
rotator(x,y,z)
Ключевое слово transform создаст узел MakeTransform:
transform(vec(x,y,z), rot(p,y,r), vec(6,5,4))
Так же, имеется несколько имен у некоторых функций, например у вектора и ротатора.
Ключевые слова для вектора
vector, vec, vect
Ключевые слова для ротатора
rotator, rot

Поддерживаемые операторы

Ниже описаны поддерживаемые операторы. Логические и операторы сравнения можно комбинировать, чтобы создать сложные логические выражения.
Мультипликация:
*, /, %
Сложение:
+, -
Сравнение:
<,>, <=,>=
Равенство:
==, ! =
Логические:
||, &&, ^

Неподдерживаемые операторы

Следующие операторы пока еще не поддерживаются.
Условние:
?:
Побитовые:
|, &, <<, >>
Унарные префиксы:
+, -, ++, --, ~, !, и т.п.
Постфиксы:
++, --, [], и т.п.

Добавил: Flakky Категория: Blueprint'ы


Комментарии

На данный момент не добавлено ни одного комментария.

Оставить комментарий

Вы должны войти, что бы оставлять комментарии.

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница