Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to 3ds Max Customization and Plug-in Development

Similar presentations


Presentation on theme: "Introduction to 3ds Max Customization and Plug-in Development"— Presentation transcript:

1

2 Introduction to 3ds Max Customization and Plug-in Development
Kevin Vandecar Autodesk Developer Network M&E Developer Technical Services

3 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.

4 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

5 3ds Max - Intro to Customization
Show of hands Currently using 3ds Max (any version)? 3ds Max 2011? Autodesk Developer Network (ADN) members?

6 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

7 Customize User Interface
Keyboard Toolbars Quad menus Regular menus Colors Ribbon

8 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 glutton for punishment to edit , but for simple tweaks could might be easier…

9 Customize User Interface
Demonstration Customize UI… Keyboard accelerator keys Toolbars… Quick Access Toolbar Quads Menus Colors Customize Ribbon… - Tip: Make sure to restart Max when wanting to override theme colors and settings. Tip: The app frame can only be change to light or dark and there is not much else you can change about it,; especially when maximized (while not maximized the windows settings can affect parts of it). Tip: Remember to SAVE the UI schemes otherwise you might loose the work you do while customizing. Once you save, then you can also redistribute them to other team members. Tip: You can save the keyboard shortcut map to a text file that makes it easier to see what the default/current settings are and where you might be able to add new ones where ones are missing. Tip: If you somehow cause a problem in the file set, you can delete all, and Max will recreate them. A simple syntax error in the file will cause Max to crash or not start properly. Tip: There is a command-line option to start with specific UI configurations in place.

10 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)

11 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

12 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

13 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

14 MAXScript How to use MAXScript Text based storage
MAXScript is built-in Listener and Editor windows Visual MAXScript Plug-in Text based storage Auto-Loading and Running capabilities

15 MAXScript Demonstration MAXJack (included with 3ds Max distribution)
Create/Add Materials/Add Animation/Add Modifier/Render Additional abilities File I/O, Callbacks (including persistent/embedded)

16 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 Tip: Subscription customers note there is a separate file that contains the samples and extra files. Among other things, there are a bunch of MAXScripts Autodesk_3ds_Max_2011_&_Autodesk_3ds_Max_Design_2011_English_Win_Samples_Files.exe

17 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++)

18 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.

19 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.

20 MAX .NET API - Functionality
ManagedServices MaxCustomControls WPFCustomControls CSharpUtilities ExplorerFramework ManagedServices: The (limited) amount of native SDK exposure that we directly expose to .NET is through this assembly. We expose some basic application-level services around UI, system paths, colors, etc. We do not offer much exposure with regards to scene entities. MaxCustomControls: This assembly exposes some useful base classes from which user controls and windows can be derived to inherit some basic Max-like functionality. We also expose the main Action Item interfaces in this DLL. This DLL also contains some core Scene Explorer-related UI classes. The UI classes in this DLL are Windows Forms-based. WPFCustomControls: Not currently officially part of the SDK, it can still be referenced directly in the installed version of the product and contains similar functionality to MaxCustomControls, but with a heavy WPF emphasis. CSharpUtilities: A collection of useful classes and patterns that are actually Max-agnostic. You could load this DLL into another application without needing to load Max itself, since it is an independent entity. ExplorerFramework: Exposes a system for designing arbitrary explorers that behave like the Scene Explorer does in Max, though the same pattern could be applied to any arbitrary hierarchy of nodes

21 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

22 MAX .NET API Demonstration C# example for UI elements C++/CLI example
TIP: When using the Vs2010 project format, you must change the framework from default to the v3.5 (or lower). To do this, edit the vcxproj file in a text editor, find the <PropertyGroup Label="Globals"> node, and either change or insert the <TargetFrameworkVersion. Like this to use framework 3.5: <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>. Max is not compatible with framework v4.0.

23 MAX .NET API Resources: MAX SDK documentation ADN DevTech
Tip: Subscription customers note there is a separate file that contains the samples and extra files. Among other things, there are a bunch of MAXScripts Autodesk_3ds_Max_2011_&_Autodesk_3ds_Max_Design_2011_English_Win_Samples_Files.exe

24 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)

25 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

26 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)

27 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 Maintenance for example… if hiring a contractor to write the plugin, you need to consider support when newer versions of Max come along and you need to recompile and possibly port the plugin.

28 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 Rendering Effects Render Elements Sampler Shader Shape Objects Snaps Sound Spline Objects Spring Systems Texture Map Track View Utility Utility World Space Modifier

29 MAX SDK How to use MAX SDK?
Install from 3ds Max media. Both win32 and x64 supported Visual C (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 Auto-loading and Delay loading supported Commercial/Resale should develop installation routines Internal use could be deployed manually if desired

30 3ds Max Plug-in Architecture

31 MAX SDK Demonstrations Plug-ins that ship with the SDK Object plug-in
Modifier plug-in TIP: Always rename the “shipping” version of the plugin that you are monkeying with. This way if you screw it up in code, you can always get your base binary back.

32 MAX SDK Resources: Maxsdk.chm included with MAX SDK
Web resources (see end) ADN DevTech ADN is probably even better value here. This is where we provide the bulk of support. Renderers, Shaders, Materials, etc. we provide support for!

33 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

34 Web Resources for 3ds Max Customization
AREA gamedev.net customization and programming forums

35 Additional Resources for 3ds Max Customization
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

36 ADN M&E DevTech Global Support Team
Naiqi Weng - Toronto, Canada ADN M&E DevTech Global Support Team 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

37 Q + A


Download ppt "Introduction to 3ds Max Customization and Plug-in Development"

Similar presentations


Ads by Google