Редактор логики

Основы

Визуальное программирование осуществляется путем создания нодового дерева логики в окне нодового редактора. С помощью Logic Editor можно существенно расширить функциональность сцены, не прибегая при этом к программированию.

_images/logic_editor_app_example.png

Для активации логики, на вкладке настроек сцены Blender необходимо установить галочку Logic Editor и добавить/выбрать активное нодовое дерево:

_images/logic_editor_activation.png

Для редактирования дерева логики необходимо перейти в Редактор Нод (Node Editor) выбрать тип нодового дерева Blend4Web logic:

_images/logic_editor_tree_type.png

Затем выбрать дерево для редактирования:

_images/logic_editor_select_tree.png

Создание нод осуществляется привычным для Blender сочетанием клавиш Shift+A.

Ноды - это логические блоки, выполнение которых начинается с Entry Point, которая имеет один единственный выход. Почти все остальные ноды помимо одного или двух выходов имеют также входы, таким образом они могут быть вставлены в любое место в дереве. Ноды без выходов, например Page Redirect, могут быть вставлены только в конец какой-либо ветви. Ноды с двумя выходами позволяют ветвить алгоритм в зависимости от успеха/провала указанного условия, например Conditional Jump.

Для реализации сложной логики предусмотрены переменные, которые могут иметь как числовые, так и строковые значения. Переменные могут быть использованы для хранения какого-либо состояния сцены (например, это может быть счётчик проигрываемых анимаций, количество жизней, оставшихся у персонажа и т.д.).

Пример использования редактора логики:

_images/logic_editor_example.png

Ниже перечислены все доступные ноды.

Control Flow

Entry Point

Является точкой начала выполнения скрипта. Использование нескольких точек входа позволяет эмулировать многопоточное выполнение.

_images/logic_editor_entry.png

Входные параметры

Отсутствуют.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Run From Script

Если этот параметр активирован, точка входа может быть запущена с помощью API, используя метод run_entrypoint.

Select

Позволяет отследить событие выбора какого-либо объекта из списка объектов.

_images/logic_editor_switch_select.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

<имя объекта> Hit

Этот параметр передаёт управление следующей ноде в случае, если выбран объект, упомянутый в его названии. По умолчанию нода Select имеет один параметр этого типа, также присутствует возможность создавать новые и удалять уже существующие (нода может и не иметь ни одного такого параметра).

Miss

Этот параметр передаёт управление следующей ноде в случае, если выбран любой из объектов со свойством Selectable, не из числа объектов, указанных в данной ноде.

Внутренние параметры

Object

Один из объектов, доступных для выбора пользователю. Такие параметры создаются и удаляются автоматически при создании или удалении выходных параметров типа Hit.

Variable

Если активирован этот параметр, переменная типа Object может быть указана в поле Object.

Destination

Задаёт переменную, в которой сохраняется вбранный объект.

Branch

Перейти к указанной ноде в случае выполнения выбранного условия. В качестве параметров условия (операндов) могут выступать также переменные, которые активируются с помощью соответствующих переключателей.

_images/logic_editor_conditional_jump.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

True

Утверждение истинно.

False

Утверждение ложно.

Внутренние параметры

Condition

Логическое утверждение. Может иметь один из следующих типов:

  • Equal (=) - первый операнд равен второму.

  • Not Equal (!=) - первый операнд не равен второму.

  • Less Than (<) - первый операнд меньше второго.

  • Greater Than (>) - первый операнд больше второго.

  • Less Than Or Equal (<=) - первый операнд меньше либо равен второму.

  • Greater Than Or Equal (=>) - первый операнд больше либо равен второму.

Operand1

Первый операнд логического выражения. Может быть числом либо строкой (если включена опция String Operators). Может быть задан в самой ноде либо с помощью ссылки на одну из переменных (если включена опция Variable).

Operand2

Второй операнд логического выражения. Аналогичен первому.

