Neverwinter Nights:NWmax Plus

From TBotR Wiki

NWmax Plus - Overview

NWmax+ is based on NWMax by Joco which was designed along the same lines as the Aura scripts from Bioware and the MDL Suite. In fact those original works provided some of the original code. Anyway, the point is NWmax+ uses Helper Objects and Modifiers to hold all the Aurora Game Engine data NWN needs for a model.

It is worth while reading about the concepts of modifiers in the 3DS Max user guide and the 3DS Max tutorial files. The key concept is that each modifier performs something on the meshes data and passes the resulting mesh up to the next modifier in the stack. Some modifiers actually do nothing to the mesh other than provide a means of holding extra data against that mesh. This is what the Aurora modifiers do. They do not change the mesh in any way. All they do is hold Aurora Engine specific data against the mesh for use by the NWmax+ export functions.

Some Basics

Let's start things off, fig. 1 is a shot of the standard NWmax+ interface within 3DS Max. Key elements are:

A. NWmax+ Rollouts
B. The Helpers button under the Comamnd Panels Create tab
C. The list of Helper types available - Note the new Neverwinter Nights type
D. Neverwinter Nights specific helpers

Screenshot 001.png

Modifiers

Next after a loading in a model which has some modifiers applied to it. This is a simple flag pole model with a vertically dangling flag which has been turned into a Dangley mesh using the AuroraFlex modifier.

E. Modifier list box - This is where the Aurora modifiers can be found (see fig. 3 below)
F. The Modifier Stack - In this sample we have two Aurora specfic modifiers applied. The AuroraTrimesh modifier, controls how a mesh will render and cast shadows among other things, and the AuroraFlex modifier which drives the NWN DanglyMesh. You can also see in the screenshot the green boxes which represent the relative amount of movement each vertex will produce based on the vertex's weight. Remember, a vertex's weight is held in it's color value (on the Editable Mesh). The AuroraFlex modifier idientifies to the export code that this mesh is an NWN DanglyMesh as well as holding the DanglyMesh specific details of sway, stength, and flex
G. Modifier rollout - Each modifier has a number of properties that go with it. These are displayed here when that modifier is selected in the modifier stack. In this example we can see the Flex parameters being displayed

Screenshot 002.png

If you click on the Modifier List dropdown this is what you will see:

Modifier list crop.png

Notice that all the Aurora modifiers are listed in alphabetic order under OBJECT-SPACE MODIFIERS.

The Model Base

The UI for the model base is very similar to that used in NWMax by Joco. The key difference is that data held on the model base will determine where and how the model will be exported. The key to this is the edit box just above the export buttons. Use the Browse button to change the export directory of this model. Use the Reset button to return the export directory to the default location (set by using Export Path in the Preferences rollout). Doing this will allow you to export models to a location of your choice without requiring you to change your default location. Another change is to the rounding routine. By default, tile models have always been rounded upon export, other model types were not rounded. Using the Round to Nearest cm checkbox, you now have the option to turn that rounding on/off for all model types. And lastly, you see the addition of the Active Sanity Checks rollout. This allows you to turn on/off any of the sanity checks performed during export without needing to change your current sanity check preferences.

Mdl base parameters wiki.png

NWmax Plus - Helpers

On the Create tab of the Command Panel is the Helpers icon (shown depressed in the image). There are a number of object types listed including some specific ones for Neverwinter Nights. These are:

Helpers.png

A. AuroraRef - Dummy node, mostly used as the target point for p2p emitters.
B. AuroraBase - Modelbase node, holds core model information such as animations, events, and supermodels.
C. AuroraLight - Dummy node, holds tile light information such as radius, color, surface type, and lens flares.
D. AuroraEmitter - Emitter node, holds emitter information such as update, render, and blend types.
E. MonsterNode - Dummy node, HotU specific, supporting the creation of up to 10 monster nodes named and numbered as per BioWare naming rules.


NWmax Plus - Modifiers

Object-space modifiers affect an object's geometry directly in local space.

When you apply an object-space modifier, it appears directly above the object with other object-space modifiers in the modifier stack. The order in which the modifiers appear in the stack can affect the resulting geometry.

The following are the NWN specific object-space modifiers.

AuroraAniMesh

This section needs help

Auroraanimesh.png


AuroraFlex

This section needs help
The AuroraFlex modifier models the same system used in the MDL Plugin Suite. In this system there is a slight alteration in terms used and in one case the values. The AuroraFlex modifier is applied to an editable mesh. There is currently no tool for painting the vertex colors. At the moment you select the vertexes and then set their color values.

