370 likes | 460 Views
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 a ll customization related
E N D
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 Entertainmentgroupwithin Autodesk Developer Networksupporting 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 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 • Renderer • Rendering Effects • Render Elements • Sampler • Shader • Shape Objects • Snaps • Sound • Spline Objects • Spring Systems • Texture Map • Track View Utility • Utility • World Space Modifier • 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
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
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
ADN M&E DevTechGlobal Support Team 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