Operand’s Type

Тип операндов. Доступные варианты - Number (значение по умолчанию), String и Object.

Switch

Эта нода сравнивает несколько переменных с заданным значением и выполняет условный переход в зависимости от результатов сравнения.

_images/logic_editor_switch.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

<имя переменной>

Одна из переменных, используемых при сравнении. Если значение переменной, заданной этип параметром, совпадает со значением, заданным параметром Variable, управление передаётся ноде, соединённой с соответствующих выходом. По умолчанию нода Switch включает один параметр этого типа, но пользователь может добавлять новые и удалять уже существующие (нода может и не иметь ни одного подобного параметра).

Default

Этот выход передаёт управление следующей ноде в случае, если но одно из заданных значений не совпадает со значение переменной, заданной параметром Variable.

Внутренние параметры

Variable

Задаёт переменную, используемую при сравнении.

JS Callback

Используется для вызова callback-функции, заранее заданной в вашем Blend4Web-приложении.

_images/logic_editor_js_callback.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Callback ID

ID JavaScript-функции, которая будет вызываться нодой.

Это значение может быть задан напрямую или с помощью переменной (если включена опция Variable).

In Params

Список входных параметров функции. Каждый параметр может представлять собой либо переменную, либо ссылку на объект сцены. Количество входящих параметров может быть настроено. По умолчанию список пуст.

Входные параметры передаются callback-функции в виде массива, который используется в качестве первого аргумента функции.

Param <param_number>

Задаёт входящий параметр. Параметр может быть как переменной (R1 по умолчанию), так и ссылкой на объект сцены, в зависимости от значения параметра Type (у каждого входного параметра всегда есть соответствующий параметр Type).

Type

Тип соответствующего входного параметра. Может иметь одно из двух значений: Variable (в этом случае в качестве параметра будет использована одна из переменных) или Object (ссылка на объект сцены).

Out Params

Список выходных параметров. По умолчанию пуст. Количество выходных параметров поддаётся настройке.

Массив, состоящий из выходных параметров, используется в качестве второго аргумента callback-функции.

Param <param_number>

Задаёт переменную, которая будет использоваться в качестве одного из выходных параметров. По умолчанию используется переменная R1.

Define Function

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

_images/logic_editor_define_function.png

Входные параметры

Отсутствуют.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Function

Имя функции.

In Params

Список входных параметров функции. Список пуст по умолчанию, но пользователь может добавлять и удалять параметры с помощью кнопок + и -. Параметрам также могут быть присвоены имена.

Out Params

Список выходных параметров функции. Рабоает по тому же принципу, что и список In Params.

Call Function

Эта нода применяется для вызова функии, заданной нодой Define Function.

_images/logic_editor_call_function.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

NodeTree

Имя нодового дерева, содержащего вызываемую функцию.

Function

Имя функции.

In Params

Список переменных, задающих входные параметры функции, установленной при помощи параметра Function.

Out Params

Список переменных, задающих выходные параметры функции, заданной параметром Function.

Animation

Play Timeline

Позволяют управлять NLA анимацией. Нода Play Timeline проигрывать участок NLA, начиная с кадра, на который указывает маркер. Анимация воспроизводится до следующего маркера, либо до конца шкалы времени сцены, после чего управление переходит к следующей ноде.

_images/logic_editor_timeline.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Start Marker

Первый кадр анимации.

Примечание

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

End Marker

Последний кадр анимации.

Примечание

Если этот параметр не указан, анимация воспроизводится до следующего маркера, а при отсутствии такового - до конца таймлайна.

Do Not Wait

Если этот параметр активирован, нода Play Animation передаст управление следующей ноде сразу после начала воспроизведения анимации. В противном случае управление будет передано только после окончания анимации.

Stop Timeline

Останавливает воспроизведение NLA-анимации, запущенное нодой Play Animation.

_images/logic_editor_stop_timeline.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Set First Frame

Если этот параметр активирован, анимация будет сброшена на первый кадр таймлайна после остановки воспроизведения. В противном случае анимация будет остановлена на кадре, заданном при помощи параметра End Marker ноды Play Timeline.

Play Animation

Эта нода используется для воспроизведения анимации объекта.

_images/logic_editor_play_animation.png

Проигрываемая анимация может иметь один из трёх типов:

Обычный Action:

_images/play_anim_action.png

Шейдерный Action:

_images/play_anim_nodetree.png

Система частиц:

_images/play_anim_particle.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Environment Anim.

Если этот параметр включён, воспроизводиться будет анимация окружающей среды (т.е., объекта типа World).

World

Задаёт объект типа World, анимация которого будет воспроизводиться. Этот параметр доступен только в том случае, если включена опция Environment Anim..

Object

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

Variable

Если этот параметр включён, в поле Object может быть указана переменная типа Object.

Anim. Name

Имя анимации, которую следует воспроизвести. В случае, если имя анимации не указано, проигрывается вся временная шкала.

Behavior

Задаёт поведение анимации. Может иметь одно из следующих значений:

  • Finish Stop - анимация воспроизводится один раз.

  • Finish Reset - анимация воспроизводится один раз, после её завершения объект возвращается в исходное состояние.

  • Loop - анимация воспроизводится циклически до тех пор, пока не остановлена с помощью ноды Stop Animation.

Do Not Wait

Если этот параметр активирован, нода Play Animation передаст управление следующей ноде сразу после начала воспроизведения анимации. В противном случае управление будет передано только после окончания анимации.

Stop Animation

Используется для остановки анимации объекта.

_images/logic_editor_stop_animation.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Environmental Anim.

Если активирован этот параметр, остановлена будет анимация окружающей среды (т.е., объекта типа World).

World

Задаёт объект типа World, анимация которого будет остановлена. Этот параметр доступен только в том случае, если включена опция Environment Anim..

Object

Имя объекта, анимацию которого следует остановить.

Variable

Если этот параметр включён, в поле Object может быть указана переменная типа Object.

Set First Frame

Вернуться к первому кадру после того, как анимация остановлена.

Camera

Move Camera

Позволяет перемещать камеру, в том числе с плавной интерполяцией положения.

_images/logic_editor_move_camera.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Camera

Камера, которую необходимо переместить.

Этот параметр может быть задан напрямую или с помощью переменной типа Object (если включена опция Variable).

Location

Объект, к которому перемещается камера. После того, как перемещение завершится, координаты камеры и объекта будут совпадать.

Этот параметр может быть задан напрямую или с помощью переменной типа Object (если включена опция Variable).

Target

Объект, в направлении которого камера будет развёрнута после перемещения.

Этот параметр может быть задан напрямую или с помощью переменной типа Object (если включена опция Variable).

Duration

Время (в секундах), которое займёт перемещение. По умолчанию равно нулю (в этом случае камера перемещается мгновенно). Может быть задано вручную или с помощью ссылки на переменную (эта возможность появляется при активации параметра Variable).

Set Camera Move Style

Используется для задания нового режима перемещения камеры.

_images/logic_editor_set_camera_move_style.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Camera

Камера, режим перемещения которой будет изменён.

Этот параметр может быть задан напрямую или с помощью переменной типа Object (если включена опция Variable).

New Camera Move Style

Задаёт новый режим перемещения выбранной камеры. Доступно четыре варианта: Hover, Eye, Target и Static.

Следующие параметры недоступны в том случае, если параметр New Camera Move Style имеет значение Static:

Translation

Задаёт скорость перемещения камеры. Значение по умолчанию - 1.0.

Rotation

Задаёт скорость поворота камеры. Значение по умолчанию - 1.0.

Zoom

Задаёт скорость приближения и удаления камеры. Значение по умолчанию - 0.10. Этот параметр доступен только в том случае, если параметр New Camera Move Style имеет значение Hover или Target.

