You are on page 1of 37

Introduction to 3ds Max Customization and Plug-in Development

Kevin Vandecar Autodesk Developer Network M&E Developer Technical Services

bio: Kevin Vandecar


@ Autodesk for about 18 years
all customization related
Experience with AutoCAD, AutoCAD Architecture, 3d Studio (DOS), Autodesk Revit Last five years as Software Engineer on AutoCAD Architecture API and Revit API now focusing on 3ds Max customization

currently working for the Media and Entertainment group within Autodesk Developer Network supporting 3ds Max customization and programming. email: kevin.vandecar@autodesk.com

3ds Max - Intro to Customization


Presentation Goal
Quickly show what aspects that can be customized Discuss What, Why, and How for each type of customization Covering these:
General User Interface Customizations MAXScript .NET API C++ MAX SDK

3ds Max - Intro to Customization


Show of hands
Currently using 3ds Max (any version)? 3ds Max 2011? Autodesk Developer Network (ADN) members?

Customize User Interface


Why customize the User Interface?
Improve efficiency of your Artists and other Production people Make your most common tasks more accessible Saving Time and Money $$$$ in your production environment
Investment of time to develop customization is relatively low Cost savings can be high

Having your favorites easily accessible/consistent

Customize User Interface


Keyboard Toolbars Quad menus Regular menus Colors

Ribbon

Customize User Interface


All can be Stored via a UI file
Save/Load Text based sub-files for each type

Can also be customized from:


MAXScript .NET API C++ Max SDK

Customize User Interface


Demonstration

Customize User Interface


Resources:
3ds Max help: Customizing the User Interface Book: 3ds Max (2011) Bible: Chapter 4, Customizing the Max Interface and Setting Preferences Book: 3ds Max MAXScript Essentials (Chapters 2 and 3, but various UI aspects covered through-out)

MAXScript
What is MAXScript?
The 3ds Max scripting language Simpler and easier to use than C++ Interpreted scripting language
Use to drive 3ds Max Not to be confused with plug-in development

Proprietary/Specific to 3ds Max

MAXScript
Why use MAXScript?
Customize the user interface Automate repetitive tasks Provide algorithmic traits to geometry/animation Save Time and Money $$$$
Consider Investment of time to develop customization
Programming now involved so need more skill

Cost savings can be high

MAXScript - Functionality
Almost anything 3ds Max does, MAXScript can automate! Including, but not limited to:
User interface Geometry Cameras Lights Helpers Particles Modifiers Animation Controllers Trackview Renderer Materials Batch process files Batch process objects Import/Export

MAXScript
How to use MAXScript
MAXScript is built-in Listener and Editor windows Visual MAXScript Plug-in

Text based storage Auto-Loading and Running capabilities

MAXScript
Demonstration

MAXScript
Resources:
Maxscript.chm: included with 3ds Max Book: 3ds Max (2011) Bible: Chapter 49, Automating with MAXScript Book: 3ds Max MAXScript Essentials Web resources (see end) ADN DevTech Sample files

MAX .NET API


What is MAX .NET API?
A managed extension of the C++ MAX SDK libraries
Not fully feature rich

Can use managed languages like: C#, VB.NET, C++/CLI (managed C++)

MAX .NET API


Why use MAX .NET API?
Sophisticated managed UI capabilities
access to Maxs UI, Microsofts WPF/XAML and associated design tools

Interfacing with other .NET API components At the moment, it has the least amount of exposure into Max internals.

MAX .NET API


What is MAX .NET API? - Its a bit complicated
Initially introduced a .NET API component in 3ds Max 2008
This has grown some over the last few releases to be wrappers for the C++ functionality This is the only officially supported aspect

MAX Sharp is a prototype work in progress that can be used by ADN members only at this point.
If interested in this contact me.

MAX .NET API - Functionality


ManagedServices MaxCustomControls WPFCustomControls CSharpUtilities ExplorerFramework

