Читайте также:
|
|
Самые простые плугины напрямую создают объекты стандартных классов. Классическим представителем такого типа плугинов является Ring Array, который выстраивает стандартные объекты по кругу. Более сложные скрипт плугины могут базироваться на уже существующих классах, жестко задавая часть их свойств, а остальные предоставлять для изменения. Например, Вы можете создать собственный “стеклянный” материал и задавать его свойства в созданном Вами свитке
Скрипт плугин может иметь уникальный идентификатор, который записывается в файл сцены. Фактически каждый плугин, в том числе и стандартный, например box или sphere имеет такой идентификатор. Для тех плугинов, в которых пользователь не определил такого идентификатора, он создается автоматически, но не записывается в файле сцены. В любом плугине может быть определен один или более блоков, содержащих анимируемые параметры, которые сохраняются в файл сцены и восстанавливаются при его загрузке. Эти параметры могут быть ассоциированы с компонентами пользовательского интерфейса. В этом случае действия с ассоциированным компонентом приведут к изменению объекта и наоборот.
Скрипт плугин определяется следующим образом
plugin Название_класса Имя_переменной Список_параметров
В качестве имени класса может быть указано одно из следующих зарезервированных слов
Geometry
SimpleObject
Shape
Light
Helper
Modifier
SimpleMod
Material
TextureMap
RenderEffect
Atmospheric
Имя переменной задает переменную, содержащую класс объекта, создаваемого данным плугином. Данный класс ничем не отличается от стандартных классов (sphere, box и т.д.), и Вы можете создавать объекты этого класса программно. Например, все объекты, созданные с помощью плугина, определенного следующим образом
plugin Geometry Cuboid
…
будут иметь класс Cuboid. Вы можете создать объект этого класса с помощью следующего скрипта
c = Cuboid ()
Список параметров может содержать следующие именованные параметры
name: Символьная_строка
Строка, указанная в этом параметре будет использоваться как имя плугина. Если плугин создает геометрический объект или световой источник, то именно эта строка будет написана на кнопке вызова плугина. Если Вы пишете плугин для модификатора, то эта строка будет содержаться в списке модификаторов. Если с помощью плугина создается битовая карта или материал, то она появится в окне выбора карт или материалов. По умолчанию имя плугина то же, что и переменная заданная вторым параметром плугина.
category: Символьная_строка
Данная строка указывает категорию, которая появляется в списке категорий панели Create. При выборе этой категории из списка на панели появится кнопка для вызова Вашего плугина. По умолчанию значение этого параметра “Standard”. Имейте в виду, что количество кнопок для каждой категории ограничено. Если кнопка созданного Вами плугина не умещается на панели, заведите для него новую категорию.
classID: #(Целое_число,Целое_число)
Данный параметр указывается, если Вы хотите, чтобы объекты, созданные с помощью скрипт плугина запоминались и восстанавливались при сохранении и загрузке max файла. Он представляет собой идентификатор, который можно не задавать, если плугин создает стандартные объекты. Идентификатор представляет собой два случайно выбранных числа. Чтобы получить идентификатор для своего плугина, лучше всего воспользоваться функцией
genClassID ()
После этого в окне интерпретатора появятся два уникальных числа, которые Вы можете использовать для идентификации своего плугина.
extends: Имя_класса
Этот параметр указывают, если написанный Вами плугин базируется на уже существующем. Плугины такого типа позволяют расширять свойства существующих примитивов, добавляя к ним новые параметры. Класс, который определен в этом параметре, должен иметь именно тот класс предок, который указан в определении скрипт плугина. Имеются ограничения на классы, которые можно использовать как базовые. Например, нельзя расширять или изменять пользовательский интерфейс направленных камер или источников света и всех классов категории System.
Когда Вы создаете объект с помощью плугина, расширяющего возможности уже существующего, MAXScript самостоятельно создает объект базового класса. Этот объект называется делегатом, его можно видеть в окне Track View, если параметр replaceUI не задан равным true. Доступ к свойствам объекта делегата можно получить из текста плугина, как будет показано позже
replaceUI: Логическое_выражение
Данный параметр задается только если определен предыдущий параметр extends и указывает, будут ли свитки, определенные в плугине, дополнять свитки базового объекта (делегата) или замещать их. По умолчанию он равен false, что означает добавление свитков.
version: Целое_число
Данное число задает номер версии плугина. Проблема совместимости плугинов может возникать, если сцены, созданные с помощью ранних версий загружаются после определения более поздней версии. Для разрешения такой коллизии применяется ряд средств, которые будут рассмотрены далее. Одним из таких средств является задание номера версии. По умолчанию этот параметр равен 1.
invisible: Логическое_выражение
Если объекты, созданные Вашим плугином не могут быть созданы сами по себе, но только как члены группы, то параметр invisible следует задать равным true. В этом случае интерфейс плугина не появится на панели управления, в окне выбора карты или материалов и т. д. Иными словами объект класса, описанного в данном плугине, можно будет создать только программно.
silentErrors: Логическое_выражение
Указанное в этом параметре значение определяет поведение плугина в случае возникновение ошибки. Задание true запрещает выдачу сообщения об ошибке, false – разрешает.
Если Вы загружаете сцену, содержащую объекты, созданные с помощью плугинов, а соответствующий плугин не определен, то будет выдано стандартное сообщение об отсутствии DLL. 3ds max работает со скрипт плугинами так же, как и с обычными, загружая их при старте из каталога plugins.
Дата добавления: 2015-10-31; просмотров: 80 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Правила оформления средств работы с мышью | | | Правила построения скрипт-плугина |