Следующие параметры используются для задания цели или точки привязки камеры. Они доступны только если параметр New Camera Move Style имеет значение Hover или Target.

Use Object

Эта опция включает и выключает использования объекта сцены в качестве цели или точки привязки камеры (в зависимости от типа камеры). Если опция включена, появляется текстовое поле для задания объекта. Эта опция деактивирована по умолчанию.

Если параметр Use Object деактивирован, становятся доступны следующие три опции:

x

X-координата цели или точки привязки камеры.

y

Y-координата цели или точки привязки камеры.

z

Z-координата цели или точки привязки камеры.

Set Camera Limits

Эта нода применяется для настройки ограничений движения камеры. Нода содержит список всех ограничений, доступных в движке, но применяет только ограничения, совместимые с типом камеры.

_images/logic_editor_set_camera_limits.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Camera

Камера, ограничители движения которой будут изменены.

Этот параметр может быть задан напрямую или с помощью переменной типа Object (если включена опция Variable).

Distance Limits

Задаёт параметр Distance Limits, доступный для камер типов Target и Hover.

Hor. Rotation Limits

Задаёт параметр Horizontal Rotation Limits, доступный для камер типов Target и Eye.

Vert. Rotation Limits

Задаёт параметр Vertical Rotation Limits, доступный для камер типов Target, Hover и Eye.

Pivot Translation Limits

Задаёт параметр Pivot Translation Limits, доступный для камер типа Target.

Hor. Translation Limits

Задаёт параметр Horizontal Translation Limits, доступный для камер типа Hover.

Vert. Translation Limits

Задаёт параметр Vertical Translation Limits, доступный для камер типа Hover.

Object

Show Object

Используется для отображения объектов.

_images/logic_editor_show_object.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Object

Объект, который нужно отобразить.

Variable

Если этот параметр включён, в поле Object может быть указана переменная типа Object.

Process child objects

Если этот параметр включён, объекты-потомки также будут показаны.

Hide Object

Используется для скрытия объекта.

_images/logic_editor_hide_object.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Object

Объект, который нужно скрыть.

Variable

Если этот параметр включён, в поле Object может быть указана переменная типа Object.

Process child objects

Если этот параметр включён, объекты-потомки также будут скрыты.

Transform Object

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

_images/logic_editor_transform_object.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Object

Объект, который нужно трансформировать.

Variable

Если этот параметр включён, в поле Object может быть указана переменная типа Object.

Space

Этот параметр определяет систему координат, которая будет использована для трансформации объекта. Может принимать одно из следующих значений:

  • World - глобальная система координат.

  • Parent - система координат объекта, который является предком объекта, указанного в параметре Object. Точка привязки родительского объекта используется как центр координат, а углы наклона задают направления координатных осей.

  • Local - локальная система координат выбранного объекта. Схожа с системой координат родительского объекта, но в данном случае точка привязки самого объекта используется в качестве начала координат.

Значение по умолчанию - World.

Location

Перемещение объекта по осям X, Y и Z. По умолчанию все три значения равны нулю. Значения могут быть заданы в самой ноде либо с помощью переменной (если включена опция Variable).

Rotation

Углы поворота объекта вокруг осей X, Y и Z. По умолчанию все три угла равны нулю. Значения могут быть заданы непосредственно в ноде или через переменные (в том случае, если включена опция Variable).

Scale

Масштаб объекта. Может быть задан напрямую или с помощью переменной (если включена опция Variable). По умолчанию равен нулю.

Duration

Время (в секундах), которое займёт трансформация. Может быть задано как напрямую, так и посредством переменной (для этого должна быть включена опция Variable). По умолчанию равно нулю.

Move To

Позволяет перемещать объекты.

_images/logic_editor_move_to.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Object

Объект, который требуется переместить. Может быть задан напрямую или с помощью переменной (если включена опция Variable).

