Блоки данных¶
Базовой единицей (unit) любого проекта Blender является блок данных. Примеры блоков данных включают в себя: меши, объекты, материалы, текстуры, древа нод, сцены, тексты, кисти и даже рабочие области.
Блок данных – это общая абстракция самых разных типов данных, которая имеет общий набор основных функций, свойств и поведения.
Некоторые общие характеристики:
Они являются основным содержимым blend-файла.
Они могут ссылаться друг на друга для повторного использования и создания экземпляров. (Дочерний/родительский объект, данные объекта/объект, материалы/изображения, в модификаторах или также в ограничениях…)
Их имена уникальны в пределах blend-файла для данного типа.
Их можно добавлять/удалять/редактировать/дублировать.
Их можно связать между файлами (включено только для ограниченного набора блоков данных).
Они могут иметь свои собственные данные анимации.
Они могут иметь Пользовательские свойства.
Пользователь обычно взаимодействует с типами данных более высокого уровня (объектами, мешами и т. д.). При выполнении более сложных проектов управление блоками данных становится более важным, особенно при связывании blend-файлов. Основным редактором для этого является аутлайнер.
Не все данные в Blender представляют собой блоки данных. Кости, дорожки секвенций или группы вершин, к примеру, принадлежат к типам арматуры, сцены и меша соответственно.
Типы блоков данных¶
Для справки, вот таблица типов блоков данных, хранящихся в blend-файлах.
- Связать (Link)
Связывание библиотек, поддерживает связывание с другими blend-файлами.
- Упаковать (pack)
Упаковка файлов: поддерживает упаковку содержимого файла в blend-файл (неприменимо для большинства блоков данных, которые не имеют ссылки на файл).
Тип (type) |
Связать (Link) |
Упаковать (pack) |
Описание |
---|---|---|---|
✓ |
— |
Сохраняет анимацию F-кривых. Используется как дата-блок данных анимации. И редактором нелинейной анимации. |
|
✓ |
— |
Скелет, используемый для деформации мешей. Используется как данные объектов-арматуры. И модификатором арматуры. |
|
✓ |
— |
Used as brush assets in sculpt and paint modes. |
|
✓ |
— |
Используется в качестве данных объектами-камерами. |
|
✓ |
— |
Используется модификаторами кэша меша (mesh cache). |
|
✓ |
— |
Используется в качестве данных объектами кривой, шрифта и поверхности. |
|
✓ |
✓ |
Ссылается на файлы шрифтов. Используется объектными данными кривой текстовых объектов. |
|
✓ |
— |
Данные 2D/3D эскиза, используемые объектами Grease Pencil. Используется в качестве вспомогательной информации наложения в редакторах 3D-вьюпорта, изображения, секвенсора и видеороликов. |
|
✓ |
— |
Группирует и систематизирует объекты в сценах. Используется для создания экземпляров объектов и при связывании библиотек. |
|
✓ |
✓ |
Файлы изображений. Используется нодами шейдера и текстурами. |
|
✗ |
— |
Хранилище геометрических форм, которые можно анимировать. Используется мешами, кривыми и решетчатыми (lattice) объектами. |
|
✓ |
— |
Используется в качестве данных объекта объектами освещения. |
|
✗ |
✓ |
Ссылается на внешний blend-файл. Доступ из аутлайнера в Файл Blender. |
|
✓ |
— |
Используется рендерером Freestyle. |
|
✓ |
— |
Деформация решётки (lattice) на основе сетки (grid). Используется в качестве данных объектов-решётки и модификатором решётки. |
|
✓ |
— |
2D-анимированные кривые (curves) маски. Используется нодами композитинга и дорожкой секвенсора. |
|
✓ |
— |
Устанавливает свойства шейдинга и текстурирования рендера. Используется объектами, мешами и кривыми. |
|
✓ |
— |
Изоповерхность (isosurface) в трехмерном пространстве. Используется как данные метабол-объектов. |
|
✓ |
— |
Геометрия, состоящая из вершин/рёбер/граней. Используется в качестве данных меш-объектов. |
|
✓ |
✗ |
Ссылается на секвенцию изображений или видеофайл. Используется в редакторе видеоклип. |
|
✓ |
— |
Группы многоразовых нодов. Используется в нодовых редакторах. |
|
✓ |
— |
Нечто в сцене с местоположением, масштабом и вращением. Используется сценами и коллекциями. |
|
✓ |
— |
Сохраняет штрихи (формы) рисования или скульптуры. Доступ из инструментов рисования. |
|
✓ |
— |
Сохранение пресетов цвета. Доступ из инструментов рисования. |
|
✓ |
— |
Настройки частиц. Используется системами частиц. |
|
✓ |
— |
Помогает создать сложное освещение в реальном времени в EEVEE. |
|
✓ |
— |
Основное хранилище всех отображаемых и анимированных данных. Используется как хранилище высшего уровня для объектов и анимации. |
|
✓ |
✓ |
Ссылка на звуковые файлы. Используется как данные объектов-динамиков. |
|
✓ |
— |
Источники звука для 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» рядом с его именем.
Предупреждение
Удаление некоторых блоков данных может привести к удалению некоторых его пользователей, которые без них станут недействительными. Основным примером является то, что удаление данных объекта (например меша, кривой, камеры…) также приведёт к удалению всех объектов, использующих их.
Эти две операции также доступны в контекстном меню при нажатии ПКМ на блок данных в аутлайнере.