Как создать клонер

Чтобы создать любой объект используемый для сцены нужно воспользоваться таким кодом:

obj = c4d.BaseObject(ID)

где ID - представляет из себя номер идендификатора нужного объекта. Номерам наиболее часто используемых объектов сопоставлены константы:

  • Ocube 5159

  • Onull 5140

  • Oplane 5168

  • Osphere 5160

и т.д. Список этих констант можно найти в документации. Таким образом мы можем создать, например примитив куба, либо написав так:

cube = c4d.BaseObject(5159)

либо так:

cube = c4d.BaseObject(c4d.Ocube)

Однако, в документации перечислены не все возможные объекты. Как раз клонера там и нету... В таком случае, есть обходной путь. В самой Cinema 4D включаем команду "Протокол скрипта" (находится там же где и менеджер скриптов) - теперь каждое действие в редакторе будет сопровождаться отображением примерно такой команды:

c4d.CallCommand(300000116) # Протокол скрипта...
изображение протокола скрипта

Создаем клонер на сцене через меню редактора и наблюдаем в протоколе скрипта:

Вот эта цифра 1018544 и есть нужный нам номер, который позволит создать клонер в коде:

Далее созданный объект можно поместить в сцену:

Важное примечание: таким образом можно создавать только объекты помещаемые в сцену. Другие объекты, например слои в менеджере слоев, нужно создавать по другому, хотя сама команда c4d.CallCommand(ID) может быть использована.

Перед тем как добавить клонер на сцену можно настроить параметры клона:

где константа c4d.ID_MG_MOTIONGENERATOR_MODE_LINEAR может быть заменена обычным числом 1 . Названия констант можно смотреть в документации или просто заменять их числами. Так следущее число 2 сделает тип клона радиальным и т.д.

Чтобы узнать как изменить соответствующий атрибут объекта(клонера) нужно найти его в менеджере атрибутов, выделить название атрибута щелчком левой кнопки мыши, а затем перетащить это название в редактор скриптов или консоль. В том месте куда перетащили название атрибута появится в квадратных скобках имя константы через которую надо обратится к соответвующему параметру объекта. К примеру, у линейного клонера есть атрибут количество, перетащив его в редактор увидим название cloner[c4d.MG_LINEAR_COUNT] Используем это:

изображение атрибутов клонера

Перед тем как в коде назначать параметрам свои значения полезно заглянуть в документацию, чтобы не ошибиться с типом значения. Или просто распечатать через print:

Зададим смещение каждому следующему объекту в линии. Это можно сделать двумя способами. Первый:

Второй:

Вот полный код скрипта:

Cinema4D R23 - Python объекты выраженные в константах

Last updated

Was this helpful?