Destination

Цель (объект, источник света, камера и т.п.), к которой перемещается объект. После того, как перемещение завершится, координаты объекта и цели будут совпадать.

Этот параметр может быть задан напрямую или с помощью переменной типа Object (если включена опция Variable).

Duration

Время (в секундах), которое займёт перемещение. По умолчанию равно нулю (в этом случае объект не движется, а мгновенно перемещается к точке назначения). Может быть задано как в самой ноде, так и с помощью переменной (если активирован параметр Variable).

Apply Shape Key

Позволяет задать значение параметра Shape Key.

_images/logic_editor_apply_shape_key.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Object

Объект, к которому нужно применить трансформацию.

Shape Key

Ключ формы, который нужно применить к объекту.

Value

Степень влияния выбранного ключа формы на объект. Значение может быть задано в самой ноде или взято из переменной (если установлен параметр Variable). Изменяется в пределах от 0 до 1.

Outline

Позволяет управлять эффектом обводки объекта.

_images/logic_editor_outline.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Object

Объект, эффект обводки которого требуется настроить.

Variable

Если этот параметр включён, в поле Object может быть указана переменная типа Object.

Operation

Операция, которую следует произвести с обводкой объекта. Этот параметр может принимать одно из следующих значений:

  • PLAY - включает анимацию обводки

  • STOP - выключает её

  • INTENSITY - позволяет настраивать интенсивность обводки

Intensity

Интенсивность обводки объекта. Этот параметр появляется только если параметр Operation имеет значение INTENSITY. Интенсивность может быть задана численно или взята из переменной (для этого нужно активировать параметр Variable).

Set Shader Node Param

Позволяет установить значение одного или нескольких параметров шейдерной ноды. В данный момент поддерживаются ноды Value и RGB.

_images/logic_editor_set_shader_node_param.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Object

Объект, материал которого нужно отредактировать.

Material

Материал, параметры которого нужно изменить. Должен использовать ноды.

Node

Нода, параметры которой нужно изменить. На данный момент поддерживаются только ноды Value и RGB.

Parameters

Доступные для редактирования параметры выбранной ноды. Значения этих параметров могут быть заданы непосредственно в самой ноде или взяты из указанных переменных (для этого нужно активировать параметр Variable).

Inherit Material

Позволяет скопировать атрибуты одного материала на другой.

_images/logic_editor_inherit_material.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Source

Объект, которому присвоен материал, который требуется скопировать.

Material

Материал, который требуется скопировать.

Destination

Объект, которому требуется присвоить скопированный материал.

Material

Материал, который будет заменен скопированным материалом.

Operations

Variable Store

Сохраняет числовое или строковое значение в переменную.

_images/logic_editor_variable_store.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Var. name.

Имя переменной. Может быть выбрано из списка переменных либо задано самостоятельно (если включен параметр New variable).

Type

Тип переменной. Может иметь значения Number (численная переменная), String (строковая переменная) или Object (ссылка на объект).

Object

Этот параметр используется для задания объекта, используемого в качестве переменной. Доступен только в случае, если параметр Type имеет значение Object.

New Variable

Если этот параметр активирован, имя переменной может быть задано самостоятельно (а не выбрано из списка переменных). Может применяться для обмена данными с сервером.

Global

Включение этого параметра делает переменную глобальной. Доступен только если выбран параметр New Variable.

_images/logic_editor_variable_global.png

Math Operation

Выполнить математическую операцию и сохранить результат в регистр. Любой из параметров (операндов) может быть либо числовым значением, либо переменной.

_images/logic_editor_math_operation.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Operation

