Блоки данных

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Связать (link)

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

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

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

Тип (type)

Связать (link)

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

Описание (description)

Действие (action)

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

Арматура (armature)

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

Кисть (brush)

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

Файл кэша (cache file)

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

Камера (camera)

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

Коллекция (collection)

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

Кривая (curve)

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

Кривые (curves)

Новый тип данных для кривой (заменяет „Сurve“).

Шрифт (font)

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

Grease Pencil

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

Grease Pencil v3

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

Изображение (image)

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

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

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

Решётка (lattice)

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

Библиотека (library)

Ссылается на внешний blend-файл. Доступ из аутлайнера в режиме отображения „Blender File“.

Источник освещения (light)

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

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

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

Стиль линий (line style)

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

Маска (mask)

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

Материал (material)

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

Меш (mesh)

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

Метасфера (metaball)

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

Видеофрагмент (movie clip)

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

Древо нод (node tree)

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

Объект (object)

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

Кривая рисования (paint curve)

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

Палитра (palette)

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

Частица (particle)

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

Облака точек (point cloud)

Совокупность точек в трёхмерном пространстве.

Сцена (scene)

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

Экран (screen)

Низкоуровневое хранилище пользовательского интерфейса.

Звук (sound)

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

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

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

Текст (text)

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

Текстура (texture)

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

Объём (volume)

Объекты-объёмы, используемые для размещения сеток данных.

Менеджер окон (window manager)

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

Рабочее пространство (workspace)

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

Мир (world)

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

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

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

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

Защищено от удаления

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

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

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

Примечание

Связанные данные не могут быть защищены таким образом.

Имя и Переименование

Имя блока данных уникально в пределах своего пространства имён. Пространство имён блока данных определяется его типом и файлом .blend, в котором он сохранён.

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

Имена блоков данных имеют фиксированную длину 255 байт и кодировку UTF-8. Это позволяет использовать до 255 стандартных символов ASCII, однако этот лимит уменьшается при использовании диакритических знаков или нелатинских символов, так как они занимают более одного байта на символ. Имена блоков данных не могут содержать нулевой символ (U+0000).

Когда Blender присваивает имя новому блоку данных или переименовывает существующий, он проверяет наличие конфликтов имён. Если блок данных с таким именем уже существует, к «корневому имени» переименованного блока добавляется числовой постфикс, например „.001“. Доступные индексы используются вплоть до значения 999 – после этого число в постфиксе просто увеличивается до тех пор, пока совпадение имён не исчезнет.

В случае, если добавление числового суффикса делает имя блока данных слишком длинным, корневая часть имени будет сокращена по мере необходимости.

Blender никогда не переименует другой блок данных при автоматическом именовании. Так, например, при добавлении нового объекта „Cube“ и наличии локальных объектов „Cube“ и „Cube.001“, новый будет назван как „Cube.002“.

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

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

    • Предположим, что есть три объекта с именами „Sphere“, „Cube“ и „Cube.001“, переименование „Sphere“ в „Cube“ приведёт к переименованию блока данных в „Cube.002“.

  • Если новое запрашиваемое имя будет совпадать с исходным, уже существующим корневым именем, – переименованный блок данных получает запрошенное имя, а конфликтующий блок данных переименовывается соответствующим образом беря старое имя переименованного.

    • Предположим, что есть три объекта с именами „Sphere“, „Cube“ и „Cube.001“, переименование „Cube.001“ в „Cube“ переименует блок данных в „Cube“, а другой блок данных в „Cube.001“.

Имена с точечным префиксом (скрытые данные)

Имена блоков данных, начинающиеся с точки (.), считаются скрытыми.

Скрытые блоки данных:

  • По умолчанию они не отображаются в файловых браузерах.

  • Они скрыты в большинстве меню выбора блоков данных.

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

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

Скрытые блоки данных можно делать видимыми через пользовательские настройки:

  • Включите опцию „Defaults – Show Hidden Files/Data-Blocks“, чтобы отображать блоки данных с префиксом в виде точки в файловых браузерах и селекторах идентификаторов данных.

  • Включите опцию „Search – Show Hidden“, чтобы отображать блоки данных с префиксом в виде точки в меню поиска.

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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