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: [email protected] 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 Max’s UI, • Microsoft’s 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? - It’s 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 Autodesk’s 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
© Copyright 2026 Paperzz