КАТЕГОРИИ: Архитектура-(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 8 контроллер управления по выражению был переработан и теперь доступен для сценариев MAXScript посредством интерфейса IExprCtrl. Приложение А контроллер управления по сценарию использует общий базовый код и имеет почти такое же диалоговое окно, как и контроллер управления по выражению. Он доступен для сценариев MAXScript посредством интерфейса iScriptCtrl. Помимо изменений в диалоговом окне, контроллер управления по сценарию был значительно усовершенствован. В следующем упражнении оба контроллера сравниваются и противопоставляются на конкретном примере. 1. Введите в новом окне редактора MAXScript Editor следующий фрагмент кода и вычислите его: delete objects clearListener() objE = box name:"objE" objS = box name:"objS" pos: [50,0,0] 2. Назначьте контроллер управления по выражению с плавающей точкой для свойства length объекта objЕ следующим образом: objEctrl = objE.length.controller = float_expression() 3. Назначьте контроллер управления по сценарию с плавающей точкой для свойства length объекта objS следующим образом: objSCtrl = objS.length.controller = float_script() 4. Откройте приемник команд и вычислите следующую строку кода: ShowInterfaces objECtrl В итоге выводится только один интерфейс, называемый IExprCtrl.
5. Откройте приемник команд и вычислите следующую строку кода: ShowInterfaces objSCtrl В итоге выводится только один интерфейс, называемый IScriptCtrl. При ближайшем рассмотрении обнаруживается, что у каждого интерфейса имеется ряд следующих общих методов: GetExpression, SetExpression, GetDescription, SetDescription, GetOffset, Setoffset, GetValue, DeleteVariable, RenameVariable, Update и VariableExists. У них также имеется общее свойство ThrowOnError. 6. Вычислите следующие строки кода: objECtrl.setExpression "F" objSCtrl.setExpression "currentTime" 7. Воспроизведите анимацию. Продолжительность анимации соответствует числу кадров. "F" — это специальный символ, используемый в выражениях для обозначения номера текущего кадра. Анимация обоих параллелепипедов получается практически одинаковой. 8. Откройте редактор кривых в окне Track View. Перейдите к треку свойства length объекта objE. Выделите его, щелкните правой кнопкой мыши и выберите команду Properties из контекстного меню, чтобы открыть диалоговое Приложение
окно свойств данного объекта. Сделайте то же самое для объекта 9. Далее внесите некоторую произвольность в увеличение размеров параллелепипеда. Этого нельзя добиться с помощью контроллера управления по выражению, но можно сделать с помощью контроллера управления по сценарию. Вычислите следующую строку кода: 10. Воспроизведите анимацию. Окончательный код сценария должен выглядеть следующим образом: delete objects
objE = box name: "objE" objS = box name: "objS" pos: [50,0,0]
objECtrl = objE.length.controller = float_expression()
showInterfaces objECtrl -- Имеется один интерфейс: IExprCtrl.
objECtrl.setExpression "F" objSCtrl.setExpression "currentTime"
objSCtrl.setExpression "currentTime + random 0 20"
11. Для обратной совместимости сценарий из контроллера управления по сценарию можно получить и установить с помощью свойства.script. Например, для получения сценария вычислите следующую строку кода: objS.length.controller.script В приемнике команд появится следующий результат: 12. Для установки сценария вычислите следующую строку кода: Параллелепипед начнет подрагивать. Это было очень краткое введение в контроллеры управления по выражению и сценарию. Дополнительные сведения по данному вопросу можно
Дата добавления: 2014-10-15; Просмотров: 445; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |