1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

FAQ форума MaxScript

Тема в разделе "MAXScript", создана пользователем Savin Denis, 10 фев 2008.

Модераторы: Savin Denis
  1. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    FAQ форума MaxScript

    В этой теме буду собирать ответы на часто задаваемые вопросы.


    (Q) Как задать вопрос по Maxscript ?
    (A) Для начала обязательно найдите и прочтите все по данному вопросу в хелпе !
    Человека, читавшего хелп сразу видно, и если после этого вопрос не решился задайте его на форуме:
    Если в ответ вам указали на главу в хелпе, не обижайтесь значит ответ там, и освещен достаточно для понимания, прочитайте раздел.
    Если в ответ вам указали на большой раздел в хелпе, значит вопрос был слишком расплывчатым либо затрагивает большую тему.
    Ищите в разделе то что вам больше подходит или уточните вопрос.
    Задавайте конкретные вопросы, но задачу описывайте полностью, возможно она решается другим путем.
    Приведите свой код, пусть и не рабочий.
    Если это ваш код выделите только ту часть что относиться к вопросу.
    Если код чужой, обратитесь прежде всего к автору, если это не возможно приводите ссылку на ресурс откуда его взяли.
    Не спрашивайте как работать с чужим скриптом, обратитесь к автору или пользователям скрипта.
    Если вы все сделали по инструкции но так и не добились результата, вам стоит подумать о заказе разработки данного скрипта.

    (Q) У меня макс выдает Ошибку ! Помогите разобраться ...
    (A) Инструкция как правильно задать вопрос по ошибке:
    1. Указываешь версию софта: операционнка, 3dsmax, используемые модули.
    2. КОПИРУЕШЬ в тему код или даешь ссылку на файл если большой.
    3. Делаешь скриншот сразу после ошибки и приводишь ссылку на него, где видно:
    ....a) Заголовок окна 3dsmax c версией.
    ....b) Диалог с названием ошибки.
    ....c) Открытый редактор с подсвеченной строкой в которой остановился и ее номером.
    4. Дальше закрываешь диалог и открываешь Max Listener (кнопка F11) и копируешь полный текст ошибки.

    Ошибки выдаваемые 3dsmax на системных скриптах не рассматриваются, если 3dsmax установлен не c оригинального полного диска c английской (не локализованной) версией !


    (Q) Мне нужен скрипт, .... ?
    (A) Прежде чем просить помощи в написании скрипта сначала делайте поиск на Scriptspot, есть большая вероятность что кто-то уже решил эту проблему.
    Укажите версию 3dsmax c которой работаете.
    Четко опишите задачу: входные параметры, предполагаемый алгоритм работы, результат.
    Помните, что никто не обязан писать за вас скрипт, но с другой стороны это лучший способ изучить язык для начинающих, не новичков можно заинтересовать интересной идеей.
    В сложных случаях можно договориться о работе, но все финансы обсуждать через личку.
    Уважайте чужое время и силы.


    (Q) C чего начать изучение Maxscript ?
    (A) Для начала:
    1) Открываем Max Listener [F11].
    2) И включаем MacroRecorder. Теперь создавая или изменяя объекты мы сможем видеть в верхнем окне Max Listener команды необходимые для повторения этих действий средствами Maxscript.
    3) Далее учимся работать со справкой по Maxscript: Находясь в Max Listener нажимаем [F1].
    4) И первым делом находим и изучаем раздел "Learning MAXScript"
    5) Активно пользуемся поиском. Для тех кто еще не освоил, читаем раздел "Using the HTML Help Viewer"
    6) Разбираем как работают примеры. В хелпе практически все примеры разобраны по шагам. Кому не хватаемт идем на Scriptspot
    7) В качестве средств отладки используем вывод в Max Listener операторами print и format "value = %\n" value, а также читаем раздел "The MAXScript Debugger".
    8) Если возникла ситуация с которой самостоятельно не удалось справиться пишем на форум но обязательно подробно описываем проблему и что в результате хотели получить. Обязательно приводим версию и разрядность 3dsmax, полный листинг ошибки из Max Listener и код вашего скрипта.


    (Q) Если вы уже имели дело с низкоуровневыми языками такими как C++ ...
    1) Специально для тех кто работал с C++: i++ в maxscript i += 1; блок кода{ _code_ } в maxscript ( _code_ ).
    2) Если оператор в строке один то не обязательно ставить разделитель в конце - ";"
    3) При инициализации переменных не нужно явно указывать их тип.
    4) При инициализации распространеных имен переменных внутри функций, не лишним будет явно указать локальную видимость переменной: local name = "". Это позволит избежать редких но трудно уловимых ошибок связанных с видимостью переменных.
    5) Функция может не иметь оператора Return, в этом случае она возвращает результат последнего оператора.
    6) Настоятельно советую изучить разделы: For Loop, Skipping Loop Iterations, Loop Exit. Иначе ваши конструкции выглядят очень несуразно. Хотя работать и будут.
    7) В обязательном порядке прочитать разделы: Manual Garbage Collection, Memory Allocation and Garbage Collection !
    8) Не лишним будет заглянуть и в радел: "How To Make It Faster?"
    9) Для любителей ООП, смотрим раздел Structure Definition и ссылки в низу.


    (Q) А где можно достать хороший учебник на русском по max скрипту ?
    (A) Пока, обучающей литературы по языку MaxScript на русском очень мало.
    Лучший учебник всегда был и будет родной хелп по MaxScript, + примеры на любой вкус c сайта Scriptspot
    Хелп содержит множество примеров, с подробными пояснениями, что какая команда делает.
    Не стоит по началу забывать и про MacroRecorder.
    Полного перевода хелпа нет и не будет. Не имеет смысла переводить - слишком часто меняется с выходом новой версии 3dsMax.


    Единственное что пока видел на русском из книг:
    Книга "Основы языка 3ds Max 8 MAXScript" (3ds Max 8 MAXScript Essentials)
    [​IMG]

    Также стоит заглянуть в раздел уроков, вот некоторые ссылки:
    Изучаем скрипты в Max 3
    Не так страшен черт - данном уроке на примере анимации зубчатой передачи рассматривается применение скрипт контроллеров.
    MAXScript - упрости себе жизнь, или откровения "чайника"
    Как написать Plug-in для 3D Studio Max
    Урок из книги "Основы 3ds Max 8 MAXScript": Преобразования и анимация
    MAX SCRIPT. Пишем экспортер
    Пишем макросы
    Пишем макросы. Часть II
    ....

    Тема где будут выкладываться новые линки на найденные ресурсы по MaxScirpt`у:

    ПОЛЕЗНЫЕ СКРИПТЫ <-- Смотри здесь полный список.

    "Единственный способ изучать новый язык программирования - писать на нем программы."
    - Брайэн Керниган



    (Q)Как запустить пример из MaxScript Reference ?
    (A) 1) Открываем Max Listener [F11].
    2) Открываем новое окно из Max Listener [Cntl - N]
    3) Теперь копируем из хелпа текст примера в новое окно [Cntl -C]/[Cntl -V] (или перетаскиваем в него)
    4) И запускаем его из этого окна на исполнение следующей комбинацией клавиш [Cntl -E]
    (так же можно создать в любом редакторе текстовой файл с расширением ".ms' и скопировав туда текст примера, и запустить через Main Menu\MAXScript\Run Script)


    (Q)Где мне найти скрипт после исполнения ?
    (A)Существует ряд скриптов которые сразу после исполнения не производят никаких действий, а встраиваются в интерфейс 3dsmax расширяя его возможности.
    Как же найти куда встроился такой скрипт ?
    Прежде всего нужно внимательно прочитать все справочные материалы которые могли идти в комплекте со скриптом, поискать справку на сайте автора, заглянуть в сам файл скрипта, часто справка по установке скрипта пишется в начале файла, в комментарии.
    Если никаких инструкций найти не удалось, попробуем разобраться сами.
    Итак существуют следующие типы интерфейсных скриптов:

    1) MacroScript (Макро-Скрипт)
    Пожалуй самый распространенный тип интерфейсного скрипта с котором вам придется встречаться.
    Обычно код макро-скрипта находиться в файле с расширением "*.mcr". но не обязательно по этому ищем в коде такой блок:
    Код:
    macroScript AutoMat category:"HowTo"
    (
     ...
    )
    
    Нас интересует два параметра по которым мы найдем и настроим исполнение скрипта в пользовательском интерфейсе (UI):
    (a) Это уникальное имя скрипта в данном примере это "AutoMat",
    если есть параметр toolTip: то он будет использоваться в диалоге Custimize вместо уникального имени скрипта.
    Пример - (macroScript AutoMat category:"HowTo" toolTip:"Automatick Materials")
    (b) А также имя категории после параметра - category:"..."

    Зная название категории и уникальное имя макро-скрипта мы сможем найти его через меню Customize... и настроить для него кнопку в Toolbars или "Шорт-кат".
    1. Откройте Main Menu\Customize\Customize User Interface ...
    2. Выбери закладку Toolbars
    3. Выбери в выпадающем списке Сategory: найденную в коде категорию. (первый список должен быть - Group: Main UI !)
    4. Создай новую панель инструментов нажав на кнопку New и введя для нее имя
    5. Найдем в списке Action Имя нашего макро и перетащим его (методом Drag and Drop) на новую панель (ToolBar)
    6. Нажав на кнопку мы запустим скрипт

    2) Utility
    Ищем в коде блок
    Код:
    utility spread "Spread objects" 
    (
     ...
    )
    
    Если такой блок есть, то ищем наш скрипт в Command Pannel\Utilities\MaxScript\Utilities (смотрим в выпадающем меню)

    3) Plugins - Плугин написанный на скрипте, как и скомпилированный на C++, может встраиваться в разные части интерфейса в зависимости от типа:
    Пример блока плугина:
    Код:
    plugin helper getsetHandlerTest 
    name:"DummyEx" 
    classID:#(1453456,5432110) 
    category:"Scripted Primitives" 
    extends:dummy
    ( 
    ...
    )
    
    Где параметры по которым мы сможем его найти:
    plugin <superclass> <varname> - Superclass определяет тип плугина и место поиска
    name:<string> - Имя которое будет отраженно на кнопке в панели Create, если например этот плугин создает объект.
    category:<string> - Имя категории которое нужно выбрать в выпадающем списке в панели Create

    Возможные типы Superclass, а также и где можно найти новый функционал:

    Geometry - Объект в панели Command Pannel\Create\Geometry\(категория указанная в параметре category: )
    SimpleObject - Объект в панели Command Pannel\Create\Geometry\(Сategory:)
    Shape - Шейп в панели Command Pannel\Create\Shapes\(Сategory:)
    Light - Источник света в панели Command Pannel\Create\Lights\(Сategory:)
    Camera - Камера в панели Command Pannel\Create\Cameras\(Сategory:)
    Helper - Новый вспомогательный объект в панели Command Pannel\Create\Helpers\(Сategory:)
    Modifier - Модификатор в панели Command Pannel\Modify\ (в выпадающем списке - name: )
    SimpleMod - Модификатор в панели Command Pannel\Modify\ (в выпадающем списке - name: )
    TrackViewUtility - Утилита в окне треков Main Menu\Graph Editors\New Track View\Utilities\Track View Utilities ...
    Material - В навигаторе материалов Main Menu\Rendering\Material/Map Browser\ Browser From: New
    TextureMap - В навигаторе материалов Main Menu\Rendering\Material/Map Browser\ Browser From: New
    RenderEffect - В пост эффектах рендера Main Menu\Rendering\Effects...\Add
    Atmospheric - В атмосферных эффектах Main Menu\Rendering\Environment...\Atmosphe\Add

     
Модераторы: Savin Denis

Поделиться этой страницей