Как создать клонер
Last updated
Last updated
Чтобы создать любой объект используемый для сцены нужно воспользоваться таким кодом:
где ID - представляет из себя номер идендификатора нужного объекта. Номерам наиболее часто используемых объектов сопоставлены константы:
Ocube 5159
Onull 5140
Oplane 5168
Osphere 5160
и т.д. Список этих констант можно найти в документации. Таким образом мы можем создать, например примитив куба, либо написав так:
либо так:
Однако, в документации перечислены не все возможные объекты. Как раз клонера там и нету... В таком случае, есть обходной путь. В самой Cinema 4D включаем команду "Протокол скрипта" (находится там же где и менеджер скриптов) - теперь каждое действие в редакторе будет сопровождаться отображением примерно такой команды:
Создаем клонер на сцене через меню редактора и наблюдаем в протоколе скрипта:
Вот эта цифра 1018544 и есть нужный нам номер, который позволит создать клонер в коде:
Далее созданный объект можно поместить в сцену:
Важное примечание: таким образом можно создавать только объекты помещаемые в сцену. Другие объекты, например слои в менеджере слоев, нужно создавать по другому, хотя сама команда c4d.CallCommand(ID) может быть использована.
Перед тем как добавить клонер на сцену можно настроить параметры клона:
где константа c4d.ID_MG_MOTIONGENERATOR_MODE_LINEAR может быть заменена обычным числом 1 . Названия констант можно смотреть в документации или просто заменять их числами. Так следущее число 2 сделает тип клона радиальным и т.д.
Чтобы узнать как изменить соответствующий атрибут объекта(клонера) нужно найти его в менеджере атрибутов, выделить название атрибута щелчком левой кнопки мыши, а затем перетащить это название в редактор скриптов или консоль. В том месте куда перетащили название атрибута появится в квадратных скобках имя константы через которую надо обратится к соответвующему параметру объекта. К примеру, у линейного клонера есть атрибут количество, перетащив его в редактор увидим название cloner[c4d.MG_LINEAR_COUNT]
Используем это:
Перед тем как в коде назначать параметрам свои значения полезно заглянуть в документацию, чтобы не ошибиться с типом значения. Или просто распечатать через print:
Зададим смещение каждому следующему объекту в линии. Это можно сделать двумя способами. Первый:
Второй:
Вот полный код скрипта: