Справка Cinema 4D Cinema 4D Visualize, Broadcast, Studio Персонажная анимация Компоненты персонажа
Функция доступна в CINEMA 4D Studio
Компоненты персонажа

Общие Тег Добавить Отражение Учёт Материалы Слои Выбор Привязка Настройки Точки Заметки Анимация Походка Python Расширенно

Python

Посредством языка программирования Python вы можете производить реализацию и создание собственных функций и изменять поведения для объекта Персонаж на этапе его создания и дополнительной настройки.

Код

В этом поле вам необходимо задать код Python.

Посредством Python вы реализовать воздействие для следующих методов, позволяющих создавать изменение поведения объекта Персонаж для определённых участков времени или выполняемых действий. Проверьте предварительно производство c4d режима в пределах этого поля, что позволит создавать собственные объекты и соответствующие им ссылки. Необходимую документацию для языка Python вы можете найти в сети Интернет по адресу http://developers.maxon.net.

def BuildTemplate()

Эта функция выполняется при каждом использовании тега компонента с типом Персонаж, если впоследствии происходит сохранение сцены персонажа при использовании для этого команды Сохранить образец персонажа как…, которую вы найдёте в основном меню программы Персонаж / Создать персонаж. На основе этой функции вы можете производить добавление объектов, для создания динамических (подвижных) образцов или модификации имеющегося проекта. При добавлении компонентов вам необходимо обращать внимание на одновременное добавление при этом тега компонентов с необходимыми для вас настройками.

Параметры:

def GetComponents()

Эта функция используется каждый раз в пределах тега компонентов персонажа, если вы производите его изменение. Она определяет при этом показ кнопок компонентов для создаваемого объекта Персонаж и предоставляет при этом список имеющихся компонентов (как BaseLinks в BaseContainer). Если не происходит возврата значения для BaseContainer, при этом используются стандартные правила учёта / исключения в теге Компоненты персонажа.

Параметры:

Значение возврата:

c4d.BaseContainer

Примеры:

Если на закладке Python вы произведёте задание этого кода, в этом случае объект Персонаж произведёт создание нового объекта с названием Spline_null. До момента добавления позвоночника персонажа (независимо от родительского (высшего) объекта), добавление последующих составляющих персонажа является невозможным. Обратите внимание на то, что методика FindObject производит поиск по названию объектов и не учитывает при этом название компонентов. Для этого примера значение возврата для BaseContainer произойдёт только в том случае, если позвоночник персонажа не существует. Если вы произвели создание позвоночника, в этом случае будет действительным стандартное правило учёта / исключения в теге Компоненты персонажа.

def ModeChanged()

Используется для каждого тега компонентов при условии изменения режима настройки (создание, настройка, привязка или анимация). Это можно использовать, например, при изменении видимости объекта или при отключении / включении функций XPresso. Значение возврата в данном случае не создаётся и происходит только модификация объекта Персонаж.

Параметры:

Постоянные:

def InsertComponent()

Эта функция может использоваться в двух вариантах. Один из них, это закладка Python находящаяся в теге компонентов. Второй вариант – это её использование для условий исключения / учёта компонентов. Для создания компонента необходимо добавить все объекты в сцену и затем произвести передачу значения основного компонента (который был добавлен в сцену).

Параметры:

Значение возврата:

c4d.BaseObject – объект основных компонентов или объект, для которого компоненты будут расположены как подобъекты.

Пример

При использовании функции InsertComponent в правилах добавления Python, этот код производит назначение объекта, для которго компоненты будут назначены как подобъекты. Это процесс является зависимым от подобъектов, которые для актуального промежутка времени может иметь родительский объект. Если подобъекты уже имеются, в этом случае используется иерархия Т-сустава, что позволяет производить расположение компоентов на различных окончаниях сустава.

def PostInsertComponent()

Эта функция используется после добавления компонентов в объекте Персонаж (в случае не использования функции InsertComponent). Значение возврата при этом не создаётся и вы можете производить непосредственное изменение в пределах этой функции для добавляемых компонентов.

Параметры:

def MirrorComponent()

Эта функция будет использована в случае присвоения для объекта Персонаж одного из отражённых компонентов. Отражённые компоненты создаются автоматически, если несколько компонентов аналогичного типа добавляются с одинаковыми объектами, расположенными выше по иерархии (родительскими объектами). Функция MirrorComponent используется до начала использования PostInsertComponent, так как отражённые компоненты могут модифицироваться непосредственно в пределах этой функции.

Параметры:

Значение вывода:

True / !=0 если отображение производится на основе Python.

def BoneInsert()

Эта функция используется в пределах тега компонентов на закладке "Python", если пользователь производить изменение актуального числа костей. Данная функция при этом производит автоматическое перенятие процесса добавления костей.

Параметры:

def IncludeObjects()

На основе этой функции вы можете производить дополнительную добавку объектов для компонентов, по аналогии с закладкой Учёт тега Компоненты персонажа. Параметр incdata является (начальным контейнером) BaseContainer, в котором объекты каждой записи представляют собой ссылку BaseLink для объекта. Индекс является целочисленным числовым выражением и связан с InExcludeData flags:

Flags:

Параметры:

Значение вывода:

True / !=0 если incdata изменилось

def AdjustObject()

Эта функция используется в пределах правила настройки Python. Вы создаёте её на основе использования закладки настроек и добавления в список объектов нового объекта или создания в нём нового правила. Для параметра Тип в данном случае вы устанавливаете режим Python. Эта функция просчитывается только в том случае, если она находится в соответствующем поле, предназначенном для задания (создания) кода. Она будет постоянно использоваться для всего временного интервала, на протяжении которого происходит настройка соответствующего контроллера. В пределах этой функции вы можете производить непосредственное изменение параметров или передачу значения матрицы. Последний вариант является рекомендуемым, так как прямое изменение параметров в пределах функции может приводить к созданию конфликтов с другими правилами. Все матрицы этой функции для объекта Персонаж являются локальными.

