Introduction to 3ds Max

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