Map2Curve v0.7 released

My dear mapping folk, version 0.7 of Map2Curve is now available.

Download

Feature Overview

If you want to read more about the changes and additions, head over to the 0.7 overview page.

New Main Features: RMF Export and Circle duplication

The 2 most important additions to the tool are the new ability to export to RMF format, which solves the limitations that come with the Goldsource MAP format, and the new carve function for brushes, which makes the creation of highly complex seamless curves possible.

The base principle of this construction method follows an article, that was first posted to the Sven Coop forums by Kirito in 2018.

Downside: Floating point coordinates

The biggest downside of this method also applies to the new M2C feature: floating point coordinates. Because of these it is usually a good idea to turn the generated curve into a solid entity like func_detail and enclose it with worldbrushes.
However it is also possible to use the generated curve as world (seals off the level). Whether this works or not depends on how well the compiler handle it.

Changelog

  • Added RMF export per default. Can be toggled with “rmf” 0/1.
  • Added carving for detail objects. Can be toggled with “d_carve” (0/1).
  • Added ability of custom origin brush and entity for detail objects. Either add an “ORIGIN”-textured brush or an info_target with name-keyvalue “ORIGIN” to a detail group.
  • Added random detail object group scaling withing limits. Can be set with “d_scale_rand” similar to other transformation commands:
    – d_scale_rand “1 0.5 2” (0/1 min max)
  • Added automatic assignment of any entity to a detail object group. Can be toggled with “d_autoassign” (0/1) and only works globally at the moment (for all curves at the same time).
  • Added flatcircle (0/1) command to make Pi circle flat instead of pointed. Original circle size is being maintained.
  • Added another bounding box type: Hollow box. Can be used with “bounds 2”.
  • Added a precise circle spin mode for detail objects. Can be toggled with “d_circlemode” (0/1).
  • Added vertex welding for carved brushes and fixing of “borderliner” vertex coordinates (e.g. 128.00002 = 128).
  • Added 3 beginner PDF tutorials to the tool archive.
  • Fixed a problem due to different vertex order of MAP files that were exported from J.A.C.K. editor. M2C would print invalid brush errors without apparent reason.

Map2Curve v0.6 released

In this release I focused on adding the overdue “intersecting” extrusion method, which essentially produces very precise results, compared to the so far available simple spline extrusion method.

A Goldsource level mainly generated with the new curve type “intersecting spline”
An interior scene generated with the new seamless texture mapping mode

There are a lot more smaller changes, some of which are important to know.
As usual you can get it from the known sites:

Download

See the v0.6 Overview for detailed information about this release.

Continue reading “Map2Curve v0.6 released”

Map2Curve v0.5 released

Hey there Goldsrcdiggers,

I’ve released the new version of my map generator Map2Curve.
The download mirrors have been updated accordingly.

Download Locations

See the version’s overview page for more detailed information about the new additions and changes.

In this release I added a bunch of important features that I wanted to have in there for a long time now. Let’s take a look at the main changes.

Continue reading “Map2Curve v0.5 released”

Map2Curve Update 0.5 Progression #4

Getting close to release: I more or less finished some remaining issues with the new feature (detail objects).

As you can see it is not a big problem to generate complex curved objects with a lot of details, while still being able to preserve some polygons. The last part is of course spoken relatively, since scenes like these will always consume more polygons than simpler ones and thus have to be used carefully.

Continue reading “Map2Curve Update 0.5 Progression #4”

Map2Curve Update 0.5 Progression #3

Proper Angle Rotation for Point-Entities

After weeks of annoying guesswork I was finally able to implement proper rotations for point entities. Now if you ask yourself “Isn’t it just like rotating a vertex in 3D?”. Well, not exactely. Let’s just say I now know a lot more about Euler angles and rotation matrices than before and I am “absolutely” sure that will be of help in my future life. Yaha.

Anyway, when including detail groups into a source map (loose objects that are not meant to be a part of the curve itself), their member entities can be automatically rotated both along the Pitch and Yaw axis, which means the objects will follow the curve entirely in direction and orientation. This can be helpful to generate specific scenes I can imagine.

Realistic scenes like the one I added.
You know. Realistic stuff like that.

I think I will be able to release version 0.5 in the next couple of weeks.

See you soon guys.

Map2Curve Update 0.5 Progression #2

Hey guys!
I am still working on the new feature, which will enable you to generate additional detail objects along curve objects.
I had a hard time figuring out a specific calculation method, that actually wasn’t even necessary in the end, so there went one or two weeks of depressing work.

