Блоки данных

Базовой единицей (unit) любого проекта Blender является блок данных. Примеры блоков данных включают в себя: меши, объекты, материалы, текстуры, древа нод, сцены, тексты, кисти и даже рабочие области.

../_images/files_data-blocks_outliner-blender-file-view.png

Представление файла Blender в аутлайнере.

Блок данных – это общая абстракция самых разных типов данных, которая имеет общий набор основных функций, свойств и поведения.

Некоторые общие характеристики:

  • Они являются основным содержимым blend-файла.

  • Они могут ссылаться друг на друга для повторного использования и создания экземпляров. (Дочерний/родительский объект, данные объекта/объект, материалы/изображения, в модификаторах или также в ограничениях…)

  • Их имена уникальны в пределах blend-файла для данного типа.

  • Их можно добавлять/удалять/редактировать/дублировать.

  • Их можно связать между файлами (включено только для ограниченного набора блоков данных).

  • Они могут иметь свои собственные данные анимации.

  • Они могут иметь Пользовательские свойства.

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

Не все данные в Blender представляют собой блоки данных. Кости, дорожки секвенций или группы вершин, к примеру, принадлежат к типам арматуры, сцены и меша соответственно.

Типы блоков данных

../_images/files_data-blocks_id-types.png

Типы блоков данных с их значком.

Для справки, вот таблица типов блоков данных, хранящихся в blend-файлах.

Связать (Link)

Связывание библиотек, поддерживает связывание с другими blend-файлами.

Упаковать (pack)

Упаковка файлов: поддерживает упаковку содержимого файла в blend-файл (неприменимо для большинства блоков данных, которые не имеют ссылки на файл).

Тип (type)

Связать (Link)

Упаковать (pack)

Описание

Действие

Сохраняет анимацию F-кривых. Используется как дата-блок данных анимации. И редактором нелинейной анимации.

Арматура

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

Brush

Used as brush assets in sculpt and paint modes.

Камера (camera)

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

Файл кэша

Используется модификаторами кэша меша (mesh cache).

Кривая (curve)

Используется в качестве данных объектами кривой, шрифта и поверхности.

Шрифт

Ссылается на файлы шрифтов. Используется объектными данными кривой текстовых объектов.

Grease Pencil

Данные 2D/3D эскиза, используемые объектами Grease Pencil. Используется в качестве вспомогательной информации наложения в редакторах 3D-вьюпорта, изображения, секвенсора и видеороликов.

Коллекция

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

Изображение

Файлы изображений. Используется нодами шейдера и текстурами.

Ключи (ключи формы)

Хранилище геометрических форм, которые можно анимировать. Используется мешами, кривыми и решетчатыми (lattice) объектами.

Свет (light)

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

Библиотека

Ссылается на внешний blend-файл. Доступ из аутлайнера в Файл Blender.

Line Style

Используется рендерером Freestyle.

Решётка (lattice)

Деформация решётки (lattice) на основе сетки (grid). Используется в качестве данных объектов-решётки и модификатором решётки.

Маска

2D-анимированные кривые (curves) маски. Используется нодами композитинга и дорожкой секвенсора.

Материал

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

Метабол (metaball)

Изоповерхность (isosurface) в трехмерном пространстве. Используется как данные метабол-объектов.

Меш (mesh)

Геометрия, состоящая из вершин/рёбер/граней. Используется в качестве данных меш-объектов.

Видеоклип

Ссылается на секвенцию изображений или видеофайл. Используется в редакторе видеоклип.

Древо нодов

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

Объект

Нечто в сцене с местоположением, масштабом и вращением. Используется сценами и коллекциями.

Кривая краски (Paint Curve)

Сохраняет штрихи (формы) рисования или скульптуры. Доступ из инструментов рисования.

Палитра

Сохранение пресетов цвета. Доступ из инструментов рисования.

Частица

Настройки частиц. Используется системами частиц.

Зонд освещения (light probe)

Помогает создать сложное освещение в реальном времени в EEVEE.

Сцена

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

Звуки

Ссылка на звуковые файлы. Используется как данные объектов-динамиков.

Источник звука (speaker)

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

Текст

Текстовые данные. Используется скриптами Python и шейдерами OSL.

Текстура

2D/3D текстуры. Используется кистями и модификаторами.

