В уроке рассматривается технологическая цепочка создания плагина 3ds Max в среде Microsoft Visual Studio с употреблением 3ds Max SDK и языка программирования C++. Также реализуется MAXScript-версия плагина. Предоставляемый материал – это лишь начальная точка на пути освоения техники разработки 3ds Max SDK-плагинов.
Урок подготовлен по заявкам пользователей Render.ru.
Плагин – это программный модуль, подключаемый к основной программе и либо реализующий часть функционала основной программы, либо расширяющий ее возможности.
Так, в 3ds Max к первой группе плагинов относятся стандартные плагины, хранящиеся в папке stdplugs и загружаемые при запуске приложения. Их список отображается в приведенном на рис. 1 диалоге Plug-in Manager (меню Customize – Plug-in Manager).
Рис. 1. Plug-in Manager
Эти плагины, их около 350, реализуют значительную часть функционала 3ds Max. Например, плагин prim.dlo обеспечивает создание стандартных примитивов, сплайнов и стандартных источников света.
Прочие, нестандартные плагины предпочтительнее размещать в других папках и загружать по мере необходимости.
3ds Max SDK (Solution Development Kit, инструментарий разработчика) имеется в профессиональной версии 3ds Max и содержит заголовочные и библиотечные файлы, обеспечивающие доступ к классам и другим данным 3ds Max. Кроме того, в поставке имеется помощник и большое число примеров.
Плагин 3ds Max может быть написан на языке MAXScript и на языке C++ с употреблением 3ds Max SDK.
В первом случае плагин создается в среде 3ds Max, а во втором – в среде Microsoft Visual Studio.
Во многих случаях MAXScript может обеспечить такой же функционал, как и SDK. Однако скорость SDK-плагинов выше.
SDK-плагин – это откомпилированный и собранный dll-файл C++ (DLL, Dynamic Linked Library, динамически подключаемая библиотека). Рекомендованное расширение файла зависит от назначения плагина. В стандартной поставке 3ds Max плагины, оперирующие материалами и их картами, имеют расширение DLT, а плагинам, создающим объекты, дается расширение DLO, плагины-модификаторы выделяются расширением DLM и так далее.
Поставка 3ds Max SDK включает помощник создания плагинов Plug-in Wizard. Он поддерживает (или планирует поддерживать) создание около 40 следующих видов плагинов (в скобках указывается стандартное расширение):
- Anti-Aliasing Filters – фильтры, сглаживающие изображение (DLK);
- Atmospheric – атмосферные эффекты (DLV);
- Cameras – камеры (DLO);
- Color Selector – выбор цвета (DLU);
- Construction Grid Objects – создание сеточных объектов (DLO);
- Controllers – контроллеры (управляющие элементы, DLC);
- File Export, File Import и File List – экспорт, импорт и список файлов (DLE, DLI);
- Global Utility Plug-Ins – глобальные утилиты (GUP);
- Helper Objects – помощники (DLO);
- IK Solvers – решатели инверсной кинематики (DLC);
- Image Filter / Compositor – фильтры (редакторы) образов (FLT);
- Image Loader / Saver – загрузка и сохранение образов (BMI);
- Image Viewer – просмотр образов (DLF);
- Lights – источники света (DLO);
- Manipulators – манипуляторы (DLO);
- Materials – материалы (DLT);
- Modifiers – модификаторы (DLM);
- NURBS Objects – неоднородные рациональные сплайны Безье (DLO);
- Particle Systems / Effects – системы частиц и эффекты на основе частиц (DLO);
- Patch Objects – патчи (кусочные объекты, DLO);
- Procedural Objects – процедурные объекты, например стандартные примитивы (DLO);
- Renderer – воспроизведение изображения (DLR);
- Rendering Effects – эффекты при воспроизведении изображения (DLV);
- Samplers – образцы (DLH);
- Shaders – шейдеры (определяют цветовые характеристики объекта, DLB);
- Shadow Generator – генераторы теней (DLO);
- Skin Deformer Gizmo – контейнеры модификаторов кожи (DLM);
- Sound Plug-ins – звуки (DLO);
- Space Warps – пространственные деформации (DLM);
- Textures 2D, Textures 3D – двумерные и трехмерные текстуры (DLT);
- Track View Utility – утилиты обозревателя дорожек (DLU);
- Utility – утилиты (DLU).
После уяснения задачи написание SDK-плагина, как правило, предполагает создание надлежащего интерфейса пользователя и реализацию намеченных процедур. Например, плагин gSphere.dlo обеспечивает приведенный на рис. 2 интерфейс и программно поддерживает соответствующую реакцию приложения на предусмотренные интерфейсом действия.
Рис. 2. Пользовательский интерфейс плагина gSphere.dlo
При разработке SDK-плагинов каждая версия 3ds Max предполагает использование соответствующей версии Microsoft Visual Studio, что отражено в следующей таблице:
| 2011 | Windows 7 Windows Vista Windows XP Pro SP2 | 2011, 2010 | Visual C++ 9.0 (Visual Studio 2008) Service Pack 1 с установленным от 28 июля 2009 security patch |
| 2010 | Windows Vista Windows XP Pro SP2 | 2010 | Visual C++ 9.0 (Visual Studio 2008) Service Pack 1 |
| 2009 | Windows Vista Windows XP Pro SP2 | 2009 | Visual C++ 8.0 (Visual Studio 2005) Service Pack 1 |
