КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Система публикации функций и интерфейсы
Подключаемые модули 3dsMax позволяют создавать новые типы объектов. Одни подключаемые модули входят в стандартный комплект 3dsMax, а другие разрабатываются независимыми производителями с помощью набора инструментальных средств разработки программ (SDK — Software Developer Kit). Аналогично остальным типам объектов такие объекты обладают рядом свойств и методов. Система публикации функций (FPS — Function Publishing System) предоставляет средства для запроса подобных объектов в MAXScript с целью определить их свойства, методы и связанные с интерфейсоми действия. Приложение Система публикации функций была разработана и внедрена в версии 3dsMax 4, С тех пор все свойства и методы для новых и уже имеющихся объектов MAXScript публикуются с помощью данной системы, а не встраиваются непосредственно в объекты, С точки зрения публикации функций интерфейс представляет собой ряд свойств, методов и связанными с интерфейсоми действий, доступных для объекта. Это понятие не следует путать с пользовательским интерфейсом. Доступные для объекта интерфейсы определяются с помощью функции getInterfaces: getInterfaces <объект> Данная функция выводит перечень интерфейсов для указанного объекта. Обнаружив нужный интерфейс, вы можете запросить свойства, методы и связанные с интерфейсом действия, доступные посредством данного интерфейса, введя следующую команду: showInterface <объект>.<интерфейс> Эта команда сродни функции showProperties. Если функция showProperties выводит свойства, встроенные в объект, то команда showInterface выводит свойства, методы и действия, введенные в объекты, существующие с версии 3dsMax 4, или же в новые объекты, созданные с помощью подключаемых модулей. Для вывода всех интерфейсов, доступных для объектов, стоящих ниже класса Node, служит следующая команда: showInterfaces node С помощью любой из этих команд можно вывести интерфейсы наиболее удобным для написания сценариев способом. Так, функция getInterfaces и команда showInterface отображают интерфейсы для отдельного объекта независимо от их доступности для всех остальных узлов. А команда showInterfaces (с буквой V в конце) отображает интерфейсы для всех узлов. Рассмотрим некоторые свойства и методы, доступные посредством системы публикации функций. Для доступа к интерфейсам выполните следующее упражнение. 1. Установите 3dsMax в исходное состояние и очистите приемник команд. 2. Введите в приемнике команд следующий фрагмент кода: b = box() getInterfaces b В итоге будут выведены все интерфейсы для параллелепипедного объекта: #(<MixinInterface:IAssembly>, <MixinInterface:INodeGIProperties>, <MixinInterface:INode>, <MixinInterface:INodeLayerProperties>, <MixinInterface:INodeBakeProperties>, <MixinInterface:SkinPose>) Эти интерфейсы могут быть использованы для обнаружения дополнительных свойств, методов и действий, доступных для параллелепипеда. Далее вам предстоит ознакомиться с интерфейсом Inode. 3. Введите в приемнике команд следующую строку кода: showInterface b.INode Приложение По этой команде выводится ряд свойств и методов применительно к параллелепипеду. Так, свойство.handle предоставляет уникальный идентификационный номер, связанный с объектом. 4. Введите в приемнике команд следующую строку кода: b.INode.handle При выполнении этой строки кода возвращается идентификационный номер 1 в качестве дескриптора параллелепипедного объекта. Смена имени параллелепипеда никак не сказывается на свойстве.handle. С его помощью параллелепипед остается по-прежнему доступным на сцене. Кроме того, многие свойства интерфейса можно использовать, не указывая перед ними сам интерфейс. 5. Введите в приемнике команд следующую строку кода: b.handle При выполнении этой строки кода возвращается идентификационный номер 1. В данном случае свойство.handle использовано без указания перед ним интерфейса.INode. Если свойство интерфейса не вступает в конфликт с имеющимся в MAXScript свойством, сам интерфейс можно не указывать между именем объекта и свойством интерфейса. 6. Введите в приемнике команд следующую строку кода: showinterfaces node При выполнении этой строки выводится каждый интерфейс, а также его свойства, методы и действия. Третьим выводится интерфейс INode. В этой части листинга приведены те же свойства, методы и действия, что и при выполнении команды showinterface b.INode. Для применения интерфейса на практике выполните следующее упражнение. 1. В этом упражнении вам предстоит воспользоваться интерфейсом, который обнаруживается с помощью системы публикации функций, чтобы получить дополнительные методы для ограничения по линии взгляда. Установите 3dsMax в исходное состояние и очистите приемник команд. 2. Введите в приемнике команд следующий фрагмент кода: clearListener() lookAtObj = cone pos: [50,0,0] lookAtTarg = dummy() c = lookat_constraint() lookAtObj.rotation.controller = c В двух последних строках кода в переменной c создается экземпляр ограничения по линии взгляда и затем он присваивается конусу. 3. Введите в приемнике команд следующую строку кода: showProperties c По этой команде выводятся встроенные свойства ограничения по линии взгляда. Приложение 4. Введите в приемнике команд следующую строку кода: c.target_axis = 2 В этой строке кода встроенное свойство используется для выбора оси Y ориентации цели. По команде showProperties выводятся свойства, используемые для получения и установки разных параметров осей, но не свойства для получения и установки параметров цели. Такие свойства и методы обнаруживаются посредством интерфейса. 5. Введите в приемнике команд следующую строку кода: getInterfaces c По этой команде выводятся интерфейсы для ограничения по линии взгляда. В данном случае это единственный интерфейс constraints. 6. Введите в приемнике команд следующую строку кода: showInterface c.constraints По этой команде выводятся свойства, методы и связанные с ними действия, доступные для данного интерфейса. Это, в частности, метод appendTarget для присоединения целей. 7. Введите в приемнике команд следующую строку кода: c.constraints.appendTarget lookAtTarg 50 С помощью метода из интерфейса в этой строке кода цель по линии взгляда вводится в список целей с весом 50. 8. Переместите конус, обратив внимание на то, что он нацелен на фиктивный объект. Интерфейс constraints — это специальный вид интерфейса, называемого MixinInterface. Это означает, что интерфейс является средством доступа к множеству элементов. Иными словами, в одном интерфейсе совмещается множество элементов. Если для решения конкретной задачи требуется найти подходящее свойство или метод, воспользуйтесь функцией getInterfaces и командами showInterface и showInterfaces, чтобы получить перечень свойств и методов, доступных для любого объекта.
Дата добавления: 2014-10-15; Просмотров: 516; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |