Import - Splines tab

The Splines options tab can be found at the bottom of the .Obj Import dialog...

...this tab actually controls how 'line segment' records from the .obj file are treated. Line Segments in a .obj file are similar to polygons, in that they are a list of connected vertices, except that polygons are always closed (the last vertex in the list connects to the first to enclose the polygon) and Line Segments are open-ended (although there is an option to close them).

With the free Riptide, the vertices for line segments are loaded into the Mesh Object that's created in C4D, but they are not connected by anything. With Riptide Pro, you now have the option to convert Line Segments into one or more Spline Objects within C4D, with various levels of grouping (to keep things tidy). The individual options are described below.

Index:

Import Line Segs:

This option determines whether any Line Segments found in the .obj file are read in or not. If this option is disabled, then the vertices that make up the segments are still loaded and added to the mesh*, but no Splines (or Ngons) are created.

[*NOTE: As of v2.6, these unused vertices are no longer retained in the resulting mesh - but there are now options to generate a separate, point-only mesh object made up of these vertices.]


..As Ngons:

This option allows you to convert any line segments into Ngons. When this option is enabled, the last vertex is connected to the first and a regular Ngon is created for each line segment.


..As Splines:

This option allows you to convert any line segments into (Linear) Spline Object(s) within C4D.

Note that not all .obj files will have any line segments in it, though they are sometimes used/written by apps to represent strands of hair or other objects. For example, Poser will write out line segments for it's dynamic hair strands (possibly just the guide hairs). Once you have these as splines within C4D, it's fairly straight-forward to convert them to guide hair splines for C4D's Hair module. The splines can be split and grouped (within the Object Manager) in various ways - see the appropriate sections below for details.


....Closed:

If you are converting the line segments into Spline Objects (as opposed to Ngons), this option allows you to set the 'Closed' option on those splines, as they are created (you could always do this within C4D after importing, but that may not be practical if there are many splines).


Spline Splitting Options:

This section of options determines how the line segments within the file are 'split' into one or more C4D Spline Object(s). Your choice will likely depend on just how many line segments there are (there might be hundreds or even thousands, if it's hair, for example), as well as how you intend to use them. Also note that if no Object records exist in the file (for the Spline Per Object option) or no Group records exist (for the Spline Per Group option), a 'default' is used, so you could still end up with a Single (C4D) Spline Object, with all of the splines in it.


Single Spline Object:

This option will lump any/all line segments into a single Spline Object within Cinema 4D. The individual line segments still have separate start and end points, but they will be disconnected spline segments, witin a single Spline Object.


Spline Per Object:

When this option is set, the line segments will be converted into a Spline Object per each 'Object' record found in the .obj file*. Note that not all .obj files will have Object records (or they may all be within the same Object) - in which case, a 'default' Object record is created by the parsor and you would essentually end up with the same thing you'd get with the Single Spline Object option.

(* It's unfortunate that the word 'Object' is used in so many different contexts, but that's the proper term in each case - sorry for any confusion)


Spline Per Group:

When this option is set, the line segments will be converted into a Spline Object per each 'Group' record found in the .obj file*. Note that not all .obj files will have Group records (or they may all be within the same Group) - in which case, a 'default' Group record is created by the parsor and you would essentually end up with the same thing you'd get with the Single Spline Object option.

(* Poser will export the 'hair growth groups' as Group records, so "Spline Per Group" may be a good option in that case).


Spline Per Line Seg:

When this option is set, the line segments will be converted into a Spline Object for every line segment record found in the .obj file. Note that this could be hundreds or even thousands of new Spline Objects (if they represented strands of hair, for example), so use this option with caution. If you do use this option, I highly recommend that you set the highest level of Spline Grouping, to help you manage them.


Spline Grouping Options:

This set of options determines how the Spline Objects will be grouped within the Object Manager in C4D - for organizational puposes. Instead of giving each option it's own documentation, they will all be described in this section...

This set of options works somewhat differently than the other multiple-choice type options of this plugin - you can think of them as a progression of lower-to-higher levels of grouping. The lowest level is listed first - 'Splines'. By default, a 'Splines' Null Object will always be created (assuming any splines at all are created - even just a single spline) and any Spline Objects created will be placed hierarchically below that 'Splines' Null Object in the Object Manager.

The next level of organization is by 'Object' record in the .obj file. Again, these don't always exist, but if they do, additional Null Objects for each Object record will be created and inserted just below the 'Splines' object. The Spline Object(s) that belonged to each Object record in the .obj file would then be inserted in the appropriate branch.

The next level of organization is by 'Group' record in the .obj file. Again, these don't always exist, but if they do, additional Null Objects for each Group record will be created and inserted just below the appropriate 'Object' level Null Objects. The Spline Object(s) that belong to each Group record in the .obj file would then be inserted in the appropriate branch.

The above may be easier to follow with a sample image...

...the above image is the result of loading in a sample test file, with the highest level of splitting (Spline Per Line Seg) and highest level of Grouping enabled (....By Group). The Mesh Splitting option "Split by Group" was also enabled. The file itself was named "dynhair_test3" and it had:

  • 2 'Object' records ("Mesh1" and "Mesh3").
  • the "Mesh1" object had a single 'Group' record in it ("Hair_1")
  • the "Hair_1" group had 9 line segments (converted to "Spline0" through "Spline8"), along with some polygons (the "Hair_1" polygonal Mesh Object you see at the bottom).
  • the "Mesh3" object had 2 'Group' records in it ("Hair_2" and "Newgroup")
  • the "Hair_2" group had 3 line segments (converted to "Spline0" through "Spline2"), along with some polygons (the "Hair_2" polygonal Mesh Object you see at the bottom).
  • the "Newgroup" group had 6 line segments (converted to "Spline3" through "Spline8"), but did not have any polygons.

...you might have to study that a while for it to make sense, but basically the individual splines are grouped by 'Group' Null objects and the groups are then grouped by 'Object' Null objects and the objects are all under the initial 'Splines' Null object*.

Obviously this was just a very simple test file with less than 20 total line segments. If you had hundreds or thousands of line segments in the file, you probably don't want a Spline Object for every line segment. So what may not be so apparent at first glance is that if you are splitting the splines by group, then you'd lose that level of grouping... those 'group splines' would then just be under the 'Object' nulls (looking at the above image again, all the "SplineX" objects would go away and the Group level 'Null' objects would become 'Spline' objects, that contained all the line segments within that group).

(* Note that with Riptide Pro, any time more than one new object is created in Cinema 4D (whether it's multiple mesh objects or spline objects, or some combination of both), a top-level "<objfilename>" Null Object is also created to help organize things).