NWMax

From NWN1 Custom Content Guide

Jump to: navigation, search

Contents

[edit] Introduction & Credits

NWmax is based on the concepts and user interface of the MDL Plugin Suite and the Aura Scripts used by the 3DS Max users. To this end the user will make use of Helpers and Modifiers specifically built to support modelling for Neverwinter Nights within the gMax environment.

Exporting has been a problem for gMax users. There have been other attempts to resolve this problem but all have required some level manual operation by the user. To this end a new tool has been developed (gMax Snoop). This tool has been built specifically for NWmax and as such requires no extra steps beyond the natural use of gmax's NWmax.

This guide is not intended to teach the reader on what all the different fields/values are on the various helpers/modifiers. There are other sources for that data on this site.

[edit] Getting started

  1. You should have 3D Studio Max or gMax v1.2 from Discreet installed already. Throughout the rest of this manual, we'll refer to gMax since it would be the most common available to everyone (being free), but if there is a distinction between the two versions we'll let you know.
  2. Grab the NWMax installer for the program you're going to use it with.
  3. Install the appropriate NWMax for whichever program you're using (the auto installer should put all the necessary files into the /scripts/ directory).
  4. IMPORTANT: For gMax, you should see a new icon made on your desktop with the NWMax in white over a black button. This starts the NWmax snooper program, which would sit in your systray. This is the snooper which allows NWmax to extract data out of gMax. There are 3 stages on the systray applet, when the colour of the NWx is white, it means the snooper is running, but gMax is not. Green means gMax is up and detected. Red means that the snooper is writing the data to the hard drive. Under Max, NWMax uses the native file functions so has no need of the snooper applet.
  5. When you start Max/gMax, NWMax should automatically load and you should see on the left hand side the speedbar.

[edit] The Speedbar

The speedbar is a collection of quick access functions and utilities to (hopefully) make the life of the gMax modeller a little easier.

Note: Some functions may be unavailable in your version. This is because those functions were incomplete at the time of that release. They will be available in a subsequent version.

Float SpeedBar toggles the floating/docked status of the speedbar
Parent/Child select the parent or children of the currently selected

object

Dummy create a standard NWN dummy node
Set Environment sets the scenes unit of measure to being 1 unit == 1 cm
Trimesh convert selected mesh into a proper trimesh
Fast Linker link all objects in the selection to the AuroraBase in the selection. If more than one AuroraBAse is in the selection a warning message is given and nothing is done.
Chilli Skinner a tool to help in UV mapping models
Tile Silcer a tool developed to slicer large tile models into tile groups
Scale Wizard scales the model in the scene by the specified percentage
Armour Maker a tool to autmatically make armour parts or robe parts for each race from base source human male, female pheno0/2 models
Armour Cutter Makes armour parts from the parts of a single NPC or creature model. The creature part names must be valid PC part names for the cutter to work
Skin Dumper allows the saving annd loading of skin weights to/from file
Mass Operations provides mass sanity checker, mass load and mass export functions for .gmax or .max files
Load Tile Group reads the specified .SET file and shows the groups available. The supports the loading/placement of the models identified as being in that group. The required model files must be in the same directory as the .SET file
Cryomesh allows the pivot location/orientation and mesh parenting to be save to a file for later reloading. Good for when a mesh has been attached then detached and the pivot and parent information has been lost. Also provides a list of saved mesh names in a cryomesh file which can be used to name meshes in the scene
Order Children a facility to allow the user to order the children of a node into a specific order. This is important for models that make use of skin meshes and bones. The skins MUST be ordered after the bonehierarchy for the export process to work. The easiest way to do this is to link the Skins dorectly to the model base and then use this function to ensure the bone hierarchy(s) are first in the model bases children

list