Параметры:

Значение вывода:

Назначаемая для объекта матрица (c4d.Matrix)

def GetDependency()

Эта функция используется в пределах правила настройки Python (до AdjustObject). Эта функция предоставляет для вас все объекты, которые имеют ссылки в пределах создаваемого (созданного) правила. Если вы имеете правило, которое определяет позицию на основе трёх других объектов (например, направляющий вектор), в этом случае будет создан начальный контейнер c4d.BaseContainer содержащий ссылки для этих трёх объектов. Объект Персонаж в этом случае создаёт необходимую иерархию зависимости, которая обеспечивает правильную последовательность для необходимых настроек просчёта в создаваемом правиле (так как при определенных обстоятельствах правило производит изменение для матрицы объекта, которая в свою очередь также может зависеть от другого правила).

Параметры:

Значение вывода:

c4d.BaseContainer с учётом BaseLinks (номер ID при этом не просчитывается)

def TransformComponent()

Эта функция используется в пределах правила добавления Python. Она создаётся на закладке добавления, посредством создания вами нового объекта или правила в списке объектов и установки активным режима "Python" для добавления. В пределах этой функции вы можете производить изменение компонентов и всех учитываемых объектов на этапе их добавления (при этом на подзакладке трансформации происходит автоматическое согласование значений для актуально используемых параметров).

Параметры:

Значение вывода:

Новая глобальная матрица (c4d.Matrix) для объекта основного компонента

def AllowComponent()

Эта функция используется в пределах правила добавления Python. Она создаётся на закладке добавления, посредством создания вами нового объекта или правила в списке объектов и установки активным режима "Python" для добавления. Просчёт этой функции происходит только в случае её расположения в соответствующем поле кода. Значение выхода имеет "True", если использование компонентов является разрешённым. Эта функция является похожей на GetComponents за единственным при этом исключением и различием, так как она производит предоставление статуса и значений для отдельных компонентов.

Параметры:

Значение вывода:

c4d.modules.character.builder.CharacterObject

def FindObject(name)

Производит поиск объекта на основе названия образца.

Параметры: name (String) – название объекта, находящееся в поиске

Значение вывода: Или найденный объект (c4d.BaseObject) или "None"

def GetFirst()

Предоставляет первый компонент персонажа.

Значение вывода: Первый компонент (builder.ComponentObject) или "None"

def GetObject()

Использует начальный объект персонажа - BaseObject.

Значение вывода: Начальный объект персонажа - BaseObject (c4d.BaseObject)

c4d.modules.character.builder.Template

def FindComponent(name, ident)

Производит поиск компонентов в пределах образца.

Параметры:

Значение вывода: Найдённые компоненты (builder.Component) или "None"

def FindObject(name)

Производит поиск объекта в пределах образца.

Паоаметры: name (String) – Искомое название объекта

Значение вывода: Найденный объект (c4d.BaseObject) или "None"

def GetDocument()

Производит поиск начального документа - BaseDocument

Значение вывода: Сцена (c4d.BaseDocument)

c4d.modules.character.builder.Component

def GetObject()

Использует компоненты объекта - BaseObject

Значение вывода: Объект (c4d.BaseObject)

def GetTemplate()

Использует образец компонентов

Значение вывода: Образец (builder.Template)

c4d.modules.character.builder.ComponentObject

def CountComponent(name, ident, mirrored, down)

Производит подсчёт компонентов, расположенных ниже по иерархии.

Параметры:

Значение вывода: Число совпадений (int)

def FindComponent(name, ident, mirrored, down)

Производит поиск определённого компонента высшего объекта на основе имеющегося названия.

Параметры:

Значение вывода: первый найденный объект (builder.ComponentObject)

def FindObject(name)

Производит поиск объекта в пределах компонентов, на основе имеющегося названия.

Параметры: name (String) это название находится в поиске

Значение вывода: первый найденный объект (c4d.BaseObject)

def GetComponent()

Производит поиск компонентов.

Значение вывода: Соответствующие компоненты (builder.Component)

def GetDown()

Производит поиск основного объекта для первого подкомпонента.

Значение вывода: Основной объект первого подкомпонента (c4d.BaseObject)

def GetName(ident)

Производит поиск названия компонентов.

Параметры: ident (Boolean) при "True" будет показано название и однозначный номер ID

Значение вывода: Название (String)

def GetNext()

Производит поиск основного объекта для последующего компонента

Значение вывода: Основной объект для последующего компонента (c4d.BaseObject)

def GetObject()

Производит поиск основного объекта компонентов

Значение вывода: Объект (c4d.BaseObject)

def GetObjects(type=COMPONENT_OBJECT_GETOBJECTS_TYPE_):

Производит поиск контейнера со всеми объектами этого компонента

Параметры:

Значение вывода: Контейнер со ссылками на объекты (c4d.BaseContainer)

def GetPrev()

Производит поиск предшествующего основного объекта компонентов

Значение вывода: Предшествующий основной объект компонентов (c4d.BaseObject)

def GetTag()

Производит поиск тега компонентов соответствующего этим компонентам

Значение вывода: Тег компонентов (c4d.BaseTag)

def GetUp()

Производит поиск основного объекта на уровне для расположенных выше по иерархии компонентов

Значение вывода: основной объект расположенных выше по иерархии компонентов (c4d.BaseObject)