Математическая операция, производимая над операндами. Может иметь один из следующих типов:

  • Random - генерация случайной величины больше первого операнда и меньше второго.

  • Add - сумма операндов.

  • Multiply - произведение операндов.

  • Subtract - разность операндов.

  • Divide - частное операндов.

  • Sin - синус угла (в радианах), заданного первым операндом.

  • Cos - косинус угла (в радианах), заданного первым операндом.

  • Tan - тангенс угла (в радианах), заданного первым операндом.

  • ArcSin - арксинус значения, заданного первым операндом.

  • ArcCos - арккосинус значения, заданного первым операндом.

  • ArcTan - арктангенс значения, заданного первым операндом.

  • Log - логарифм первого операнда; в качестве базы используется второй операнд.

  • Min - возвращает наименьший из двух операндов.

  • Max - возвращает наибольший из двух операндов.

  • Round - округляет первый операнд.

  • Mod - остаток от деления первого операнда на второй.

  • Abs - значение первого операнда по модулю.

Operand1

Первый операнд. Может представлять собой численное значение либо ссылку на одну из переменных (в случае, если активирован параметр Variable).

Operand2

Второй операнд. Аналогичен первому.

Destination

Переменная, в которую помещается результат операции.

String Operation

Выполнить операцию над строковыми переменными и сохранить результат в переменную.

_images/logic_editor_string.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Operation

Операция, которую нужно произвести над строками. Может иметь одно из следующих значений:

  • Join - объединить первую строку со второй.

  • Find - записывает в переменную позицию первого вхождения второй строки в первую. Если вхождений нет, в переменную записывается результат -1. Следует иметь в виду, что символы строки нумеруются, начиная с нуля, а не с единицы.

  • Replace - найти содержимое второй строки в первой и заменить третьей.

  • Split - разделить первую строку на две части, используя первое вхождение второй строки как маркер места разделения.

  • Compare - сравнить первую строку со второй. Для работы этой операции требуется определить логическое условие. Если условие выполняется, в Destination будет будет записана единица, если нет - ноль.

Condition

Логическое условие, по которому сравниваются строки. Этот параметр появляется только если параметр Operation имеет значение Compare. Аналогично параметру Condition ноды Conditional Jump.

Operand1

Первая строка. Может быть задана в самой ноде или с помощью переменной.

Operand2

Вторая строка. Аналогична первой.

Operand3

Этот параметр появляется только если параметр Operation имеет значение Replace. Здесь задаётся строка, которой будет заменена вторая строка.

Destination

Переменная, в которую будет сохранён результат операции.

Destination2

Этот параметр появляется только в том случае, если параметр Operation имеет значение Split. Определяет переменную, в которую будет сохранена вторая половина разделённой строки.

Sound

Play Sound

Позволяет воспроизводить звук спикера.

_images/logic_editor_play_sound.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Speaker

Источник звука, который требуется активировать.

Variable

Если этот параметр включён, в поле Speaker можно указать переменную типа Object.

Do Not Wait

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

Stop Sound

Позволяет останавливать звук спикера.

_images/logic_editor_stop_sound.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Speaker

Источник звука, который нужно отключить.

Variable

Если этот параметр включён, в поле Speaker можно указать переменную типа Object.

Network

Send Request

Позволяет отправить HTTP GET запрос на указанный URL и поместить значения полей ответа в переменную.

_images/logic_editor_send_request.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Method

Метод отправки запроса. Может иметь одно из двух значений:

  • GET - отправляет запрос на получение данных с сервера.

  • POST - отправляет данные на сервер.

Значение по умолчанию - GET.

Url

Адрес, на который следует отправить запрос. Может быть задан напрямую или с помощью переменной (если включена опция Variable URL). По умолчанию имеет значение “https://www.blend4web.com”.

Response Params

Задаёт переменную, в которую будут сохранены данные с сервера.

Примечание

Информация, полученная с сервера, должна быть в формате JSON:

{
    "var0": 1,
    "var1": 10,
    "var2": 144
}
Content-Type

Определяет формат запроса. Состоит из типа и подтипа, например: text/plain. Значение по умолчанию - Auto. Используется для переназначения заголовка HTTP-запроса.

