Навигация по различным объектам сцены
В среде 3D-графики, такой как Cinema 4D, навигация и манипуляция объектами сцены являются основными задачами. Рассмотрим основные методы работы с объектами сцены в Cinema 4D с использованием Python API.
doc = documents.GetActiveDocument()
- получение активного документа. Обычно в скрипте уже доступна глобальная переменая doc
содержащая активный документ.
Активный объект — это объект сцены, который в настоящее время выбран пользователем. Для получения активного объекта используется следующий метод:
Обычно в скрипте уже доступна глобальная переменая op
содержащая активный объект. Если ничего не выделено или выделено несколько объектов или только тег(-и) - вернет None
Получить список выделенных объектов меши, теги, камеры и др.:
Если ничего не выделено вернет пустой список.
Сделать объект выделенным можно с помощью такого кода:
Причем результат будет зависить от параметра mode (можно сделать объект соло-выделенным или добавить его к уже выделенным, или убрать из выделенных)
Получить список объектов выделенных в менеджере объектов:
Аргумент отвечает: по умолчанию будут возвращены выделенные объекты верхнего уровня; будут возвращены включая дочерние объекты; объекты будут возвращены согласно порядку их выделения
Корневой объект сцены можно получить с помощью метода GetFirstObject(), который возвращает первый объект в иерархии сцены (независимо от того выделен он или нет):
Для поиска объекта по имени в рамках документа используйте метод SearchObject():
Обход объектов:
Чтобы найти родительский объект для текущего выбранного объекта, используйте метод GetUp():
Получение дочерних объектов (список):
Возвращает последний дочерний элемент этого объекта в списке:
Получение следующего объекта в иерархии:
Получение предыдущего объекта:
Работа с тегами
Теги добавляют дополнительные свойства к объектам. Например, теги могут контролировать рендеринг, материалы, деформации и многое другое. Возвращает первый тег, связанный с объектом:
Возвращает последний тег, связанный с объектом:
Получить список всех тегов, связанных с объектом:
Вернет список всех выделенных тегов:
Получение конкретного типа тега:
Скопировать теги объекта в другой объект:
visible - видимость, variable - вариативность, hierarchical - иерархичность
Работа с материалами
Материалы в Cinema 4D определяют визуальные характеристики объектов, такие как цвет, текстура, отражение и прозрачность. Получение первого материала в документе:
Возвращает выделенный (в менеджере материалов) материал:
Если выделено больше одного - вернет None
Вернет список выделенных (в менеджере материалов) материалов:
Поиск материала по имени:
Вернет список всех материалов в документе:
Так же к материалам и тегам можно применять методы GetNext(), GetPred(), GetUp(), GetChildren() для навигации по иерархии.
Last updated