MAXScript

MAXScript
MAXScript
Класс языка:

скриптовый, структурный, императивный, объектно-ориентированный

Тип исполнения:

компилируемый

Появился в:

1997

Автор(ы):

Джон Уэйнрайт (John Wainwright), Ларри Минтон (Larry Minton)

Релиз:

Version 2008

Типизация данных:

динамическая

Испытал влияние:

BASIC

MAXScript - встроенный скриптовый язык для пакета трёхмерного моделирования Autodesk 3ds Max, предназначенный для автоматизации рутинных задач, оптимизации использования существующего функционала, создания новых инструментов редактирования и пользовательского интерфейса. Через скриптовый API позволяет контролировать и модифицировать объекты трёхмерной сцены: геометрию, текстуры, анимацию и другое. Возможно создание различных плагинов и утилит для ускорения выполнения специфических задач. Инструменты Autodesk 3ds Max используют MAXScript во множестве функций, включая оригинальные утилиты и элементы интерфейса.

Содержание

Целевая аудитория и простота использования

Язык предназначен для широкого круга пользователей — начиная от художников-моделеров, заканчивая техническими директорами и программистами. Он предоставляет достаточно вольный синтаксис больше схожий с языком BASIC, чем с C++ или командной оболочкой UNIX (как в случае с Maya MEL script). Внутренняя структура имеет много общего с языком LISP и основывается на выражениях. Созданная с помощью MAXScript новая пользовательская функция легко интегрируется в 3ds Max и затем может быть использована как и любое другое встроенное по умолчанию средство. Язык расчитан на обычного пользователя и по замыслу создателей для его использования не нужно иметь большой опыт программирования на каком-либо из распространенных языков программирования.

Oсобенности синтаксиса

Комментарии

Комментарии выделяются символами "--" (двойное тире) в начале строки. Блоковые комментарии выделяются используя C-подобный синтаксис:

-- ваш обычный комментарий
/* ваш блоковый комментарий */

Регистронезависимость и строковые переменные

Язык не чувствителен к регистру символов. Единственное исключение лишь сравнение строковых переменных. Предоставлен также специальный тип переменных name, которые чувствительны к регистру и обычно используются как перечисляемый тип для передачи в функции вместо строк. Для декларирования подобной переменной используется символ #. Также присутствует встроенная функция matchPattern, которая позволяет сравнивать строки с учётом и без учёта регистра:

 "HELLO" == "hello"
  -->false
  "HELLO" as name == "hello" as name --конвертирует в тип name
  -->true
  #HELLO == #hello  --# декларирует переменную типа name
  -->true
  matchPattern "HELLO" pattern:"hello"
  -->true
  matchPattern "HELLO" pattern:"hello" ignorecase:false
  -->false

Инструкции

Инструкции не нужно заканчивать точкой с запятой (;). Это необходимо делать лишь в случае, когда они находятся на одной строке:

      a = 10
      print a
      --запись аналогична следующей:
      a = 10;
      print a;
      --которая аналогична идущей ниже:
      a = 10; print a;

Декларирование переменных

Переменные не требуют явного декларирования типа или присваивания значения. Неинициализированные переменные всегда возвращают специальное значение undefined, которое эквивалентно NULL. Тип переменной зависит от значения, которое она хранит, и может меняться динамически:

      a = 10 -- тип переменной а - целое число
      a = "b" -- тип переменной а стал строкой

Организация кода

Круглые скобки используются чтобы обозначить блоки кода и пространства имён.

Массивы

Массивы обозначаются с использованием синтаксиса #() и не имеют строго типа членов — один и тот же массив может содержать элементы любого типа, включая другие массивы. Индексация массивов начинается с единицы (1).

Битовые массивы

Фигурные скобки используются только как часть декларирования битового массива (bitArray) следующим образом #{}. Битовые массивы — сжатые списки, которые содержат только флаги (ложь или истина) и используются для хранения состояния выделенных элементов, такие как точки вершин или треугольники трёхмерного объекта.

Доступ по индексу

Квадратные скобки используются для индексированного или именного доступа к частям объектов или элементов массивов:

       aBox = box() -- создаём куб
       --> $Box:Box01 @ [0.000000,0.000000,0.000000]
       aBox[3] -- получаем третью анимационную дорожку
       --> SubAnim:Transform
       aBox[#Transform] --получаем эту же анимационную дорожку используя доступ по имени
       --> SubAnim:Transform
       aBox[3][1] -- получаем первый элемент из дорожки трансформации
       --> SubAnim:Position
       aBox[3][1][2] --получаем второй элемент из дорожки позиции
       --> SubAnim:Y_Position
       someArray = #(1,2,5,6,"Hello") -- декларируем массив
       --> #(1,2,5,6,"Hello") 
       someArray[4] --получаем 4-й элемент
       --> 6
       someArray[5] --получаем 5-й элемент
       --> "Hello"
       someArray[6] --получаем 6-й элемент - он не существует
       --> undefined

Доступ к объектам сцены

Ноды сцены (объекты сцены) могут быть доступны используя преффикс $ в начале имени. Для примера, $Box01 вернёт объект с именем Box01. Этот же синтаксис может быть использован для доступа к нескольким объектам со схожими именами используя *. Для примера, $Box* вернёт список всех объектов имена которых начинаются с Box, такие как "Box01", "Box02", "Boxer" и так далее.

Доступ к свойствам объектов

Свойства доступны с использованием точки в конце переменной, по аналогии с другими известными языками (Объект.ИмяСвойства), или через вызовы GetProperty/SetProperty функций. Для получения списка доступных свойств надо использовать метод showProperties (или более краткая запись show). Скажем, для получения свойств объекта Box01 нужно сделать следующее:

      showProperties $Box01
      --или более короткая запись:
      show $Box01
      -- чтобы получить список всех свойств в качестве имён:
      theProperties = getPropNames $Box01

Внешние ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "MAXScript" в других словарях:

  • Maxscript — command processor is an interpreter that implements a subset of the xBase programming language especially conceived to be used inside web pages to provide server side scripting capabilities. MaxScript is not to be confused with MAXScript, the… …   Wikipedia

  • Dbfree — is a free software package for Microsoft Windows (x32/x64) that includes a web server and an interpreter (Maxscript) intended for developing web applications based on the xBase language dialect and conventions. Web applications built with DBFree… …   Wikipedia

  • 3ds Max — Infobox Software name = Autodesk 3ds Max caption = Version 2008 interface with a dark theme developer = Autodesk Inc. latest release version = 2009 (11.0) latest release date = April 2008 operating system = Windows (2000, XP or Vista) genre = 3D… …   Wikipedia

  • Autodesk 3ds Max — Тип трёхмерная графика Разработчик Autodesk …   Википедия

  • Autodesk 3ds Max — Version 2010 interface with a rendered Utah teapot D …   Wikipedia

  • Kaleida Labs — was one of several joint ventures between Apple Computer and IBM in a period of alliance between the two companies. The two computer giants sought to counter the influence of Microsoft and the growing dominance of its Windows operating system.… …   Wikipedia

  • John Wainwright (computer scientist) — John Wainwright is a computer scientist, born in Australia, who has pioneered the development of pure object based computer languages. He is the principal architect of two computer languages, ScriptX (1992 1996) and MaxScript (1996). In 1992,… …   Wikipedia

  • List of programming languages by category — Programming language lists Alphabetical Categorical Chronological Generational This is a list of programming languages grouped by category. Some languages are listed in multiple categories. Contents …   Wikipedia

  • List of programming languages — Programming language lists Alphabetical Categorical Chronological Generational The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in… …   Wikipedia

  • Technical director — The Technical Director (TD) or Technical Producer (TP) is usually the most senior technical person within a Software Company, Theatrical company, or Film/Television Studio or agency. This person usually possesses the highest level of competence… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»