Mdl flex parameters.png
Flex Modifier MDL DanglyMesh
Sway Period
Strength Tightness
Flex Displacement (Flex = Displacement x 10)

AuroraTrimesh

This section needs help
The AuroraTrimesh modifier allows the creator to control a number of in-game features for editable meshes. Not the least of these is if the mesh will even render in the game. An interesting ability is to have a mesh that does not render but will cast a shadow. This modifer is used in tiles to determine fading properties.

Mdl trimesh parameters.png


AuroraPlaceable

Mdl placeable door.png
Used to identify a mesh as being a walkmesh for placeables and doors by applying it to an editable mesh. The structure for this is to have a Dummy helper with the correct name for the pwk or dwk file. The naming format for the dummy node is [model name]_[pwk|dwk] (e.g. somemodel_pwk). The actual pwk/dwk planes can be any name you like so long as they have a Walkmesh modifier and are linked to the dummy node.

Pwkdiag.gif

The following structure diagram shows the relationship. While this modifier can be used at the trimesh level it is really most likely to be used to flag the dummy object as a pwk/dwk dummy. Why is this important? Because everything linked to the dummy node tagged with this modifier will be exported to the pwk/dwk file.

AuroraWalkmesh

This section needs help

Walkmesh options.png
This is used to identify a mesh as a walkmesh for either a placeable, door, or tile.

Rollouts

The core tools within NWmax+ are held within several rollouts, some of which we have touched on briefly in other pages. On this page we will attempt to go into further detail explaining certain aspects contained within each of the rollouts.

General Utils

Tools general utils.png
A. Float NWmax+ - This undocks the NWmax+ rollout making it a classic floating rollout window. When undocked this button will say Dock NWmax+.
B. Parent - Selects the parent of the currently selected object. Uses the first occurrence of a parent in the case of multiple selections.
C. Child - Selects the children of the currently selected object.
D. Dummy - Creates a dummy node in the standard NWN size.
E. Set Environ - Sets the unit of measure for the scene to cm.
F. IntoDummy - Turns selected object(s) into a standard NWN dummy node.
G. Fast Linker - Links all selected objects to the AuroraBase in the selection.
H. Tile Slicer - This tool is a NWN CC mainstay for tile building. It will take a single scene and "slice" it into multiple NWN tile sized chunks. Also adding all the necessary AuroraBases and AuroraLights.
I. Scale Wizard - This tool supports the uniform scaling of the scene. Of particular note: it handles the scaling of skin meshes correctly.
J. Mass Operations - ???
K. Export all or Selected - Does what is says. Exports all the AuroraBases in the scene or only those that are selected.
L. Plug-Ins - Supports community plug-ins. Through this system anyone can write plug-ins for NWmax+ that make use of it's built in functions. Selecting a plug-in from the dropdown list and pressing the Go button starts the plug-in.
M. Tileset Creator - If you have Velmar's TSC, or my TSC+ installed, the Set Manager button will be enabled. Pressing the button will open the Set Manager rollout.

"Plus"

Tools plus.png
A. Clone Selected - Chilliskinner's Clone routine.
B. Zoom Sel - Zoom to selected object, active view only.
C. Zoom All - Zoom to all objects in scene, active view only.
D. Mass Tessallate - Tessellate all MDL files in a selected directory.
E. Walkmesh Checker - Check the walkmesh for errors.
F. Remove Shadows - Turns off shadows for selected meshes.
G. Hide Fading Objects - Check button that will hide/unhide meshes with tilefade > 1.
H. "Clean" Model - My attempt at incorporating some of what CM3 does.
I. Tile Lifter - Adjust the height of the child objects of all tiles in the scene. Use the spinners to control the amount of the lift by choosing a height along with a multiplier (i.e. height = 250.0, multiplier = 4, total lift = 1000.0).
J. MDL Mirror - Mirrors the child nodes of the selected models.
K. Pivot - Set the pivot(s) of the selected object(s). Use Force Integer when setting the pivot to snap the position to the nearest integer. Use Snap Only to set the pivot to the nearest integer.
L. Select - Iterate through the verts, edges, or faces of a selected mesh.
M. Get/Set Verts - Gets the center position of the selected verts. Sets the position of the selected verts to the values of the spinners. Use the checkboxes to set that value only.

Robes/Armor/Skin

This section needs help

