CorVex is a scripted geometry plugin for 3ds Max 2010+ aimed at quickly building game level layout for any game engine or even general design. It offers convenient planar mapping controls for geometry that is controlled by spline bases. You can create blocks or walls, and the walls have much more convenient UV control than standard AEC Walls.
If want to block out a scene for a game level with simple convex blocks but want more control of the layout than using standard primitives; if you want all parts to have consistent U/V scaling with texel densities matching across objects; if you want to build wall layouts with splines.
CorVex is an all-purpose plugin for any game engine and general design.
General Work Flow
- Add CorVex object to Scene
- Create new "Spline Bases" or add splines already in the scene
- Set CorVex parameters such as height, U/V scaling/offset and Material ID rules.
This section explains all the parts of the CorVex parameters.
The height is how high the sides are.
- Vector From...
This parameter controls the direction of the height. By default, the vector is in the World Z. You can also choose to use the local Z of the CorVex or from each spline in the CorVex. For Wall Mode, you should generally only use the World Z.
The incremement setting controls how the tops of the wall height will change from section to section. The values and effect are explained here:
- None All parts will have equal height.
- Step Each part will be higher or shorter than the last part. The distance is controlled by the Incremement spinner. Useful for making steps.
- Slope This setting is similar to the Step setting except that each element's top will not be flat. This setting is only available in Wall Mode.
- Reset Step Per Spline
This setting controls the step height as it progresses through splines and sub-splines. When off, the height of each element will always increase from the last element height when using the Step/Slop setting. When on, each spline/subspline will reset to the initial height value and start steps/slopes from that height.
Note that the reset happens at each sub-spline in Wall Mode, but only happens at each spline in Block Mode.
- Lock Vert 1
When checked, disables the Vert 1 Height (below) and forces the top of the CorVex object to be flat. Not used in Wall Mode.
- Vert 1 Height
When Lock Height is disabled, this will force the first roof vertice to be this height. This allows quick creation of pointed roofs. Not used in Wall Mode.
- First Vert Center
When on, the vertex used for the Vert 1 Height will be a vertex added to the center of the spline area. When off, the first vert height is applied to the first knot in a spline. Not used in Wall Mode.
- Auto Smooth
Smooths all adjacent faces that diverge less than this value in degrees.
- Flip Normal
Flips the normals of the object. Useful with Wall Mode and Weld Verts as hallways for rendering.
- Planar Threshold
This value determines how flat a polygon must be before it is broken into smaller polygons. A lower value creates more polygons. (With a value of 0.001 every single tri will be its own polygon. A good value for brushes is 2.0.)
- Snap Precision
When on, all vertices in the final mesh will snap to the world grid based on the snap precision value.
- Force Convex Polygons
This checkbox will force all polygons to be retriangulated such that no individual polygon is concave. Note that this option can slow down the calculation of the geometry, but may be essential with some kinds of settings (for example, keeping a sloping wall convex).
Use the Wall Settings to control Wall CorVex objects. A Wall CorVex will not fill in the area of a spline but will create a wall along the spline paths.
This checkbox turns on or off Wall Mode. When off, the CorVex is considered a Block CorVex. When on, it is considered a Wall. Turning this on will enable the other Wall Mode settings such as Wall Width and Open End Angles.
- Wall Width
This spinner controls how thick the wall is. You can use negative values to make the wall use the other side of a spline than its default positive side.
- The order of the knots in a spline determine which side of a spline are positive or negative. If you need to reverse the side of a specific sub-spline instead of the entire CorVex object, go to that spline's spline sub-element mode, select the sub-spline and click the Reverse function in the modify tab.
- Open End Angles
These spinners control the angles of the open ends of walls. You can change the angles of all open ends in this object. Which end is considered a Start or End is determined by the ordering of the knots in any sub-spline. See notes above.
- Separate Each Segment
When on (default) each segment (or interpolated segment if Interpolate Splines is On) will be capped with hidden face. This is the default wall mode and creates convex (sealed) segments. When off, the hidden cap faces are not created and the Weld Verts option turns on.
- When exporting to a game engine where the elements need to be Convex, keep this option on.
- For models that do not need convex parts, you can turn this option off. See the Weld Verts option to customize results.
- Weld Verts
When on (default) and Separate Each Segment is off, each subspline of each spline in the CorVex object will create a single mesh where each section of the wall from the same spline are welded with the next. This is ideal for single models.
- Flat Bottom
This setting will align the bottom of the wall to the first knot in the spline. Because it is based on the first knot of the spline, you will have unexpected results if the first knot is above other knots.
The Spline Bases are splines that control the base of the CorVex object. You can think of them as floor plans or outlines of the base of your objects.
- Add New Spline
Clicking Here will create a new Editable Spline object in the scene and add it to the Base Splines list. You will then be in the spline sub-element mode of that spline with the Create Line mode on. Now as you add knots to the spline, your CorVex object will update to match the spline's shape.
- To stop making sections of the spline and CorVex object, right-click the viewport.
- To get back to the CorVex parameters, you must exit the spline's sub-element mode then reselect the CorVex object in the scene.
- Base Splines
- This list box shows all current splines that control this CorVex object. When you select a spline in the box, that spline will flash briefly in the scene. If you right-click the spline's name, the current scene selection will switch to that spline and be set to spline sub-element mode--allowing you to create new sub-splines. Double-clicking a spline name in the list will change the scene selection to that spline but will not go into sub-element mode or set Create Line Mode.
- Add Existing Spline
Press this button to pick a spline already in the scene to add that spline to the base spline list.
- As of version 1.5, you can use almost any kind of shape object. However, at this time, you are advised to not use a Star shape as it is known to cause problems.
- Remove Spline
Pressing this button will remove the currently selected spline in the Base Splines box from the base splines.
- Collapse Splines to Spline
When pressed, merges all of the splines into a single spline.
- Interpolate Spline
- When on, the interpolation of the spline will be used instead of just the knots. This can create a smoother object, but increases the polycount (and wall pieces in wall mode). Note that this option only works with Line and Editable Spline objects. Other types of shapes are always interpolated.
The UV parameters allow you to control the UVW coordinates across the entire CorVex object.
- Side Method
This drop-down menu controls how the UVs flow along the splines. This menu will always affect the sides of CorVex objects (and can affect the tops and bottoms in Wall Mode when the Top or Bottom Methods are set to flow from the Side).
- Default This mode will force each Side to flow from the last side in the current sub-spline. (When in Wall Mode, the opposite side is stretched or squashed so that the second side will also flow seamlessly; the second side may not align with the tops/bottoms by default.)
- Side 2 (Block Mode) This mode will force the second section of a sub-spline section to start at the ending point of the previous sub-splines second sub-section.
- Reset Each Face This mode will force each Side to reset back to [0,0,0].
- Wall Match Both Sides This mode will force each Side to flow from the last side in the current sub-spline. When in Wall Mode, the opposite side is forced to align with outer side and has no stretching (but the second side may not flow seamlessly). This setting does nothing for Block Mode and falls back to default.
- Side 1 Flow (Block Mode) This mode is like Side 2 mode except it uses the first side of each spline/sub-spline for flow.
- Reset U Per Spline
When on (default), each spline in the spline base list resets the U to 0. When off, uses that last U offset from the previous spline. Useful for creating variations in U tiling when using instanced splines.
- Distance Offsets
When off (default), the UV of each element will start the U coordinates at the value left off from the last element even if the world-space difference in coordinates is great. When on, the U is offset to the value it would have been if there were no physical gaps and the object had been mapped between the last element and the space between.
- Normalize UV
This option (off by default) will force each side of the CorVex object to have a normalized UV. This means that a bitmap will tile exactly 1 time across each face when the U Scale and V Scale are set to 1. This matches the behavior of some standard objects such as Box and Extrude modifiers.
- When enabled, the Match Height and Height UV controls become disabled.
- This option does not work on the top/bottoms except in Wall Mode.
- Match Height
This option (on by default) will make the UV always match the current height of the object. This has a similar effect as having the Normalize UV turned on, except that you still have the option of changing the map width to any value.
When enabled, ratio between the map height and map width will remain constant even as you cahnge one or the other value.
Added in Version 1.1.
This field controls the height (V) of the UV mapping on the object. It is disabled whenever the Match Height option is checked.
This checkbox will lock the map width to the map height value. When checked, disables the Map Width spinner.
- Map Width
When enabled, sets the width of the map on a face. This spinner is disabled when Lock is checked.
- Set Size From Material
When pressed, the Map Height and Map Width will be set from the pixel dimensions of the bitmap of the diffuse slot of this CorVex object's material.
- The button will only get the bitmap from the diffuse slot of a Standard Material.
- A standard material can be derived from the first slot of a Multi/Sub-Object Material, one of two materials in a Blend Material or the Render Material of a DirectX Material.
- U/V Scale
These spinners further scale the texturing on a face and work in conjunction with the map height/width values above.
- U/V Offset
These spinners will move a texture. The U Offset moves the texture horizontally and the V Offset moves the texture vertically.
- Placement Buttons (Top/Bottom/Left)
These buttons set the U/V offset values to some commonly used locations: Top moves the texture offset such that it has no tiling offset at the top of the side faces. Bottom resets the V Offset to 0; Left resets the U Offset to 0.
- Top/Bottom Rotation
This spinner will rotate the textures on the top and bottom faces this value in degrees. Only works in Block Mode when the Lock Vert 1 Height button is enabled. Only works in Wall Mode when the Top or Bottom method is set to Global.
- Use Side UVs on Top/Bot
When enabled (default) the top and bottom will use the same UV scale and offset from the values above. When disabled, the Top/Bottom UV controls are enabled and used.
- Top & Bottom Dimensions
The dimensions used on the tops/bottoms can be set independently from the sides. This option was added in CorVex 1.62. Here is a definition of the options available:
- Match Height This forces the Top/Bottom V dimension to match the height value in the main parameters.
- Match Wall Width This forces the Top/Bottom V dimension to match the width of a wall. This setting is useful for making a texture match the width of a wall used as steps.
- Set Dimensions This unlocks the T/B Hieght spinner and the artist is expected to enter a specific value.
- Use Side UV Scale (default) This will match the V dimension to the V dimension on the sides. If the Lock is turned on, it will match the U as well.
- Wall Top/Bottom Method
This menu determines the method for orienting the top and bottom faces on Walls. When set to global, the top/bottom UVs align to the Global Coordinate System in the UV settings. When set to From Side, UVs flow from the side..
- Global Coordinate System
This select menu will let you choose the center for rotations on the Top/Bottom faces. The settings are:
- World This value will force UV Transformsations on top/bottom faces to rotate around the world origin. This is a good setting for any CorVex that is a Floor or Ground and you want the textures to tile seamlessly with all parts and with all other CorVex objects using the same setting.
- CorVex This option will force the top/bottom faces to rotate around the pivot point of the CorVex object.
- Spline This setting will make each part of the CorVex to transform the top/bottom UVs from the pivot point of the spline controling that part of the CorVex.
When you set the Coordinate System to either CorVex or Spline, you can further offset the UVs in the scene by manipulating the pivot points of the splines or CorVex (depending on the setting).
- Rotating a Spline/Corvex pivot in the X or Y axis will affect the direction of the CorVex object's extrusion if Vector From is not set to World Z. Because of this, you should always keep the spline's local Z axis pointed to the world Z axis in this scenario if you want to move the UV pivot but not affect the offset extrusion vector. Translations are fine in all axis.
These controls determine what material IDs go onto different sections of the CorVex object. Note that all the sections now have a checkbox next to them and a button with a plus sign.
Material ID from Spline
Any Material ID part that has the sp checkbox checked will ignore the ID in the spinners and instead derive the material ID from the segment of the spline that it was derived from. This means that each side can use a different material than the last. You must select the relevant spline, go to Segment sub-object mode, select a segment to modify and change the Material ID of the segement(s).
Acquiring a Material
The Plus icon next to each section allows you to click objects in the scene to aqcuire and set that section's material to the picked material. Note that after you've selected a material, you need to right-click to end the acquire process.
- Random ID
When checked, each polygon of the CorVex object will get a random material ID. Note that the IDs are chosen randomly from the number of sub-materials in the Multi-Material applied to the object; if no multi-material is assigned, the ID will be a random value ranging 1-100.
- If the CorVex object has a multi/sub-object material with 5 material slots, the faces will get IDs ranging 1-5.
- Random Seed
This spinner gives a new seed for the random IDs on faces. This is only enabled if Random ID is checked.
- Material ID
This is the default material ID applied to all faces if Random ID is off and Lock All IDs is on. If Lock All IDs is off, this is the ID for most of the sides of the CorVex object.
- Lock All IDs
When on and Random ID is off, all faces on the CorVex object get the Material ID value above and the Side 1, Top ID and Bottom ID spinners are disabled.
- Side 1
This function works differently depending on wither the CorVex is in Block Mode or Wall Mode. Block Mode: This is the material ID applied to the first segment (side) of a CorVex element (an element being a distinct sub-spline). Wall Mode: This material ID is applied to all hidden faces between walls. If you want all sides to be the same, match this value with the Material ID above.
- When in block mode, this parameter is useful for tasks such as making Hint Brushes for the Source Engine.
- Top ID
Material ID of the top faces or peeked roof faces.
- Bottom ID
Material ID of the bottom faces.
- Wall Visible Ends
This Material ID is applied to open ends in Wall Mode. Open ends appear at the first and end knots of unclosed splines.
- Wall Side 2
This material ID is applied to the opposite side of walls.
The buttons in this rollout are convenience functions for working with CorVex objects.
- Bake Geometry and Hide
This button will create an editable poly clone of the CorVex object and hide the CorVex object. If the Export as World Geometry parameter is checked, the new cloned geometry is tagged as exportable and the original CorVex is set to not export. This is useful to keep the original CorVex if needed but make an Editable Poly that you can modify with standard editing tools.
- Get Settings From CorVex
This button will allow you to pick another CorVex object in the scene and get all of it's parameter to assign to the current CorVex. Note this will not collect base splines or cutters.
- Get Splines from CorVex
This button will allow you to pick another CorVex object in the scene and apply any of the splines in that object to this object's base splines.
- Create Multi Material
This button will generate and apply a new multi-material to this CorVex object with a material for all the available sections in the object (4 materials for Block CorVex objects and 6 materials for Wall CorVex objects).
Stack Selection and Colors
The stack selection rollout gives you options to select groups of faces or vertices for common sections of the CorVex object. This is a convenient way to fine-tune specific areas of your object via modifiers.
All CorVex objects have access to the following selections: Sides, Tops and Bottoms. Only CorVex objects in Wall Mode have access to these options: Open Ends, Wall Side 2 and Hidden Sides.
Using Stack Selection
To use stack selection, choose the appropriate selection groups you wish to use. For example, you can choose Tops. Now add a Poly Select Modifier and go to Polygon sub-element mode. You will now see just the top polygons selected. At this point, you can add another modifer and it will only affect the selected faces (unless the modifier doesn't support face selection).
Vertex and Face Colors
The Colors section allows you to define face colors or vertex colors for your object.
- Color Mode
This menu lets you specify what kind of colors will be assigned:
- No Colors: No colors will be assigned.
- Color Per Vertex: Colors are assigned at the vertex level.
- Color Per Face: Colors are assigned at the face level.
Sets what channel to save the colors into. For convenience, there are buttons to set to Alpha (-2), Illum (-1) and Vertex Colors. Although the spinner allows setting Channel to 1, channel 1 is reserved for the object's UV coordinates.
- Display Color
This button will force the node to use the color channel to display.
- Display Maps
This button will turn off the color display and set to channel 1.
In version 1.96+ there is a new shape primitive available with CorVex in 3ds Max 2016 SP2+ called CorVex Spline. This new spline shape is available in the Wall Worm category of the Shapes section in the Create Tab of the Control Panel. With it, you can keep parametrically generated splines that are derived from the sections of targeted CorVex nodes.
- Base : Creates a spline along the base of the targeted CorVex nodes.
- Wall Side 2 Base : Creates a spline along the base of the second side of a CorVex in Wall Mode.
- Base Midline : Creates a spline along the bottom middle of a CorVex in Wall Mode.
- Top : Creates a spline along the top edge of the CorVex nodes.
- Wall Side 2 Top : Creates a spline along the top of the second side of a CorVex node in Wall Mode.
- Top Midline : Creates a spline along the top middle of a CorVex in Wall Mode.
- Side Divisors : Creates vertical splines at all the outer corners of a CorVex in Block mode or between each block on the first side in Wall Mode.
- Side Divisors Ends : Creates vertical splines at the end sections of the first side of a CorVex in Wall Mode where the spline is open at the ends.
- Wall Side 2 Divisors : Creates vertical splines between each block along the second side in Wall Mode.
- Wall Side 2 Divisors Ends : Creates vertical splines at the end sections of the second side of a CorVex in Wall Mode where the spline is open at the ends.
- Wall Top Caps : Creates a sealed, four-sided spline on the top of each block in Wall Mode.
- Wall Bottom Caps : Creates a sealed, four-sided spline on the bottom of each block in Wall Mode.
- Wall End Caps : Creates a sealed, four-sided spline on each open-ended section of a CorVex node in Wall Mode.
Several of the sections have an option to reverse the direction of the spline created in that section.
More Reference Videos
At this point in time, there are a few known issues:
- You should not use the Star Shape in your spline list as it is known to cause a problem at times.
- Currently, the Top/Bottom UV in Block Mode does not support Normalize UV.
- The direction of the U-axis is derived from the direction of a spline when created. If your U scale is inverted (backwards) you can either set the U Scale to -1 or you can select the spline and click the reverse button when in spline sub-element mode.
- At this moment, using the Cutter Objects (added in 1.2+) is experimental. Using Cutters does not provide consistent results that can be exported into the game engine. Cutters also invalidate stack selections (added in 1.4).
- In Wall Mode with Interpolate Splines on, UVs can be stretched on corner elements of walls. This effect is most noticable with extreme angles on walls.
- In Block Mode where Lock Height is off, First Vert Center is off and the first vert height is not equal to the height, the two sides affected by the first vertex height will have non-planar (skewed) UVs. Because this fringe scenario is generally to build multi-piece blocks where those sides are hidden, this issue is not a priority and may or may not be addressed.
- In Wall Mode, using Vector From Spline Local Z or Vector From CorVex Local Z can have unexpected results when the Spline is not aligned to the world.
- In Block Mode, you must keep each sub-spline convex or the block made from that spline will not be convex.
- Added new parametric Spline shape called CorVex Spline that creates splines from specified sections of CorVex nodes. Found under Shapes > Wall Worm category in Command Panel.
- Added several new Material ID options for CorVex nodes that are using the multi-floor setting.
- Fixed a MAXScript error when trying to assign a spline to a CorVex node that would cause a dependency loop.
- Adds new parameters for Number of Floors and Floor Offset to create multi-story buildings.
- Adds new parameter Hard Edges. When on, forces all faces to use no smoothing groups. When off, will smooth based on auto smooth value. This distinction allows the user to set Autosmooth 0 to get a default smoothing that gives usable selection modes from smoothing groups while keeping a mainly hard-edge object.
- Adds new Face Smoothing Selection functions in Selection rollout that allows selecting faces based on Smoothing groups.
- Fixed a rare bug that could cause a MAXScript error in some cases.
- Updated Smoothing Group generation to set all faces to have no smoothing group (0) when the autosmooth value is set to 0.
- Set default Auto Smooth value to 0.
- Added support for the new Border Spline primitive from Wall Worm and NGonEdge from Swordslayer.
- Added Interpolation Multiplier option for splines.
- Added Test Splines option to collect data about splines that might cause issues.
- Added button to select splines that have overlapping vertices and highlight those locations.
- Added Force Steps and Force Steps Amount to override the interpolation steps of the splines with a specific value.
- Fixed problem of zero-area face on a wall mode CorVex with a height of 0 and using the Slope Increment setting.
- Updated the Bake function to be compatible with the latest brush tracking functions in Wall Worm.
- Added new setting in the Wall Worm Connection rollout to Exclude from Export.
- Fixed bug in Wall Mode with closed shapes that were not Line shapes. Fixes problems with shapes like Rectangle, Circle, etc.
- Shapes: Added support for non-interpolated results for the Freehand Spline in 3ds Max 2018.
- CorVex Utility Floater: Added utilities to copy/instantiate parameters between many CorVex nodes.
- CorVex Utility Floater: Added separate value for the ceiling depth so that floor and ceilings can be different depths.
- CorVex Utility Floater: Updated the method for placing ceiling parts so that the ceiling will not clip into walls.
- Utilities: Updated all the Get Settings buttons in the modify tab rollouts to include a check for whether the CONTROL button is held down. When down, parameter controllers are instanced instead of values just copied.
- Added new setting Flat Bottom that will force all vertices of the bottom of the corvex node in wall mode to remain flat in the Z axis even if the splines are not flat. Allows creating walls with variable heights. Only works when the offset vector is aligned to the world.
- Added several utility buttons in each rollout to acquire the settings for that particular rollout from other CorVex nodes in the viewport.
- Fixed bug where a CorVex node using Wall Mode would have unexpected offsets on the second side (away from the spline). Fix only works if offest vector is aligned to the world Z.
- Updated mesh generation to remove some isolated vertices that were created previously. Since this could affect existing scenes because of topology dependent modifiers, this is turned off by default in existing CorVex nodes. New nodes will have it turned on. There is no UI for this parameter, but it can be set via MAXScript with $.doClean = true.
- Added controls for choosing what channel is used for the vertex colors.
- Fixed bug where opening scenes created with CorVex before 1.84 automatically getting a Vertex Color display mode set to Face Colors. It now defaults correctly to None.
- Added new stack selection modes for selecting Vertices.
- Added new Vertex Color controls to give different sections of the system vertex colors. Allows either color per vertex or color per face.
- Optimized some functions by using BitArrays instead of Arrays.
- Fixed some UI elements not properly activating/deactivating based on dynamic setting rules.
- Fixed UV bug in Wall Mode when the Bottom UV Method is set to From Side and the Top UV Method is set to Global.
- Added Material ID stack selection. Allows sending faces with specific material IDs up the modifier stack.
- Added Presets Rollout. Allows you to save CorVex nodes as presets to reuse in later scenes.
- Added new function to the CorVex Utility Floater to break selected vertices in a spline and close it.
- Fixed a rare bug where some kinds of splines could cause Corvex to generate this error: "-- Runtime error: Mesh TVFace index out of range".
- Fixed bug with Wall Mode using Interpolation on closed splines where the end pieces of the wall were not properly closed.
- Fixed bug on Block Mode with interpolation on closed splines where the sides were not lining up with the interpolation of the spline.
- Added a sanitizer to fix a potential MAXScript error due to a fringe case of rounding errors in Max and a pathInterp() call to a value over 1.0.
- Minor performance optimization.
- Added support for Material ID from spline on interpolated splines.
- Fixed bug in the Material ID settings where the Lock IDs was ignored for any part of the object that had a Material ID by Spline setting turned on.
- Fixed Normals on Wall Mode when the height is negative.
- Fixed UVS on top/bottom of Wall Mode when height is negative.
- Fixed a bug in Wall Mode when UVs set to Normalized.
- Minor Code Optimization.
- Fixed triangulation on Wall ends when the wall height/width are negative or Flip Normal is on.
- Fixed a bug where the function acos() would return a value of (-1.#IND) for angles between blocks in Wall Mode, causing some elements of the wall to be corrupt.
- Fixed a bug where the function acos() would return a value of (-1.#IND) for angles between blocks in Wall Mode, causing some elements of the wall to be corrupt.
- Fixed a bug introduced recently where some spline types could crash CorVex.
- Fixed bug in Wall Mode where last wall block would have poor triangulation.
- Added checkbox to force all vertices to snap to the grid.
- Fixed bug where last side in each block would get incorrect material ID when using Material From Spline. Bug did not affect wall mode.
- Fixed bug where the first side of a block CorVex would use the Side 1 Material ID even when Lock IDs was on. Now the first side of block mode honors the Lock IDs setting. Bug did not affect wall mode.
- Added new parameter Force Convex Polygons. When on, all four-sided polygons are retriangulated if they are not convex.
- Added new parameter Edge Threshold. Controls the threshold at which polygons are broken with visible edges into separate polygons.
- Added new Rollout labelled Wall Worm Connection. Handles tags for Wall Worm's VMF exporter.
- Moved the "Export as World Geometry" check box to the Wall Worm Connection rollout.
- Added new parameter: Tag As Func Detail. Used with Wall Worm's VMF exporter.
- Added new parameter: Tag As Sky. Used with Wall Worm's VMF exporter.
- Added New Stack Selection option for Concave Polygons. Selects Polygons that should be re-triangulated.
- Added function to collapse all control splines into a single spline. Function in CorVex modify tab under the Base Splines list and in the CorVex Utility Floater. Click for no welding; right-click to weld.
- Added button to create a Point Helper at each knot of selected splines in CorVex Utility Floater. Click for points at knots; right-click for points at interpolated knots.
- Fixed a bug when using the Material ID from Spline setting on a Block CorVex where the spline was not closed.
- Fixed the Material IDs to honor the Lock All IDs setting mixed with Material ID from Spline.
- Added new setting Reset Step Per Spline. This setting is used with the Step and Slope Increments. When enabled, each spline (and each subspline if in Wall Mode) will reset to the initial height. When off, the increment always continues from the last height of the last subspline.
- Added another Top/Bottom UV Scale option: Use Side UV Scale. This forces the top scale to match the sides and is the new default value for the UV Scale method.
- Added support for XREF Materials in the functions to get bitmap dimensions.
- Fixed the Get Properties from CorVex function to collect some properties that were missing.
- Fixed bug in the Side 1 Material ID setting in Wall Mode. It now applies to hidden sides of walls as it worked in earlier versions of CorVex.
- Added new property Increment Type. Now the height of each wall element or each block mode block can be incremented. Possible settings are None (all tops equal height), Step (where each element has a flat top) or Slope (where each element's height transitions from the highest point of the last element to the lowest height of the next). None and Step work in all modes. Slope only works in Wall Mode.
- Added new property Increment Amount that determines how much higher one block is than the last.
- Added new Top/Bottom height/width parameters for the top/bottom UV calculations. This allows the top and bottom UVs to have as granular control as the side UVs.
- Added new utilities to generate new splines from sections of a CorVex object.
- Fixed a bug in the Pick Material functions added in 1.6. The material picker was failing if the current material on the current CorVex object wasn't a MultiMaterial.
- Fixed bug in mapping coordinates when the Match Height was set to true and the current height of the CorVex object is 0. Now the mapping calculations will check to make sure that the Mapping Height value will always be non-zero.
- Fixed bug with some Wall CorVex objects where elements would get incorrect division angles between elements.
- Fixed a bug in the Pick Material functions added in 1.6. The material picker was failing if the closes hit node did not have a mesh property.
- Added buttons to Material ID rollout to get materials from objects in the scene.
- Fixed up some of the UI logic to disable/enable Material ID checkboxes, buttons and spinners based on current settings.
- Added new Parameter to Flip Normal. This will flip the normals on the object.
- Added new Reference System controls to the CorVex Utility floater. This allows you to set the Reference System for generated splines. At the moment, this feature is experimental and not documented.
- Fixed bug where last side of a Block CorVex section derived from a closed spline would not get correct Material ID when using the Material ID from spline setting.
- Changed labels of U/V Scale spinners to use the word Tile rather than Scale.
- Fixed bug opening scenes with CorVex objects created before version 1.5.
- Minor optimization.
- Updated the Get Settings From Corvex function to acquire properties added after version 1.5.
- Added new UV parameter "Distance Offsets". When on each spline's U will be offset by the distance from the last point of the last spline in world space.
- Added several new Material ID parameters that allow you to use the Spline's Material ID to control the material ID of segments in a CorVex Object.
- Updated the Random ID function to work correctly with the second side of a wall in Wall Mode.
- Added new UV parameter "Reset U Per Spline". When on (default), each spline in the spline base list resets the U to 0. When off, uses that last U offset from the previous spline.
- Fixed bug in Wall Mode where the first side of a wall could sometime have the incorrect Material ID on half of the Polygon.
- Added Wall option Separate Each Segment. When on (default) uses the current method of capping each segment of the wall with hidden sides (faces). This is best when you need to export to a game engine and need separate blocks (or need a concave collision hull). When off, the hidden faces are never made.
- Added Wall option Weld Verts. This option is only available when the Separate Each Segment is disabled. When on, there is only one element per sub-spline when collapsed to editable poly. When off, each segment of the spline becomes a sub-element when collapsed to editable poly.
- Updated MultiMaterial functions to always make 6 sub-materials (even in block mode).
- Updated MultiMaterial function to name the multimaterial using the CorVex node name.
- Added new Spline Pairs to CorVex option called Single Floor. This setting defaults to on. When on, floors created with the CorVex utility are all part of a single CorVex node even if using multiple pairs of splines. When off, the tool will generate one CorVex per each spline pair.
- Updated Spline Pairs to CorVex to detect some spline order problems. This will not solve all problems but will solve some.
- New splines generated with the Spline Pairs to CorVex function now get names based off of this string: CorVexFloorPlan.
- Updated spline base list double-click and right-click functions to un-hide the selected spline if hidden.
- Forced complete redraw after pressing the UV buttons to align Left, Top and Bottom. Previously, the UV change was not displayed until the viewport changed or another parameter was changed.
- Fixed bug when a shape in the Base Splines has an Edit Spline modifier applied.
- Added the Successive function to the CorVex utility floater.
- Added tooltips to the CorVex utility floater.
- Added Side Method "Side 1 Flow (Block Mode)".
- Added support for all shapes (not just Line and Editable Spline shapes).
- Added Interpolate Splines checkbox. When on, all splines in spline base list use the spline's interpolation. When off, line and editable splines only use knots.
- Added Utility Floater with several utility functions. Functions include converting spline pairs to floors, ceilings and walls all at once as well as a UI for assigning an arbitrary list of splines to an arbitrary list of CorVex objects all at once. Documentation on these not yet available.
- Added Spline Base double-click function to select in the viewport the object double-clicked in the Spline Base list. This differs from the right-click function because it does not go into vertex sub-element mode and does not preset the action to Create Line.
- Faces for Top/Bottom are now swapped when there is a negative height, for more expected results pertaining to material IDs and stack selection spinners.
- Fixed bug with Normalize UV in Wall Mode.
- Fixed Top/Bottom UV bugs with various combinations of Vector From and Coordsys settings and the Vector From node's transform. Some Top/Bottom UVs on existing CorVex objects may change after applying this update. Simultaneously released Wall Worm 1.98 with accommodations for this updated CorVex version.
- Bake to Geometry function now bakes the correct top/bottom UVs when using the CorVex UV coord system.
- Fixed bug when right-clicking a spline in the Spline Base list that is a reference or instance of another spline.
- Fixed a bug with some splines.
- Checker maps in generated multimaterial now have relevant names.
- Fixed some bugs when in Create Mode of command panel and press the Add New Spline button or the Create Multi Material button before node is added to scene.
- Added Stack Selection rollout. Offers various sections to send to the modifier stack including the following face selection checkboxes for all CorVex objects: Sides, Tops, Bottom. And for Wall Mode Corvex objects: Open Ends, Wall Side 2 and Hidden Sides.
- Create Multi Material button now adds default Checker Maps to visualize the UVs.
- Added new parameter for the Offset Vector. Previously, the offset was always set to use the direction of the Spline's local Z axis in world space. Now you can choose to use World Z, Corvex Z or Spline Z. The default is now World Z, so if you have an existing CorVex that used the spline's orientation for the offset vector, change this parameter in the main parameter rollout.
- Added ability to use negative Open Wall End angles.
- Added button to swap values between start and end angles.
- Fixed UVW bug on tops/bottoms that happened on closed walls with negative height, negative wall width and certain spline orientations.
- Fixed UVW of tops/bottoms when using a vector not aligned to the World.
- Fixed UVW on ends of open walls with negative height.
- Updated the top/bottom UVW to be compatible with the Wall Worm VMF Exporter regardless of the CorVex UV coordinate system.
- Fixed some UVW bugs.
- Added control for Bottom UV Method to separate from that used on Top/Bottom of walls.
- Added control for top/bottom UV to control the coordinate system used for top/bottom global coordinates. See Known Issues when using the CorVex coordinate system for Top/Bottom.
- Fixed bug in CorVex geometry getting offset when the pivot of the CorVex is moved. Simultaneously updated Wall Worm VMF Exporter to accommodate the same scenario.
- Fixed UVW on top/bottom to work even with negative height and negative wall widths in Wall Mode.
- Added Start and End Angles for open walls (made from non-closed splines).
- Added button to reset Open End Angles to 90 degrees.
- Updated the Bottom UVs to match the UVs of tops when using the From Side option of Wall Top Method.
- Added new Side Method for Walls to set UV of Second Side of walls to line up with the first side. The flow from one side to top to bottom will align if you set the Side Method to Wall Match Both Sides.
- Updated UI to disable the T/B Rotation spinner if the Wall Top Method is set to From Side.
- Fixed cutter object list not displaying cutter objects.
Version 1.3 (See Known Issues if Upgrading)
- Added Wall Mode and Wall Width values.
- Removed step spinner.
- Separated CorVex parameters into the following parameter blocks: Parameters, UV Controls, Material IDs and Cutters.
- Added Wall UV Tops selection for how to UV the top of walls. Default uses a global world space. The alternate method is to use the same UV as the first side of the wall block.
- Added Bake to Geometry button. When pressed, creates an Editable Poly snapshot of the CorVex object and hides the CorVex. If the Export as World Geometry is on, deactivates it and tags the clone to export.
- Added Material ID controls for wall ends and wall side 2.
- Added button to get spline bases from another CorVex.
- Added button to get properties from another CorVex.
- Added button to generate a multimaterial for the CorVex object.
- Added UV Side Method called Reset Each Face.
- Fixed Bug where SplineShape() objects were not used in mesh generation, even though they worked in 1.0.
- Negative Height now creates geoemtry with normals in the correct direction.
- Added new checkbox called Export as World Geometry. Used with the Wall Worm VMF Exporter.
- Added Spline Base button to Delete spline.
- Added Spline Base button to select all splines.
- New Spline pivots now align to CorVex position.
- Exposed the cutter objects in the UI. You can now set objects in the scene as cutting objects. See Known Issues above.
- Fixed some problems with the UVs on the top/bottom faces
- Added function to lock the map height/width aspect ratio
- Added ability to control UV scale and offset of the top/bottom independently of the sides.
- Simultaneously updated Wall Worm's VMF Exporter to fix a bug when exporting some CorVex objects.