"Desparkle" Model performs the Bioware desparkle routines on the selected objects. This is to essentially round all the vertices to the nearest whole cm
Check Shadows checks all selected objects for being well formed for shadow casting. Failed objects are turned red. Once corrections are made and the failed objects pass the test their original wirecolor is restored. For this reason it is recommended that RED is not used as a wire color for an object.
Reset Controllers resets all the animations in the scene to TCB then back to Linear. Complex animations can get condused on import. This "unconfuses" them
Rationalise Materials a tool that cleans out duplicate materials in the scene based on the bitmap, opacity and diffuse settings
Remove Anim Keys removes all animation keys by the specified type from the selected objects
Copy Animation Keys copies animation keys from a source object to a target object. It can also copy the hierarchy of nodes under the source object to the target objects hierarchy if they are the same. It is also possible to mirror the rotation keys around the three axis. The frames to be copied are defined by a start and end frame range. The location in the time line that they are copied to is specified by a target frame
Bake Anims bakes animation keys of selected objects in an IK chain for the specified range of frames. It also includes the option to auto run Reduce Anim Keys with zero tolerance
Reduce Anim Keys reduce the number of keys on selected objects based on position and rotation tolerances. Position tolerance is in the number of degress of the movement in the axis animation curves slop. The rotation is based on the percentage of change in the angle between each key where the axis of rotation is the same
ResetXForm this is a smart reset xform function. It can preserve the pivot orientation or cause them to be world aligned. It will auto delink the selected the geom, reset xform, collapse the reset and then relink the geom. All the things you would normally have to do by hand is automated
Copy/Paste Links stores the links of the selected geom allowing it to be resteored latter. Simliar to cryomesh, but with out the ability to store the pivot data or save/load from disk files
Export All or Selected All models in the scene will or only the selected model bases will be exported. This means all model bases in the scene will be exported (attempted to be exported as a model base with no geom off it will produce nothing). If any skin meshes are detected in the scene this function will abort as to continue will crash NWmax. This is not something can currently be worked around and relates to the way skin meshes are access
Reset export directory This allows you to reset export directory of all the selected model bases in the scene to a specific value
Plug-Ins this supports the addition by users if plug-ins. These can be prefabricated parts like the example Flame emitter or extra utilities
Import MDL means exactly what it says. Supports both binary and ASCII mdl files.
NWmax The application logo which can be pushed to get a list of credits. The text under the logo are urls that take you to the products home at DragonLance Adventures and some other useful sites

[edit] Helpers

[edit] AuroraBase

The base object from which all other model objects must be linked either directly or indirectly.

Parameters:

  • Super = the supermodel if applicable. The default is NULL. Using this field allows a new model to inherit all the animations of an existing model.
  • Classification = determines what the model type is.
  • Animation scale = allows for the scaling of the animations by a factor.
  • Animations = list box containing the list of animations. Each entry contains the animation name, start frame, end frame and transition time
  • Add, Delete buttons = self explanitory
  • Zoom and Reset Zoom = selecting an animation and clicking zoom will set the animation time lime to the extent of just that animation. Reset Zoom returns to the original time bar extent.
  • Move Up/Move Down = mostly for organization, but it helps when animating as certain sequences lead into others.
  • Events = list of events
  • Dir = directory that the model will be exported to. Defaults to the gMax Export path, go to Customize: Configure Paths to change it. If you are using gMax+NWMax just for NWN, ideally setting the export to your NWN override directory would save a lot of trouble.
  • Export Model+Anim = export the model and all animations
  • Export Geom Only = export only the geometry, no animations

[edit] AuroraRef

A helper object that holds the data for reference nodes.

You should be able to just use the default information here unless you really know what these values do.

[edit] AuroraLight

A helper object that holds NW light information. This is derived from the omnilight base object. In Max this can cause an issue when rendering but as we can't render in gmax it's no problem.

  • Radius = radius of the light
  • Multipler = Per Bioware's documentation "A multiplier can make a negative light in our engine, which is quiet useful for darkening