MAX .NET API


How to use MAX .NET API
Install MAX SDK Choose a managed language and IDE
Visual C# Visual Basic .NET Visual C++/CLI

Reference assemblies

MAX .NET API


Demonstration

MAX .NET API


Resources:
MAX SDK documentation ADN DevTech

MAX SDK
What is MAX SDK?
Used for plug-in development Object Oriented, Set of C++ libraries (and headers) Requires knowledge of C++ (but many, many resources available)

MAX SDK
Why use MAX SDK?
Functionality for nearly everything
Flexible Modify existing behaviors Provide new functionality

Saving Time and Money $$$$ in your production environment


Consider Investment of time to develop customization
Serious Programming now involved so need more skill

Cost savings can again be high

MAX SDK
Why use MAX SDK?
Commercial Plug-ins for resale
Pure compiled language and associated binaries Time to develop versus selling in volume makes good business sense Seriously consider joining Autodesks partner programs (ADN technical and marketing)

MAX SDK
Why use MAX SDK?
Internal use for task automation, proprietary internal features, etc.
Time to develop versus functionality needed:
Would it be easier/faster to develop with CUI, .NET API, or MAXScript? Already know C++? Huge advantage if so, but still time consuming. Consider maintenance over time

Consider joining ADN for technical help

MAX SDK - Functionality


The most robust and flexible access to 3ds Max! The following is a list of the most important plug-in types:
3D Texture Map Animation Controllers Atmospheric Bitmap Texture Camera Object Color Selection Compound Objects Crowd Behavior File Export File Import Geometric Objects Global Utility Hardware Shaders Image Filters Image Import/Export Image Viewers IK Solver Helper Objects Light Objects Linear Shape Object Manipulator Objects Material Plug-in MAXScript Extensions Modifier Multi-pass Camera Effects Particle Objects Patch Objects Radiosity Effect Renderer Sound Rendering Effects Spline Objects Render Elements Spring Systems Sampler Texture Map Shader Track View Utility Shape Objects Utility Snaps World Space Modifier

MAX SDK
How to use MAX SDK?
Install from 3ds Max media. Both win32 and x64 supported Visual C++ 9.0 (Visual Studio 2008)
Service Pack 1 with the July 28, 2009 security patch installed. Either VS2008 or VS2010 IDEs will work (but for VS2010 must use VC90 toolset)

Many samples provided


Including many built-in features

Auto-loading and Delay loading supported Debug build provided with symbols to help your development efforts

3ds Max Plug-in Architecture

MAX SDK
Demonstrations
Plug-ins that ship with the SDK
Object plug-in Modifier plug-in

MAX SDK
Resources:
Maxsdk.chm included with MAX SDK Web resources (see end) ADN DevTech

3ds Max - Intro to Customization - Summary


UI Customization
Easy and low investment of time/money

MAXScript
Easy to get started and low investment of time/money

.NET API
Useful for UI and/or consumption of other .NET Framework functionality

MAX SDK
Requires serious programming skills, but the most powerful and flexible

Web Resources for 3ds Max Customization


AREA http://area.autodesk.com/
http://area.autodesk.com/forum/autodesk-3ds-max http://area.autodesk.com/blogs/chris

gamedev.net
customization and programming forums

Additional Resources for 3ds Max Customization


www.autodesk.com/develop3dsmax Autodesk Developer Network Sparks program
Annual subscription
Get access to almost all the software for development purposes

Technical and Marketing support


Direct technical support vie DevHelp online Trainings and Mentoring

www.autodesk.com/joinadn

Naiqi Weng - Toronto, Canada

Kristine Middlemiss - Toronto, Canada Kevin Vandecar Manchester, NH US Cyrille Fauvel Brest, France Manager ADN M&E DevTech Akira Kudo - Tokyo, Japan Santosh Kumar Bangalore, India

ADN M&E DevTech Global Support Team

Q+A

You might also like