MaxScripts

The scripts and programs on this page are indicative of the types of tools I have written to increase artist efficiency. Due to copyright restrictions I am unable to distribute the tools I have created while working at Mythic Entertainment.

MaxJack

  MaxJack was created to answer a simple question, "Can MaxScript be used to create a fully functioning game?". While other game-like demos had been done in MaxScript there was, to my knowledge, no complete game written in the language.

MaxJack plays a four-deck shoe game of BlackJack using the most common Vegas rules. The game features texture mapped 3D geometry and animations. All of the game logic is written in MaxScript.

Download MaxJack

 

 

NormalMapperUI

  NormalMapperUI provides a graphical front end to ATI's normal map creation tool, NormalMapper. The interface lets the user pick the input data they would like to use, the output format, and set all available creation options. The program then passes the information off to NormalMapper for the creation of the image.

As of version 1.20 NormalMapperUI is also available as a standalone VB.net application. The UI and functionality is identical to the MaxScript version. The stand alone version is useful for artists that are using modeling packages other than 3ds max. Before the VB.net version will install the Microsoft .Net Framework needs to be installed on the target machine.

ATI's NormalMapper utility can be downloaded from Tools section on the ATI developer site - http://www.ati.com/developer/tools.html. NormalMapperUI is hosted there, also.

Download NormalMapperUI
MaxScript version (1.22)
VB.Net version (1.21)

 

 

VersionControl

    The VersionControl package integrates 3ds max (R4 or higher) with the Perforce version control system from Perforce. It provides check in, check out, add, revert, view, and submit commands to the Perforce system from directly within 3ds max's native file requestors. Keeping max scenes properly version controlled is automatic, the user just has to use the standard 3ds max file open and save requestors. Everything else happens in the background, without any user intervention.

The core functions that integrate the VersionControl package with Perforce are kept in a separate file from the code for the UI. This encapsulation provides a way for the functions to be recoded to integrate with other version control systems without requiring an entire rewrite of the scripts.

Perforce is free to use for non-commercial products. That makes it a great tool for game mod teams to use for versioning their code and assets.

Download VersionControl

 

 

LSSpiroGraph

  LSSpirograph was written as a tool to create interesting paths for particle emitters to follow. It was designed as an aid to special fx creation for Soul Forge. The script takes input, either from a drop down list of predetermined shapes, or from the sliders on the UI, and then creates two dimensional spline shapes, much like real SpiroGraphs do. Additionally, an arbitrary number of null points can be path constrained to the resulting shape and animated over time. The null points are recognized as particle emitters by our 3D engine, enabling the artists to make very complex spell effects.

Download LSSpiroGraph

 

 

LSGardener

  The outdoor areas in Driving Force required extremely large numbers of trees to be added to the terrain. Hand placing hundreds of external references in 3ds max wasn't considered viable. LSGardener was created, based off of Blur Studios' simple scatter script with Neil Blevin's blessing, to facilitate the random scattering, scaling, rotation, and planting of the tree objects. The UI allows the user to input the maximum number of objects they would like scattered into an area, the range for the random scaling (from 1% to 300% normal size), whether the objects should be scaled uniformly or not, and how much, if any, adjacent objects should intrude upon one another (so trees could appear to be growing close together). The last version of the program added an option for building scattering (rotations are locked to 90deg increments and there is no intrustion allowed) and exportation of an XML file with the names of the scattered external references and their XYZ locations. This XML file was used by Driving Force to populate the world segments at run time.

Download LSGardener

 

LSSelectionSwitcher

  As the 3ds max files for the levels in Driving Force gained complexity, eventually adding such things as physics proxies for all items, the sheer number of objects visible at any one time was degrading the performance of 3ds max. Since Driving Force was developed in 3ds max 4 there was no layering system. Selection sets weren't an either or proposition, unfortunately. Each time the user selected a different set it's data would be added to the already visible objects. LSSelectionSwitcher provides the toggle mechanism that max R4's default selection set behavior lacks. When a user selects a different set from the list the currently visible objects are hidden before the new ones are unhidden. This allows for the artist to selective work on parts of an extreme large max scene without sacrificing performance.

The "Exporters" section of the UI automates the process of exporting all necessary datasets (visible geometry, external references, and physics proxies) for use in Driving Force. Each set is selectively unhidden and exported to the game format. Then, a formatted XML file containing all information needed to populate the world at runtime is created.

Download LSSelectionSwitcher

 

LSAboutFace

    During the development of Soul Forge Lodestone Games was asked to consider reusing some character art assets that a different studio had developed for another game Sony was going to publish. While the external assets were made in 3ds max and Character Studio, the build specifications were completely different that what was being used for Soul Forge. Soul Forge characters were designed in centimeters and with the front of the character facing down the positive Y axis. The external character models were in inches and facing down the negative Y axis.

Rotating a biped skeleton into a new default position is exceedingly hard. After a lot of trial and error the art team at Lodestone figured out a series of steps that would accomplish the task. LSAboutFace automates those steps so the artist just has to push a few buttons to get the assets converted into the proper format.

Download LSAboutFace