Диспетчер окон

Общий менеджер всего пользовательского интерфейса Blender. Включает рабочие области, систему уведомлений, операторов и раскладки клавиш.

Мир

Определяет глобальные настройки среды рендера.

Рабочая область

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

Время существования

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

Поскольку во время работы часто добавляется и удаляется большое количество данных, это имеет то преимущество, что не нужно вручную управлять каждым отдельным блоком данных. Это работает за счёт пропуска блоков данных с нулевыми пользователями при записи blend-файлов.

Защищено

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

Если вы создаёте blend-файл, который будет служить библиотекой ассетов, к которому вы собираетесь ссылаться из других файлов, – вам необходимо убедиться, что они не будут случайно удалены из файла библиотеки.

Чтобы защитить блок данных, используйте кнопку со значком щита рядом с его названием. Блок данных никогда не будет автоматически удалён Blender’ом, но при необходимости вы всё равно сможете удалить его вручную.

Name & Rename

Data-blocks names are unique within their namespace. A data-block namespace is defined by its type, and the blendfile it is stored in.

This means that there can be for example an Object and a Mesh named the same, but there cannot be two local objects named the same in a blendfile. However, it is possible to have one local and several linked Objects sharing the same name.

Data-block names have a fixed length of 63 bytes, i.e. 63 basic ASCII characters, or less when using diacritics or non-latin glyphs (the UTF8 encoding will then typically use more than a byte per character).

When Blender has to name a new data-block, or rename an existing one, it will check for name collisions. If a data-block with the same name already exists, the (re)named data-block will get a numeric extension added as a post-fix to its „root name“, like e.g. .001. The first available index is used (up to the 999 value, after that the postfix index values are simply incremented until no collision happen anymore).

In case adding the numeric suffix would make the data-block name too long, the root name part will be shortened as needed.

Blender will never rename another data-block when doing automatic naming. So e.g. when adding a new Cube object and there are already Cube and Cube.001 local objects, the new one will be named Cube.002.

Local data-blocks can be renamed by the user in several places in the UI (like the ID selection widget, or the Outliner view). When renamed from the UI, the behavior in case of name collision is as follow:

  • If the original root name is different than in the new requested name, the renamed data-block gets the first available numerical suffix.

    • E.g. assuming that there are three objects named Sphere, Cube and Cube.001, renaming Sphere to Cube will rename the data-block to Cube.002.

  • If the original root name is the same as in the new requested name, the renamed data-block gets the requested name, and the conflicting of data-block is renamed accordingly.

    • E.g. assuming that there are three objects named Sphere, Cube and Cube.001, renaming Cube.001 to Cube will rename the data-block to Cube, and the other data-block to Cube.001.

Совместное использование

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

Примеры случаев, когда обмен данными является обычным явлением:

  • Совместное использование текстур между материалами.

  • Совместное использование мешей между объектами (экземплярами).

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

Вы также можете обмениваться блоками данных между файлами, см. связанные библиотеки.

Создание одного пользователя

Когда блок данных используется несколькими пользователями, вы можете сделать его копию для данного пользователя. Для этого нажмите кнопку подсчета пользователей справа от его имени. Это приведёт к дублированию этого блока данных и назначению вновь созданной копии только для этого использования.

Примечание

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

Удаление блоков данных

Как описано в разделе «Время существования», блоки данных обычно удаляются, когда они больше не используются. Их также можно отсоединить или удалить вручную.

Отсоединение (unlinking) блока данных означает, что его пользователь больше не будет его использовать. Это можно сделать, щёлкнув значок «X» рядом с именем блока данных. Если вы отсоедините блок данных от всех его пользователей, он, в конечном итоге, будет удалён Blender’ом, как описано выше (если только он не является защищённым).

Удаление блока данных напрямую удаляет его из blend-файла, автоматически отделяя его от всех пользователей. Этого можно добиться, нажав Shift-ЛКМ на значке «X» рядом с его именем.

Предупреждение

Удаление некоторых блоков данных может привести к удалению некоторых его пользователей, которые без них станут недействительными. Основным примером является то, что удаление данных объекта (например меша, кривой, камеры…) также приведёт к удалению всех объектов, использующих их.

Эти две операции также доступны в контекстном меню при нажатии ПКМ на блок данных в аутлайнере.