Request Params

Задаёт переменную, содержащую JSON-объект, который будет отправлен на сервер. Этот параметр доступен только если параметр Method имеет значение POST. Значение по умолчанию - R1.

JSON

Используется для кодирования и декодирования сложных JSON-объектов.

_images/logic_editor_json.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

JSON

Сcылка на JSON-объект, который нужно кодировать или декодировать. По умолчанию имеет значение R1.

JSON Operation

Операция, которую нужно произвести над JSON-объектом, указанном в параметре JSON. Может иметь одно из двух значений: ENCODE кодирует объект, PARSE декодирует его. Значение по умолчанию - ENCODE.

Paths

Список путей к переменным внутри объекта JSON. Пути используются для определения внутренней структуры объекта. Путь должен состоять из нескольких идентификаторов (разделённых точками), указывающих адрес поля JSON. Если имя фрагмента пути состоит только из цифр, такое имя интерпретируется как индекс массива. Пути создаются и удаляются вместе с переменными (в списке Variables); один путь всегда соответствует одной переменной. Список путей может использоваться как для кодирования, так и для декодирования объектов JSON. По умолчанию список пуст.

Variables

Список переменных, которые будут использованы для кодирования или декодирования JSON-объекта (в зависимости от значения параметра JSON Operation). Имена и количество переменных могут быть настроены. Этот список также пуст по умолчанию.

Кодирование объекта JSON с помощью логической ноды JSON.

_images/logic_editor_json_encode_example.png

Логическое дерево на изображении выше кодирует объект JSON и сохраняет его в переменной R1. Закодированный объект JSON будет иметь следующий вид:

{
    "main":{
        "part1":7,
        "part2":12,
        "part3":"abc"
    }
}

Декодирование объекта JSON с помощью логической ноды JSON.

_images/logic_editor_json_decode_example.png

Логическое дерево на изображении выше получает объект JSON с сервера, сохраняет его в переменной R1 и декодирует объект. Объект JSON имеет следующий вид:

{
    "a": {
        "b": 17,
        "c": "abc"
    }
}

При декодировании объекта JSON в этом примере создаются три переменные (создавать их заранее не требуется) с именами var0, var1 и var2, которые содержат разные части объекта JSON. В данном случае переменная var1 будет иметь значение, равное 17, переменная var2 будет иметь значение “abc”, а переменная var0 будет содержать следующий фрагмент объекта JSON:

{
    "b": 17,
    "c": "abc"
}

Page Param

Позволяет сохранить произвольный параметр веб-страницы в выбранной переменной.

_images/logic_editor_page_param.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Param Name

Имя параметра веб-страницы.

Если параметр с данным именем присутствует в URL-строке, то его значение будет сохранено в переменную, определенную полем Destination.

Destination

Переменная, в которую следует сохранить параметр.

Param type

Тип параметра веб-страницы. Доступные значения: Number, String и Object.

Hash param

Если включена эта опция, нода Page Param возвращает хэш-параметры; если она не включена, нода возвращает обычные URL-параметры.

Page Redirect

Служит для перенаправления на другие веб-страницы. По этой причине нода всегда находится в конце логической цепочки и не имеет выходных параметров.

_images/logic_editor_page_redirect.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Отсутствуют.

Внутренние параметры

Url

Адрес веб-страницы, которая будет открыта. Может быть задан напрямую или с помощью переменной (если включена опция Variable URL). Значение по умолчанию - “https://www.blend4web.com”.

Time

Date & Time

Эта нода возвращает текущее время и дату.

_images/logic_editor_time.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Time Format

Этот параметр определяет формат, в котором измеряется время. Он может принимать одно из следующих значений:

UTC

Всемирное координированное время.

Примечание

Всемирное координированное время, возвращаемое этой нодой, основывается на локальном системном времени и часовом поясе.

Local