Detail Groups

Pitch for Ramps
As you can see on the GIF I am including a pitch for ramps, which will make sense in some situations, where you want the detail object to actually follow the ramp completely. It won’t produce perfect alignments for every setup though.

Origin Point
Also at the moment the Origin of a detail object is its bounding box center point. Later I might include a way to use actual Origin brushes.

Creating Detail Objects
Detail objects are being created in the same MAP-file as the curve source objects. In order for Map2Curve to know which brush belongs to a detail object group, it has to be given a new Key and Value.
Currently it is done like this:

Key: m2c_dgroup
Value: CustomGroupName

A detail object, or rather a detail object group, can consist of multiple different entities. Each one needs the same group name ofc.

What about Point Entities?
I am on it.

Entity angles and numeration
I am aiming at automatically generating rotations for point and solid entities, that use the “angles”-key (NPCs, weapons, light_spot, func_door_rotating, etc.).
Also I want add a function to number entities consecutively (button01,button02,…). For this the tool will look for keys like “target” and “targetname”. This makes generation of functional setups – that depend on individual targetnames – a lot easier.

Map2Curve Update 0.5 Progression

Hey people,
a little preview on the next feature for version 0.5 of Map2Curve:
Detail objects.

Detail objects can be anything that is not meant to be turned into a curve, but is still supposed to be aligned along a curve object.
This will include point entities, too, as well as entire solid brush objects, for example lights, cross beams, ropes, etc. Anything you might want to “decorate” your curve object with.

Of course there will be certain limitations again, but this is at least meant to be a huge relief for certain mapping tasks. Primarily it eliminates the need for manually doing it by using “Paste Special” in an Editor.

Map2Curve v0.4 released

Hey ppl, this update was cooking for quite a long time now.

I’ve added many little things I wanted to have in there before I continue to work on the remaining big features: Precise path extrusion, completely seamless textures and detail support).

Since the additions are so versatile and working on the documentation gives me a headache, I will try to cover all of them on an additional page.
So, for a detailed overview of this version, go here.

Download

Features

Transformations
Rot, Move and Scale for source and final objects.

Group based texture shifts
Entity groups are now being respected for horizontal texture shift calculation.

Transitions
A way to control the properties of first and last curve brushes, to be able to combine different curves more easily.

Complex Triangulation
Any brush can be triangulated now. No restrictions anymore.

Export Range
How many sections of the curve object are to be exported. Has an important impact on smooth ramp generation.

Bounding Boxes
Clean bounding boxes for easier handling curves in an editor.

Skip NULL Brushes
Wenn using complex triangulation, occuring NULL brushes can be skipped during export.

Version 0.4 Changelog

  1. Added custom file paths for input and output files.
  2. Added command “append” (0/1) to add newly generated objects to existing files.
  3. Added simple transformations, for final and source object.
  4. Added bounding boxes (0/1; active per default).
  5. Added commands “range_start” and “range_end” (0-100) that control how much of the generated curve object will be exported finally.
  6. Added “transit_tri” and “transit_round” (0/1) to enable control over the first and last brush of a curve and their respective cut-faces.
  7. Added commands “gaps” (0/1) and “gaplen”, to create intermediate sections and control their length.
  8. Overhaul of brush triangulation. Added complex triangulation.
  9. Added “skipnull” (0/1) command to ignore NULL brushes on file export.
  10. Added the shift mode “per group texture” (shift 5) that respects the whole solid entity when calculating horizontal texture shifts.

Map2Curve v0.3 released

Hey there people.

It is done. I have updated the download mirrors according to the new version of Map2Curve:

I have accomplished all of what I was aiming for in this release, including the first version of the path extrusion feature and a complete overhaul of the texture alignment on ramps, which, as I posted recently, now works like the UV Lock feature in JACK.

Next thing I will do is probably creating a few video tutorials and updating the documentation.

As for the rest…

Changelog:

  • New Feature: Added path extrusion
  • New Feature: Added World-to-Face alignment conversion on map load
  • Overhaul: Complete overhaul of the texture alignment for ramps
  • New settings: p_reverse, p_cornerfix, p_split, ramptex
  • Added triangulation for 5 sided brushes
  • Triangulation now default for ramp generation
  • Fixed minor texture misalignment issues

Future planned features:

  • Handling of fixed level components like smaller detail objects (lamps, guard rails) or even whole level parts. At the moment you would achieve those by using special paste in an editor like JACK
  • “Real” path extrusion that works by intersecting lines, like you would usually have it in 3D software.