corners and general shading (some spells too!). We also use this to enlarge the inside radius of a light as the lighting system clamps at 1, and if a light has a multiplier that goes above this, then it will simply push the inside radius out further (but will keep the outside radius to the correct setting."

  • Priority = priority the light source has during scene rendering in the game engine. This is used to by the engine to determine which lights it can "cull" first. The scheme is of the form:
  1. The sun/moon
  2. Torches/ light spells
  3. Spells, general lights (which is why a new light will have this number as default)
  4. Un-needed tile lights
  5. Magic weapon lights. (for example)
  • Fading Light = as a light is added or removed from a scene it's light effect is immediate unless you have this propery on. In which case it will fade and out. For some situatons like spells you want this off as you want the lights full brightness as soon as it enters the scene
  • Intensity\Color =
  • Negative Light =
  • Ambient =
  • Is Dynamic Light = sets a light as both static and dynamic
  • Affects Dynamic Objects =
  • Shadows =

[edit] AuroraEmitter

A helper object that holds all the data for emitter objects. These objects are subclassed from Cone_Angle helpers. They are seen as a cone helper where the emitter is at the cone apex with the direction of the emitter facing towards the cones base. Note: much of the documentation on emitters is taken from Danmar's community posts on the subject with corrections comments from Bigfoot in particular.

More information can be found on the Emitters section.

[edit] Modifiers

[edit] AuroraFlex

The flex 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 Flex modifier is applied to an editable mesh. There is currently no tool for painting the vertex colours. At the moment you select the vertexs and then set their colour values. A colour painter tool will be available in the next release.

Flex Modifier MDL Danglymesh
Flex Displacement (Flex = Displacement x 10)
Strength Tightness
Sway Period

[edit] AuroraTrimesh

The trimesh modifier allows the modeller to control a number of in game features for an editable mesh. 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.

[edit] AuroraPlaceable

Used to identify a mesh as being a walkmesh for Placeables and Doors by applying it to an editable mesh. The preferred 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 it is linked to the dummy node. 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.

AuroraBase
Dummy
(AuroraPlaceable modifer)
Mesh Mesh Emitter
Plane use01 use02 Mesh Mesh

[edit] AuroraWalkmesh

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

[edit] General Features

[edit] Personal Preferences

[edit] Material Search Path

[edit] Platform Considerations

With the gMax version of NWMax, the snooper app will NOT work under Win98 and Win95 due to a difference in the OS's libraries. It is reported to work under WinME however. Windows 2000 and XP have no such problem, as does the 3D Studio Max version under any platform (as it uses the native file read/write functions).

HOWEVER, theoretically there is a way around it if you can't upgrade your OS from Win9x to a WinNT base. Do the following:

  1. In your /gmax/scripts/nwmax/nwmax.ini file, open it in Notepad and change the line saying verbose=0 to verbose=1.
  2. Start up gMax and NWMax as normal, but kill the NWMax snooper from the systray if it is running (right click, close).
  3. Do your modeling in gMax as normal.
  4. Press the export button and wait for NWMax to export the data to the Listener. Not the export all button, otherwise you'd have a lot of copy/pasting to do. =)
  5. Press F11 or go to MAXScript->MAXScript Listener and open the Listener window.
  6. Copy the lines starting with "# Exported from NWmax 0.6-beta at 3/28/2004 10:54:15 PM~" to "donemodel (whatever your model name is)~".
  7. Open Notepad or Wordpad and paste the contents to it.
  8. Do a Replace (Ctrl-H) in Notepad or Wordpad and remove all instances of ~ (search for "~" and replace with nothing)
  9. Save your text file in Notepad/Wordpad to the directory of choice (/nwn/override/ being the most common), and name it to "YourModelName.mdl".
  10. Test your model out!

Why? NWMax, by default, exports the data to the Listener script window using ~ as a new line instead of a normal 'enter'. This speeds up the exporting as it reduces the number of printf() calls it has to do in MAXScript (which is slow), and relies on the NWMax snooper applet to handle the actual new line when writing the file (which is fast).

However, as the NWMax snooper does not work under Win9x, we rely on manual work to handle the pasting as a file (similar to the old Wayland's system for gMax).


Main_Page | Tools | NWMax

Personal tools