Главная | iClone 3.1
Анимация поддерживает репутацию страны
Предыдущая Следующая
3.?Пользуйтесь уже готовыми сценариями. Если читатель не знает чего-то, он может воспользоваться уже готовым сценарием, выполняющим аналогичные функции, и приспособить его к своим нужяам. Это весьма распространенный практический прием, избавляющий от необходимости писать код в больших объемах, а также изобретать велосипед. Однако при этом не следует забывать, что при заимствовании любой части чужого кода (даже одной или двух функций) правилами хорошего тона предписывается упоминание в сценарии создателя данной части кода. Ознакомьтесь с лицензионным соглашением, сопутствующим любому сценарию, чтобы убедиться в том, что автор не возражает против
Глава 22. Создание сценариев для специализированной анимации 691
заимствования его кода, либо уточните этот вопрос, связавшись с ним. например, по электронной почте. Кто знает, возможно, общение с автором сценария принесет дополнительную пользу. Готовые сценарии, написанные другими пользователями 3ds max, имеются по адресу: http://www.scriptspot.com.
4. Пользуйтесь макрорегистратором (MacroRecorder), который вызывается из главного меню MAXScript и регистрирует команды, выполняемые в пользовательском интерфейсе. В частности, если требуется написать сценарий, создающий сферы, включите режим MacroRecorder, создайте сферу средствами пользовательского интерфейса, и тогда в области MacroRecorder появится следующая команда:
Sphere radius:31 smooth:on segs:32 chop:0 slice off sliceFromrO sliceTo:0 transform: (matrix3 [1,0,0] [0,0,1] [0,-1,0] [100,200,300]) isSelected:on
Если читателю потребуется создать сферу, данный сценарий послужит хорошим примером автоматизации этого процесса. Для создания простых сценариев подобным образом достаточно зарегистрировать ряд событий, а затем перетащить полученный текст сценария из области MacroRecorder на любую панель инструментов. В итоге появится кнопка, которая может быть нажата в любой момент для повторения ранее зарегистрированных действий.
В MacroRecorder регистрируются далеко не все операции. Некоторые из них приходится описывать в сценарии вручную. А иногда в MacroRecorder записывается ложная информация, так что за достоверность регистрируемой информации ручаться нельзя. Если же выполненная операция не регистрируется в MacroRecorder, не отчаивайтесь — ее можно описать в сценарии вручную.
5.?Пользуйтесь оперативной справкой MAXScript. Отнюдь не все операции max могут быть описаны в сценарии. В отличие от приложения трехмерной графики Maya, которое было создано на основании написанного ранее языка создания сценариев, сначала было создано приложение 3ds max, а затем в него был внедрен язык MAXScript (в версии 2). Это означает, что многие операции (которых в версии 4 гораздо меньше) все еще не могут быть описаны в сценарии. Именно поэтому столь важна оперативная справка MAXScript. Когда меня спрашивают, может ли та или иная последовательность операщгй быть описана в сценарии, я зачастую обращаюсь к поиску ссютветствующей инсрормации в оперативной справке MAXScript по ключевым словам, чтобы убедиться в возможности написания сценария. Помощь, которую оказывает оперативная справка, трудно переоценить. В процессе создания сценария мне приходится обращаться к ней по 20 раз на день.
6.?Пишите сценарий сначала в символическом коде. Как упоминалось выше, удобство символического кода состоит в том, что он позволяет разработать алгоритм выполнения сценария, а затем закодировать его построчно. Выработайте в себе привычку писать сценарий сначала в символическом коде.
7.?Старайтесь обобщать создаваемый код, если он того заслуживает. В условиях производства зачастую приходится создавать специализированные программы, пригодные лишь в конкретной ситуации. Допустим, например, что у аниматора имеется 10 объектов, которые требуется переместить на поверхности особым образом. Безусловно, сценарий можно запрограммировать только на работу с этими 10 объектами. Такой сценарии со-
ПРЕДУПРЕЖДЕНИЕ
692 Часть VI. Анимация
здается быстрее, поскольку в данном случае не нужно формировать специальный интерфейс, а кроме того, можно заранее предусмотреть поведение объектов в данном сценарии. Но, с другой стороны, это означает, что данный сценарий может быть использован только один раз в конкретной ситуации. Если впоследствии появится аналогичная задача, большую часть кода такого сценария придется переписывать заново. Поэтому необходимо научиться правильно выбирать момент, когда требуется обобщение кода сценария и когда он может носить более конкретный характер.
Предыдущая Следующая