|
|
||
|
||
|
|
||
| Страница 1 из 31 |
VDragon Предполагается, что читатель разбирается в программировании и 3D студии макс. Если нет, то это его проблемы, так как это статья, а не справочное пособие, и описывать всё-всё я не собираюсь :) Подался я как-то в глобальную сеть Интернет, дабы нарыть инфу про 3Д студию Макс 5. Искал всё подряд - рисование, рендеринг и прочее. Наткнулся на интересную тему MAX Script, инфы почти ноль - всё про стекло, металл и прочую белиберду. А все, что было - сухие переводы стандартного хелпа по MAX Script. Хе, хе - вот, исходя из этого, я и решил написать откровения "чайника" о том, как с ним бороться. Вообще 3D Studio Max жутко "гибкая" штука, и, судя по всему, создатели уделяют большую часть внимания этой гибкости, а не удобствам пользователя. Нет, я ни в коей мере не хочу задеть чувства тех, кто уже давно моделирует на 3D Studio Max, просто я "чайник" и это мои ощущения :) Но, так или иначе, в гибкой 3D студии, есть гибкий скриптовый язык, MAX Script, где при помощи команд вы сможете создавать объекты, управлять ими и вообще делать всё, что может делать 3D студия. Так, для начала предупреждаю всех - я делаю это в первый раз, поэтому могу ошибаться :) Для полного ощущения крутости сделаем всему этому интерфейсик. Я пока нашел два способа изготовления интерфейса, первый: вручную, а второй способ - это при помощи приблуды визуального моделирования под названием "Visual MAX Script", которую можно найти в разделе "Утилиты" (молоток), нажав кнопку More, там в списке он у меня последний. Но перед тем как начинать создавать интерфейс, я расскажу Вам немного программировании на MAX Script. Правда, я сам мало что знаю про это, хе хе хе. Вообще, чтобы создать скрипт, на панели утилит есть кнопка MAX Script, который откроет вкладку с утилитами для создания скриптов. Кратко опишу что тут и зачем: Для прикола давайте создадим новый скрипт, и попробуем что-то сделать, а точнее, напишем такой код: for i = 1 to 10 do ( Теперь сохраните скрипт и запустите его: Ну как, всё получилось? Хе хе, вот и ваш первый скрипт, который рисует шарики с радиусом 20 по случайным координатам от 0 до 100, по всем осям. Многие скажут : "и в чём тут прикол, такое и мышкой можно быстро сделать:". Для таких любителей напишем наш код по-другому: for i = 1 to 300 do ( Ну как, слабо Вам сплести такую загогулину вручную?!! Если нет, то начинайте. А я пока вернусь к теме интерфейса - кажется, именно об этом я говорил выше :) Давайте подумаем - в последнем примере, чтобы получить разные загогулины нужно поменять пару значений, да и перерисовать всё нафиг. Конечно, можно поменять значения прямо в скрипте, но это нудно, а я говорил о красоте и понтах :) Ну дык вот, есть в MAX Script возможность создавать всякие кнопочки, окошечки и прочие заморочки. Делается это примерно так. rollout unnamedRollout "Ролаут :)" width:162 height:130 Запустите этот скрипт, и увидите что получится. Попробую коротко описать что тут и как. Button - кнопка. Каждая компонента имеет свои свойства и события. on btn1 pressed do - если кнопка нажата, то x=12 Если вы не разбираетесь в объектно-ориентированном программировании, то попытаюсь коротко объяснить. Свойства (Propertis) это координаты компонента, состояние, текст и прочие фишки управления компонентом, а события (Events) это то, что происходит - например, нажатие на кнопку, изменение текста и прочие действия, которые мы вытворяем с нашими компонентами, вплоть до наведения на них мышкой. Подробнее о компонентах можно узнать в разделе помощи 3D Studio Max, в разделе MAX Script Reference. Там надо смотреть в разделе Creating Max Tools/Scripted Utilities and Rollouts. Я это читал, нихрена толком не понял, так как хелп перенасыщен всем подряд, да и строить окошки вручную лень. На этом, думаю, пока закроем тему о ручном создании всяких там окошек и вернемся к Visual MAX Script, о котором я говорил ранее. По началу у нас пустой роллаут, на который нам нужно перетащить нужные нам компоненты. Компоненты расположены на панели компонентов. Там есть такие штучки. Пойду по порядку, картинки выдирать не буду, лень :) Стрелка - Позволяет изменять размер компонентов Подробнее описывать мне в лом, мы интерфейс делаем или кнопки изучаем?!! Все-таки злой я :) Ладно, давайте что-нибудь сделаем. Получилось? Молодца, теперь идём на закладку Event Handlers, выделяем нашу кнопку "Создать" и в списке появившихся событий выбираем Pressed, а в появившееся окошко вводим код события. for i = 1 to 300 do ( Узнали наш код, всё то же, но с маленькими изменениями. Формула расчёта пути по x, y, z содержит множитель spn2.value, spn3.value и spn4.value. Это значения, хранящиеся в наших Spinner'ах. У каждого элемента в наше форме есть название, оно дается программой автоматически, но вы свободно можете изменить его на другое. Для этого просто нужно изменить поле name в закладке Value, это там где мы вводили caption. У каждого компонента есть свойства, к которым мы можем обращаться по имени компонента через точку. Например, значение компонента Spinner хранится в поле Value, ну мы и говорим скрипту, умножай на spn2.value, и т.п. Ладно, нажимаем Ok. В теории наш RollOut готов. Сохраняем его на диске с названием test.vms, а затем сохраняем его как test.ms. Дважды сохраняемся потому, что Visual MAX Script не сможет открыть файл формата ms, и мы не сможем больше что-то изменить в форме. Теперь закрываем Visual MAX Script и открываем наш скрипт для доводки в 3D Studio Max. У нас получилось нечто вроде: rollout unnamedRollout "Untitled" width:160 height:128 Если мы сейчас запустим скрипт, то ничего не произойдёт, так как мы сделали только описание ролаута. Нужно добавить еще одну строчку, чтобы сказать максу, как использовать этот скрипт. createDialog unnamedRollout width:160 height:128 которая говорит максу, что нужно создать диалог, размером 160 на 128 с нашим ролаутом. Также нужно немного довести наши Spinner'ы, указав параметр Range [0,100,2.6] для spn2, spinner spn2 "Коф X" pos:[24,16] width:128 height:16 range:[0,100,2.6] где: Теперь сохраняем наш скрипт, и запускаем его. Уф, устал, ладно, на первый раз хватит :) Ах да, тут натыкал ещё одну штучку, для того чтобы создавать ролауты. Когда мы открываем новый скрипт, то в меню EDIT есть пункт Edit Rollout и New Rollout, воспользовавшись этим пунктом у нас открывается Visual MAX Script, а текст скрипта сохраняется прямо в текст скрипта. Забавная штука, даже работает: хе хе хе: http://v2studia.narod.ru |