Tools robes armor skin.png
A. Armor Maker - Opens the Robe and Armor Maker rollout.
B. Armor Cutter - ???
C. Skin Dumper - ???
D. Weight Master - ???
E. Pivot Tools - ???

Robe and Armor Maker

This section needs help
A utility that combines the abilities to build new race/sex/pheno2 models from a base set of manakins. The recommended approach is to use the supplied manakins to build your core pm?0, pf?0, pm?2, and pf?2 models. Scale these four base models to the other target races you require.

The process of building armor or robes using this utility will take you down through each group in the dialog box.

Robe armor maker.png

A. Reference Models - These are the base models that the utility will use to build the new models from. They will either be robe or armor pieces. DO NOT MIX THE TYPES UP. If you do it will all go horribly wrong.
B. Reset Export Path - Define where you want to the generated models to be exported. Note: The resulting files from this process are .max files. This is a deliberate design decision. You will almost certainly need to perform some level of tweaking on your scaled models before exporting them to .mdl.
C. Scaling INI File - This is the data file that provides the scale data. A number of files have been pre-loaded. Once an .ini file has been selected the description beneath will change letting you know what this .ini scale file has been designed to accomplish. If you use it for something other than it's intended purpose results may not be as expected. You will also notice that the Race options will change. This indicates the default races this scale file is configured to process. You can deselect races you don't want to generate output files for. WARNING: Selecting the correct scale file is crucial to getting expected results.
D. Race Processing and Over-rides - This section allows you to select which races, sex, and phenotype over-rides you want to process. The race processing options are self-explanatory:

  • Select a race to generate models for that race.
  • Sex Override:
    • Default - Use the sex value from the base models.
    • Male - Force all outputs to be male models.
    • Female - Force all outputs to be female models.
  • Pheno Override:
    • Default - Use the pheno value from the base models.
    • 0 - Force phenotype 0 (normal).
    • 2 - Force phenotype 2 (large).
  • Global Scale Adjustment - Allows x, y, z values from 0 to 1 to be added to the scale factors used. Adding a value of 1 is like changing a scale matrix of [1, 1, 1] to [2, 2, 2]. This would make the resulting piece 200% normal size.


E. Build the Robes or Armor - ???
F. Status - This just provides some information of what was processed.
G. Load Armor Pieces - ???
H. Mass Export - ???

COMMENTS:
NWmax+ Robe and Armor Maker is not perfect. To get the best results you will need to bear certain things in mind. The key ones being:

  • The scale data has been developed using two sources:
    • The BioWare robe model robe003.
    • A series of "manakin" models built from the 001 armor parts.
  • You should use one of these as the underlying skeleton for your robe. The scale data works best if the starting dimensions of the underlying skeleton are exactly the same as the original scale data.
  • The scale data is designed to scale from a human model to the other races, it will not work from an elf to the other races.
  • The modeler should develop four base human models pmh0, pmh2, pfh0, and pfh2.
  • The results of a scaled model will NOT be as good as a hand crafted model, but it WILL save you massive amounts of time.
  • After any scaling exercise you should check your models and perform any hand corrections you feel are necessary.
  • A key element to robe development is the placement of the pivot points. Due to the way the robe system works these pivots need to be in the same place for both phenotypes of a race. Load in the super models pmh0, pme0, etc. to see what I mean. These models contain dummy nodes that show where each of the body parts pivots should be located.

Mesh Tools

Tools mesh tools.png
A. Trimesh - Converts the selected object into a proper trimesh.
B. Cryomesh - Save mesh state of selected object for late reload.
C. Check Shadows - Performs a sanity check on the selected geometry for possible shadow issues. Any geometry that fails the check will have it's wirecolor turned red. For this reason do not use red as a wirecolor if you plan to use this function.
D. Rationalise Materials - All materials that contain a bitmap are scanned for duplication and consolidated, all orphans are then deleted.
E. TVert Displacer - Scale/move tverts on a material that has been resized.
F. Random Wirecolor - Randomize the wirecolor of all selected meshes.
G. ResetXForm - This is a "smart" reset transform that will automatically unlink your selection, apply a reset transform, collapse just the reset transform modifier from the stack and then relink the selection. It also has the option to preserve the pivot orientation or to realign that with the world axis.
H. Copy/Paste Links - This will store the hierarchy information of your selection. Then at a later point by pushing the button again allow you to restore that hierarchy. The Reset button will clear the copy buffer.
I. Order Children - Allows you to set the order of children of a node. This can be important when the skin is not ordered after the "bones" it requires when exporting.