Значение по умолчанию. Если выбрано это значение, нода возвращает локальное системное время.

Время и дата возвращаются в виде набора чисел (текущий год, месяц, день и т.д.), каждое из которых может быть записано в специально выбранную переменную. Среди этих чисел:

Year

Текущий год.

Month

Текущий месяц.

Day

Текущий день.

Hours

Часы.

Minutes

Минуты.

Seconds

Секунды.

Get Timeline

Эта нода используется для получения текущего кадра NLA-анимации или таймлайна.

_images/logic_editor_get_timeline.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

NLA Timeline

Если этот параметр активирован, нода будет возвращать текущий кадр NLA-анимации. Если параметр не активирован, нода будет возвращать текущий кадр таймлайна. Включено по умолчанию.

Destination

Задаёт переменную, в которую будет сохранено значение текущего кадра. По умолчанию имеет значение R1.

Elapsed

Эта нода возвращает время, прошедшее с момента рендеринга предыдущего кадра.

_images/logic_editor_elapsed.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Логическая нода Elapsed обладает одним внутренним параметром, позволяющим пользователю назначить переменную, в которую будет записано количество секунд, прошедших с момента рендеринга предыдущего кадра. По умолчанию используется переменная R1.

Delay

Позволяет установить задержку (в секундах) перед выполнением следующей ноды.

_images/logic_editor_delay.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Value

Время (в секундах), на которое задерживается передача управления следующей ноде. По умолчанию равно нулю. Может быть задано в явном виде или же взято из переменной (в случае, если активирован параметр Variable).

Layout

Frame

Дополнительный элемент, который применяется для разделения нод на группы.

Совет

Это не обязательное требование, но frame’ы рекомандуется использовать в сложных нодовых деревьях, чтобы сделать их проще для восприятия.

_images/logic_editor_frame.png

Элемент Frame обладает рядом параметров, доступных из панели Properties. Среди этих параметров - Label (используется для задания заголовка frame’а) и Color (устанавливает цвет frame’а).

Этот элемент также присутствует в стандарнтных нодовых редакторах Blender.

Empty

Простая нода, не выполняющая никаких действий кроме передачи управления следующей ноде. Может применяться для объединения нескольких логических нитей в одну или для того, чтобы сделать логическое дерево более простым для понимания.

_images/logic_editor_empty.png

Входные параметры

Previous

Предыдущая нода (либо несколько нод).

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Отсутствуют.

Reroute

В редакторе логики также присутствуют элементы Reroute - специальные ноды, который не выполняют никаких операций, а только передают управление следующей ноде (или следующему элементу Reroute). Они могут применяться для создания циклических структур или для того, чтобы сделать логическую цепочку более понятной и лёгкой для восприятия.

В отличие от ноды Empty, через элемент Reroute может проходить только одна логическая нить.

_images/logic_editor_reroute.png

Примечание

Выходной параметр не может быть подключён к входному параметру той же ноды. В случае, когда это требуется сделать (например, для того, чтобы зациклить выполнение какой-либо операции), следует использовать Reroute.

Debug

Console Print

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

_images/logic_editor_console_print.png

Входные параметры

Previous

Предыдущая нода.

Выходные параметры

Next

Следующая нода.

Внутренние параметры

Message

Сообщение, которые будет напечатано в консоли вместе со значениями переменных.

<имя переменной>

Имя одной из переменных, значение которой нужно вывести в консоли. По умолчанию нода Console Print имеет один параметр такого типа, также имеется возможность создавать новые и удалять уже существующие (нода может и не иметь ни одного параметра этого типа).

Другие возможности

Для отладки имеется возможность отключения (muting) нод. Для этого необходимо выделить ноду и нажать горячую клавишу M. Отключенная нода не выполняется, но при этом передает управление следующей ноде. Если у отключенной ноды имеется несколько выходов, то будет происходить выполнение ветки со стороны выхода отрицательного результата (Miss, False).