Объекты¶
Содержание
Объекты служат целям размещения компонентов различного типа (мешей, камер, ламп и т.д.) в пространстве 3D сцены.
Типы¶
Движком поддерживаются объекты следующих типов:
пустой (empty)
кривая (curve)
текст (text)
метасфера (metaball)
поверхность (surface)
При экспорте сцены объекты типов CURVE, TEXT, METABALL и SURFACE конвертируются в объекты типа MESH.
Статические и динамические объекты¶
Объект может быть статическим или динамическим.
Статические объекты - объекты, которые невозможно перемещать, анимировать или изменять любым другим способом во время работы приложения. Для повышения быстродействия, такие объекты могут объединены друг с другом, если они имеют одинаковый материал.
Динамические объекты можно перемещать, анимировать и изменять другими способами во время работы приложения. Такие объекты также могут взаимодействовать с другими объектами, в том числе со статическими. Динамические объекты никогда не объединяются друг с другом или со статическими объектами.
Только объекты типов MESH и EMPTY могут быть как статическими, так и динамическими. Все остальные объекты, например CAMERA или ARMATURE, всегда динамические.
Статические объекты типа MESH рендерятся значительно быстрее динамических, поэтому для повышения производительности рекомендуется сводить количество динамических мешей к минимуму. Объекты других типов, как статические, так и динамические, не оказывают существенного влияния на производительность.
Объекты, имеющие анимацию, физику или родителя, являющегося динамическим объектом, рассматриваются как динамические. Динамическими считаются также объекты, контролируемые следующими логическими нодами:
Play AnimationTransform ObjectMove ToInherit Material
Методы API для перемещения, копирования и анимации (как самого объекта, так и его нодового материала) объектов могут применяться только к динамическим объектам. Чтобы обеспечить движение объекта, не имеющего настроек динамического объекта, в его настройках следует активировать опцию Force Dynamic Object.
Настройка¶
Для объектов всех типов поддерживаются расположение в пространстве, указатель на блок данных, родительский объект, принадлежность к группе и ряд свойств, специфичных для Blend4Web.
Вкладка Object¶
Панель Transform¶
- Transform > Location
Координаты местоположения.
- Transform > Rotation
Углы вращения. При повороте объекта доступны все режимы
Rotation Mode, но при создании объектной анимации поддерживаются толькоQuaternion (WXYZ)иXYZ Euler.- Transform > Scale
Масштабирование. Все 3 компонента (x, y, z) должны быть одинаковы. Для физических объектов масштабирование не поддерживается.
Панель Display¶
Содержит параметры, определяющие, как выбранный объект будет выглядеть в окне 3D View. В режиме Blend4Web эта панель не включает никаких дополнительных параметров.
Панель Level of Detail¶
- Levels of Detail > Object
Объект, используемый для данного уровня детализации.
- Levels of Detail > Distance
Расстояние, на котором начинается использование данного уровня детализации.
Использование уровней детализации описано в соответствующем разделе.
Панель Animation¶
- Animation > Apply Default Animation
Начать воспроизведение в движке связанной с объектом анимации.
- Animation > Animation Blending
Только для арматурных объектов. Разрешить плавный переход от одной скелетной анимации к другой.
- Animation > Behavior
Поведение анимации при достижении последнего кадра:
Finish Stop- остановить,Finish Reset- остановить и сбросить в нулевой кадр,Loop- циклически повторять.
Панель Export Options¶
- Export Options > Do Not Export
Не экспортировать.
- Export Options > Apply Modifiers
Применить модификаторы объекта при экспорте.
Примечание
При наличии модификатора
SKINрекомендуется применить его перед экспортом, т.к. он сбрасывает слои вертексных цветов и UV-текстур, что может привести к ошибкам экспорта.- Export Options > Apply Scale and Modifiers
Применить масштабирование и модификаторы объекта при экспорте.
- Export Options > Export Vertex Animation
Экспортировать предварительно созданную и сохраненную вертексную анимацию. Актуально только для объектов типа
MESH.- Export Options > Export Shape Keys
Экспортировать ключи деформации. Актуально только для объектов типа
MESH.
Примечание
Свойства Apply Modifiers, Apply Scale And Modifiers, Export Vertex Animation, и Export Shape Keys взаимоисключают друг друга.
Панель Rendering Properties¶
- Rendering Properties > Hidden
Если это свойство активировано, объект будет невидим при запуске сцены.
- Rendering Properties > Hidden Children
Все потомки объекта, а также потомки его потомков будут невидимы при запуске сцены. Этот параметр доступен только если включен параметр
Rendering Properties > Hiddenи у объекта имеются потомки.- Rendering Properties > Do Not Render
Отключить рендеринг объекта (например, вспомогательный объект физики).
Этот параметр недоступен для объектов типа
Empty.- Rendering Properties > Disable Frustum Culling
Отключить оптимизацию отсечением по зоне видимости.
Этот параметр недоступен для объектов типа
Empty.- Rendering Properties > Force Dynamic Object
Принудительно сделать объект динамическим.
- Rendering Properties > Dynamic Geometry & Materials
Включает возможность использовать API для обновления геометрии объекта и наследования материалов.
- Rendering Properties > Line Rendering
Активирует использование объекта для рендеринга линий.
Этот параметр доступен только для объектов типа
Empty.
Панель Shadows¶
- Shadows > Cast
Объект будет отбрасывать тени.
- Shadows> Cast Only
Объект будет отбрасывать тени, при этом сам будет оставаться невидимым. Становится доступным после включения
Shadows > Cast.- Shadows > Receive
Разрешить затенение от прилегающих объектов (получение теней) на объекте.
Панель Billboard¶
- Billboard
Использовать объект в качестве билборда (т.е. автоматически ориентировать его относительно камеры).
- Billboard > Preserve Global Rotation
Билбординг объекта с учетом его ориентации в мировом пространстве. Объект всегда будет обращен к камере той стороной, которая видна при взгляде на него вдоль направления оси Y в системе координат Blender’а. Становится доступным после включения
Billboard.- Billboard > Billboard Type
Способ ориентирования билборда.
Spherical(по умолчанию) - объект всегда ориентирован к камере одной стороной независимо от угла обзора,Cylindrical- аналогичноSpherical, только вращение ограничено осью Z мирового пространства в Blender. Становится доступным после включенияBillboard.
Панель Reflections¶
- Reflections > Reflexible
При включении объект будет отражаться от зеркальных поверхностей.
- Reflections > Reflexible Only
При включении объект будет отражаться, при этом сам будет оставаться невидимым. Становится доступным после включения
Reflections > Reflexible.- Reflections > Reflective
При включении объект будет отражать своей поверхностью другие объекты.
- Reflections > Reflection Plane
Текстовое поле для названия пустого объекта, задающего плоскость отражения. Становится доступным после включения
Reflections > Reflective.
Панель Selection and Outlining¶
- Selection and Outlining > Selectable
Разрешить выделение объекта с помощью мыши или другого устройства ввода.
- Selection and Outlining > Enable Outlining
Разрешить подсвечивание объекта (эффект Outline).
Панель Anchors¶
- Anchors > Enable Anchor
Активирует интерфейс добавления якорей (двухмерных меток) к объектам. Доступно только для объектов типа
EMPTY. Якоря подробно описаны в соответствующем разделе.
Панель Meta Tags¶
- Meta Tags
Интерфейс добавления мета-тегов на объект:
- Meta Tags > Title
Заголовок объекта.
- Meta Tags > Category
Категория объекта.
- Meta Tags > Description
Описание объекта. В зависимости от значения опции
Description Sourceв это поле заносится либо текст описания непосредственно, либо имя файла, в котором содержится описание.Примечание
Чтобы использовать текстовый файл как источник для поля
Descriptionнеобходимо открыть существующий файл в редакторе Блендера Text Editor либо создать новый файл в этом же редакторе.Затем остается только выбрать имя этого файла в поле
Description.- Meta Tags > Description Source
Тип (источник) описания объекта: текст либо файл с текстом.
Панель Relations¶
- Relations > Parent
Указатель на родительский объект.
Если в качестве родительского объекта выбрана камера, становятся доступными настройки
Viewport Alignment.
Они могут применяться для привязывания объекта к текущей камере. Описаны в главе “Камера”.
Панель Duplication¶
Содержит настройки дупликации объектов. В режиме Blend4Web эта панель не включает никаких дополнительных параметров по сравнению с любым другим режимом. Следует, однако, заметить, что на данный момент движок Blend4Web поддерживает только метод дупликации Group.
Панель Wind Bending¶
- Wind Bending
Включить процедурную анимацию под действием ветра. Подробно описана в разделе, посвященном рендерингу наружных сцен.
Панель Special Effects¶
- Special Effects > Disable Fogging
Отключить туман для объекта.
- Special Effects > Caustics
На объекте будут видны эффекты от прилегающей к нему воды (каустика).
Вкладка Physics¶
- Detect Collisions
Активировать связанную с объектом физику.
- Floating
Сделать объект плавучим. Подробное описание настроек плавучих объектов можно найти в разделе физика.
- Vehicle
Активировать использование объекта в качестве составной части транспортного средства. Подробное описание настроек транспортных средств можно найти в разделе физика.
- Character
Активировать использование объекта в качестве физического каркаса игрового персонажа. Подробное описание настроек персонажа можно найти в разделе физика.
Ограничители объектов¶
Движок Blend4Web поддерживает следующие ограничители объектов:
Copy Location,Copy Rotation,Copy TransformsиTrack To.
Примечание
При использовании ограничителей объектов в Blend4Web параметр Space игнорируется (его значение всегда считается равным World Space).
Эти ограничители могут быть настроены непосредственно в Blender. Другие типы ограничителей не поддерживаются, однако некоторые методы из модуля constraints работают схожим образом. Среди них:
Метод append_copy_loc() работает так же, как ограничитель
Copy LocationМетод append_copy_rot() работает так же, как ограничитель
Copy RotationМетод append_copy_trans() работает так же, как ограничитель
Copy TransformsМетод append_follow() работает почти так же, как ограничитель
Limit Distance, однако следует заметить, что этот метод не задаёт точного расстояния между объектами (вместо этого он использует минимальную и максимальную дистанции).В качестве аналога ограничителя
Track Toможет использоваться метод append_track().
Прочие ограничители не имеют прямых аналогов, однако в определённой степени их поведение можно воспроизвести при помощи методов API.
Модуль constraints также включает несколько дополнительных методов:
-
Этот метод может применяться для прикрепления объекта к другому объекту с использованием полумягкого ограничителя. Такой объект будет плавно следовать за объектом, к которому прикреплён. Этот метод может применяться, например, для создания камер с видом “от третьего лица”.
-
С помощью этого метода объект может быть прикреплён к другому объекту с использованием полужесткого ограничителя, т.е. такой объект вращается и двигается вместе с “родительским” объектом, но также может вращаться независимо (в локальной системе координат родительского объекта). С помощью этого ограничителя можно создать, например, башню танка.
-
Этот метод прикрепляет объект к другому объекту (или арматуре) с помощью жёсткого ограничителя. Такой объект движется, поворачивается и меняет масштаб вместе с “родительским” объектом.
Примеры: меч в руке персонажа; персонаж, сидящий в транспортном средстве.
-
Этот метод прикрепляет объект к другому объекту, используя жесткое преобразование. “Дочерний” объект перемещается вместе с “родительским”, но не вращается вместе с ним (и может вращаться независимо от родительского объекта).
-
Используется для прикрепления одного объекта к другому с использованием жесткого преобразованиявращения. “Дочерний” объект движется и вращается вместе с родительским, но не наследует его масштаб (и может менять свой масштаб независимо от родительского объекта).
Пример: эмиттер частиц дыма, прикреплённый к выхлопной трубе.
-
Жестко прикрепляет объект к камере (объект всегда сохраняет своё положение относительно камеры и всегда визуально находится в одной точке экрана).
Этот ограничитель может применяться для создания как двух-, так и трёхмерных элементов интерфейса.
remove() удаляет все ограничители, ранее применённые к объекту.
Настройки якорей¶
Якоря могут применяться для добавления поясняющих надписей к 3D-объектам. Вне зависимости от позиции камеры, надпись всегда располагается рядом с объектом и следует за ним в случае его анимации.
Аннотация может быть полностью создана в Blender. Для этого достаточно разместить в нужном месте объект типа Empty и включить его использование в качестве “якоря”. Текст аннотации можно изменить в полях Title и Description, доступных на вкладке Meta Tags.
- Enable Anchor
Активирует интерфейс добавления якорей (двухмерных меток) к объектам. Доступно только для объектов типа
EMPTY.- Type
Тип якоря
Annotation- информация из мета-тегов объектов отображается в раскрывающихся информационных окнах стандартного дизайна.Custom Element- в качестве якоря можно назначить произвольный HTML-элемент с текущей веб-страницыGeneric- якорь, положение которого можно определить с помощью API модуляanchors.
Значение по умолчанию -
Annotation- HTML Element ID
Задаёт ID HTML-элемента, который будет использоваться в качестве якоря. Доступно только если параметр
Typeимеет значениеCustom Element.- Detect Visibility
Определять видимость якоря, т.е. реагировать на перекрытие объекта-якоря другими объектами. Активация опции приводит к падению производельности рендеринга и должна рассматриваться только в случае реальной необходимости.
- Max Width
Ограничить всплывающее информационное окно аннотации выбранным значением (в CSS пикселях). Доступно только если параметр
Typeимеет значениеAnnotation. Значение по умолчанию - 250.
Управление перемещением объектов¶
Примечание
Необходимо обеспечить, чтобы объект, над которым выполняется преобразование, был динамическим.
Для управления перемещением объектов в движке предусмотрены следующие базовые функции модуля transform:
- get_translation()
Получить координаты центра объекта в мировой системе координат. Вариант с одним параметром возвращает новый вектор (неоптимизированный вариант), вариант с двумя требует отдельного вектора для записи результата.
- get_translation_rel()
Аналогично методу
get_translation(), однако если у данного объекта имеется родительский объект, координаты берутся в относительной системе координат, связанной с этим родительским объектом.- set_translation(), set_translation_v()
Переместить центр объекта в указанное место. Первая функция принимает в качестве параметров отдельные координаты, вторая - трёхмерный вектор (
ArrayилиFloat32Array).- set_translation_rel(), set_translation_rel_v()
Аналогично методам
set_translation()иset_translation_v(), однако если у данного объекта имеется родительский объект, координаты задаются в относительной системе координат, связанной с этим родительским объектом.- get_rotation()
Получить кватернион поворота объекта в мировой системе координат. По аналогии с
get_translation()имеется два варианта вызова функции.- get_rotation_rel()
Получить кватернион поворота объекта в системе координат, связанной с родительским объектом. По аналогии с
get_translation_rel()имеется два варианта вызова функции.- set_rotation(), set_rotation_v()
Установить кватернион поворота объекта в мировой системе координат. Первая функция принимает в качестве параметров отдельные координаты, вторая - четырёхмерный вектор (
ArrayилиFloat32Array).- set_rotation_rel(), set_rotation_rel_v()
Установить кватернион поворота объекта в системе координат, связанной с родительским объектом. Первая функция принимает в качестве параметров отдельные координаты, вторая - четырёхмерный вектор (
ArrayилиFloat32Array).- get_scale()
Получить значение коэффициента увеличения объекта в мировой системе координат.
- get_scale_rel()
Установить коэффициент увеличения объекта в системе координат, связанной с родительским объектом.
- set_scale()
Установить коэффициент увеличения объекта в мировой системе координат. Единица соответствует исходному состоянию. Значение меньше единицы - уменьшение. Значение больше единицы - увеличение. Не все объекты могут быть увеличены. В частности, увеличение невозможно для физических объектов.
- set_scale_rel()
Установить коэффициент увеличения объекта в системе координат, связанной с родительским объектом.
- set_rotation_euler(), set_rotation_euler_v()
Установить поворот объекта с помощью углов Эйлера. Используется
