How To - Introduction to the Tutorials
The "How To" topics present some simple programming tasks as extended MAXScript examples. All of them are based on actual real-world cases, include detailed explanations and tips and tricks from the scripting practice. In addition, most of the scripts are not longer than 30 lines so they are perfectly suited for beginners.
Objectives:
The main objective of these tutorials is to teach the MAXScript user some possible approaches for developing scripted solutions to practical problems - from the original idea through a concept expressed in a natural language (English) down to the actual MAXScript code and ideas for potential future enhancements.
Structure:
The "How To" tutorials provide
A list of related topics the user might want to read before trying the actual tutorial;
The complete uncommented code – the user can cut & paste it and use immediately;
The same code with detailed explanations;
Links to definitions of the used functions and methods;
Some info about the usage of the script in the practice;
Things to try – ideas for improvements that the user could try alone.
Topics:
How To ... Develop A Transform Lock Script
Developing a simple script for checking all Transformation locks.
How To ... Remove All Materials
Creating a very simple script removing all materials from the scene.
How To ... Quickly Rename Selected Objects
Developing a simple renaming utility to change the names of selected objects
How To ... Select Non-Quad Polygons
Example of accessing and selecting Polygons in an EditablePoly object.
How To ... Assign Materials Automatically
Shows how to use MAXScript callbacks to automate material assignment.
How To ... Move Objects to a Surface
Shows how to use the intersectRay function to find surface points on objects.
How To ... Output Object Data To File
Shows the basic of writing object data to an external text file.
How To ... Output Geometry Data To Text File - Part One
Shows the basic of writing mesh geometry data to an external text file.
How To ... Read Geometry Data From Text File - Part One
Shows the basic of reading object data from an external text file.
How To ... Output Geometry Data To Text File - Part Two
Enhances the mesh geometry output script with support of smoothing groups, material ids and edge visibility.
How To ... Read Geometry Data From Text File - Part Two
Enhances the input script developed in Part One to support the new data added by the preceding tutorial.
How To ... Create a Quick Preview
Implements a simple viewport preview and automatic RAMplayer loading
How To ... Access the Z-Depth channel
A small experiment creating objects based on the Z-Depth of the camera.
How To ... Create a MonoChrome RenderEffect
A simple example of a scripted RenderEffect plug-in.
How To ... Create Custom Mesh Object
Shows how to create a custom mesh object.
How To ... Create Scripted Geometry Plug-in
An example of a scripted geometry plug-in.
How To ... Create a Dalmatian TextureMap Plug-in
An example of a scripted texture map plug-in in the famous polka-dot dog look.
How To ... Access Windows System Data
Shows an approach to access system data that is not directly exposed to MAXScript.
How To ... Sort TrackView Alphabetically
Shows an approach to sort the objects in the TrackView.
How To ... Flatten a SplineShape
Example of modifying a slineShape by moving knots and bezier vectors.
How To ... Draw a Freehand Spline
Example of drawing a spline with the mouse in the ground plane.
How To ... Enhance the Morpher Modifier With Floating Controls
Example of dynamic UI creation, time and change callbacks usage to create a floater with controls linked interactively to a Morpher modifier.
How To ... Change Objects At Render Time
An example of changing object properties at render time using callback scripts.
How To ... Develop a Vertex Renderer
An example of a scripted vertex realtime renderer.
How To ... Script Particle Flow
How To ... Transfer ParticleFlow Particle Motion To Scene Objects
An example of moving scene objects using Particle Flow particles.
How To ... Affect Particle Flow Particles by Mass
An example of applying a Force to particles based on their mass.
How To ... Develop a Bitmap Painting Tool In Nine Easy Steps
How To ... Develop a Bitmap Painting Tool - Basic Utility
The first step of the tool creation - The basic tool with a single point brush without strokes support.
How To ... Develop a Bitmap Painting Tool - Strokes Support
The second iteration of the tool adds continuous stroke drawing.
How To ... Develop a Bitmap Painting Tool - Brush Size and Color
The third iteration of the tool adds control over the size and color of the brush.
How To ... Develop a Bitmap Painting Tool - Airbrush and Shapes
The fourth iteration of the tool adds circular brush shape support and an Airbrush option with variable strength.
How To ... Develop a Bitmap Painting Tool - Smooth Brushes
The fifth iteration of the tool adds a brush with smooth falloff
How To ... Develop a Bitmap Painting Tool - Load and Save
The sixth iteration of the tool adds bitmap file loading and saving. Finally, you can store your work of art to disk and continue on painting later in a new session...
How To ... Develop a Bitmap Painting Tool - Erase Changes
The seventh iteration of the tool adds an eraser option to the right mouse button and a Commit Changes menu option to permanently bake the changes to the image.
How To ... Develop a Bitmap Painting Tool - Unwrap UV Coordinates
The eight iteration of the tool adds UV texture coordinates unwrapping and realtime updates of the bitmap as diffusemap on a selected object.
How To ... Develop a Bitmap Painting Tool - 3D Painting
The ninth iteration of the tool adds 3D Painting on a selected object in the viewport.
How To ... Develop a Selected Objects Inspector using ListView ActiveX Control
How To ... Develop a Selected Objects Inspector using ListView ActiveX Control - Part One
This tutorial will demonstrate how to set up an ActiveX Control in a MAXScript rollout to display details about selected scene objects
How To ... Develop a Selected Objects Inspector using ListView ActiveX Control - Part Two
This second tutorial will demonstrate how to customize the ListView ActiveX Control defined in Part One and update the display automatically when the selection set changes
How To ... Develop a Scene Browser using TreeView ActiveX Control
How To ... Develop a Scene Browser using TreeView ActiveX Control - Part One
This tutorial will demonstrate how to set up an ActiveX Control in a MAXScript rollout to display the hierarchy of the 3ds Max scene nodes.
How To ... Develop a Scene Browser using TreeView ActiveX Control - Part Two
The second tutorial will demonstrate how to customize the TreeView ActiveX Control defined in Part One by adding icons, colors and checkboxes to display and control the hidden state of scene nodes.
How To ... Develop Tools Using DotNet
How To ... Copy The Last Rendered Image To The Windows Clipboard
This tutorial demonstrates how to use a DotNet class to put the last rendered image into the Windows Clipboard.
How To ... Call a MAXScript Function Periodically using DotNet
This tutorial demonstrates how to use a DotNet Timer object to call a MAXScript function at given intervals without the need for a rollout.
How To ... Generate Hash Checksums using DotNet
This tutorial demonstrates how to use a DotNet Timer object to call a MAXScript function at given intervals without the need for a rollout.
How To ... Print Using DotNet
This tutorial demonstrates how to use a DotNet form to display a file from disk and then print it as multiple pages to the printer.
How To ... Develop An XView Geometry Checker
How To ... Develop A Face AreaXViewChecker - Part 1
This tutorial demonstrates how to define and register MAXScript functions with the XView Checker interface introduced in 3ds Max 2010 to perform a Face Area test on geometry objects.
How To ... Develop A Face AreaXViewChecker - Part2
This tutorial expands on the previous example by adding multiple checker modes and custom text and display override functions.
How To ... Develop A Face AreaXViewChecker - Part3
This tutorial continues the development of the Face Area Geometry Checker by implementing sticky settings via an INI file.
How To ... Develop A Face AreaXViewChecker - Part4
This tutorial finishes the development of the Face Area Geometry Checker by implementing a MacroScript to place in the Viewport Menus.
How To ... Develop An SVG Polygon Renderer
How To ... Develop An SVG Polygon Renderer - Part 1
This tutorial demonstrates how to use the Vector_Map TextureMap introduced in 3ds Max 2014 to render polygons of scene geometry objects.
How To ... Develop An SVG Polygon Renderer - Part2
The second part of this tutorial expands on the previous example by adding depth sorting to avoid incorrectly overlapping polygons.
How To ... Develop An SVG Polygon Renderer - Part3
The third part of the tutorial implements material color and lighting support using Facets Shading with Blinn Specular Highlights.