Anim Tools

This section needs help

Tools anim tools.png
A. Reset Controllers - Even though the import code is setting the position, rotation, and scale controllers as type linear 3DSMax can still get confused. Selecting all geometry and running this process will force these settings again. This will often correct "odd" animation behaviour within 3DSMax.
B. Copy animation keys - Opens the Animation Key Copier rollout allowing you to copy animation keys from a source object to a target object.
C. Anim Mapper - Import animations from an MDL file and map to scene nodes.
D. Key Master - A number of mass key manipulation functions.
E. Mass Key Tweaker - Mass tweaking of position and rotation keys.
F. Bake Anims - ???
G. Reduce Anim Keys - Rationalize the animation keys for the selected nodes.
H. Anim Browser - ???
I. Event Browser - ???

Animation Key Copy

This section needs help
This utility takes animation data from a start frame to an end frame and copies it to a starting point called the target frame. To do this we must provide a source and target object (if target is undefined then the target is assumed to be the source), which key types to copy, whether to copy a hierarchy (i.e. child nodes as well) and whether to use absolute or relative calculation of the movement between key states.

Anim key copy.png
A. Start Frame - Starting point of the keys to copy.
B. End Frame - End point of the copied data.
C. Target Frame - Point at which key data is copied to.
D. Source - The source object of the key data.
E. Target - The target object where the key data is being copied to. If undefined, the target is the source.
F. Pos, Rot, Scale - The position, rotation, and scale keys. Selecting these indicates which key types are to be copied.
G. Copy Child Nodes - If selected, copies the hierarchy from the source to the target. Obviously both hierarchies must have the same shape.
H. Absolute, Relative - How to transition from rotation key to rotation will be calculated.
I. Mirroring - ???
J. Copy - ???

Texture Tools

This section needs help

Tools texture tools.png
A. TexLib - ???
B. TexLib Maker - ???
C. MiniMap Maker - ???

NWN MDL Loader

Tools mdl loader.png
A. Model Browser - Use this to browse to your import directory and select the MDL file you wish to import.
B. Import Options:
  • Import the entire model, geometry only, or animations only. When importing animations only, you have the option to name the animation you want and at what frame it/they should be inserted.
  • Reset Controllers ???
  • Show Warnings ???
  • Use the spinners to place the imported model at a specific location.

C. Import - Once you have selected an MDL file, press this button to start the import process with the options above.
D. Reload - Made a mistake and need to start fresh. This button will re-import your previously selected MDL file.
E. Delete Base Pointer - Deletes the nGon used to designate the front of the modelbase.
F. Load Tile Group - Opens the Tile Group Loader rollout.
G. Mass Tile Load - Opens the Mass Tile Loader rollout.

Preferences

This section needs help

Tools preferences.png
A. Autodock - Check this if you want NWmax+ to automatically dock after starting.
B. Export Path - Set your default export path. Setting an export path anywhere else will not affect what you set here.
C. SkinDumper Path - Set your default skindumper path.
D. CryoMesh Path - Set your default cryomesh path.
E. Anim List Size - Controls the size of the animation list box found under MDL Base Parameters.
F. Reset Sanity Check - Set your default sanity checks here.
  • AuraBase Checks:
    • Zero Rotation - ???
    • Valid Anim Keys - ???
  • Tile Checks:
    • WOK Mesh Validity - ???
    • Tile Node Boundary Check - ???
  • Sanity Checks:
    • Emitter Validity - ???
    • AuraRef Existence - ???
    • Node Name Validity - ???
    • Zero World Scale - ???
    • Material Bitmap Name Chk - ???
    • Bitmap Name Validity - ???
    • Weld To Nearest cm - ???
    • Node Type 'boolean' - ???
    • Valid Controllers on Keys - ???
    • Animated Mesh Validity - ???
    • Texvert Validity - ???
    • Zero Faces on a Node - ???
    • Bumpy-shiny Alignmt Chk - ???
    • Animroot Node Existence - ???
    • Skinning: 4 Bones per Vert - ???
    • Check WOK - ???
    • Check for Skins - ???

NWMax Plus

Tools nwmax plus.png
A. NWmax+ - Opens the About dialog.
B. Version - Lets you know what version you are using.
C. Visit TBotR - Link to our webpage. Not sure if you have the most recent version, find out here.
D. Facebook - Link to our Facebook page. Visit and Like our page if you find what we did to be useful.
E. NWmax+ Help - Link to this documentation.
Personal tools