mcjTransport

Introduction

This script for Daz Studio will let you create tubular objects that follow curves you create by animating a marker.

The French horn shown above was created using this script.

History

September 24th 2016 1:31 am - the new Ds3/Ds4 version will switch the currently active 3DViewport preview mode to a non-iRay render style,

without this, we were unable to find a solution to deep-DazStudio freezes that occurred shortly after loading the zero tube

Oct 22 2015, 11:28 am - v2.2 because v2.1 had a big bug

Oct 22 2015, 1:00 am - v2.1 better tube-rings orientation

Oct 21 2015, 4:49 am - Release of version 2.0 ( which is actually the 5th version )

sept 24 2012 9 pm Version for DS1 and DS2

sept 24 2012 early morn. Version 3 limited the maximum segments to 4096 to prevent accidents

sept 23 2012 9:15pm Version 2

sept 23 2012 9pm Version 1

What's new in V 2.0

i fixed the Z-Steer function which was not working at all ( unless you had an early release )

new : Flip normals, if your tubes are rendered all-black, use this option so the 3Deligh renderer will know the outside is the outside. In poser, if your tube shows up bizarrely transparent, it also means the normals need to be flipped - Also, if 3delight displacement maps "grow" on the wrong side of the facets ... flip yer normals

Mirror UVs

FlipUVs

Swap U and Vs

those 3 options let you flip and turn the texture mapping , for example, if you want the insides of a tube display non-mirrored text

and that's aboutit

Note: there will most probably be a version 3 which make the Z-Steer option easier to use

version 3 will also make better bends ( substantial improvement that you dont want to miss )

Installation

The script is in the zip package found at the bottom of this page.

unzip it in your daz content folder, typically C:\Program Files\DAZ\Studio\content\

once installed, it will appear in your content library, under Studio / Scripts / mcasual

ToDo : A copy of this web page is also downloadable in a zip package.

since some people have trouble downloading from the bottom of the page

CLICK HERE to download the package mcjTransport.zip

Creating a path

By animating the position of an object in the scene, we create a path.

example:

We create a primitive-sphere, 16 segments, 32 sides, diameter 3cm

For convenience sake, we create a primitive plane, ( Size: 1 meter, Divisions 2 ) and apply to it, the blueprint of our intended path.

We set the view-camera to Top View

Starting at frame 0, we repeatedly move the red ball along the curve while and keyframe it using the keyframing button

Once we're done we know the path has 44 segments

so we must tell mcjTransport to build a 44-segment tube

Building the tube

Select your animated marker

Launch mcjTransport, which should be located in your studio/scripts/mcasual folder

in the "Zero Tube Creation" section, specify how many sides your tube will have, typically between 4 and 32.

The number of segments must fit the path's number of segments, so in the case of our example, 44.

Click the "Build" button and there you go, you created a tube!

But for now, the tube has a size of zero ( hence the name ZeroTube ) and is not visible.

Click the "Update Tube" button

the Zero tube will be "inflated". We're done !

Understanding the tube size

The diameter of the tube is governed by the Scaling of the animated marker and by mcjTransport's "Scale factor" slider.

in our example, the ball was not scaled up or down, so it's scale was still 100%, and mcjTransport's "Scale factor" was 1

so the resulting tube has a radius of 1cm.

If we want the tube to have a diameter of 3cm, we set mcjTransport's "Scale factor" to 1.5, and click the "Update Tube" button.

Next to the scale factor slider is a drop down list that lets you select which one of the marker's "XScale, YScale ZScale" sliders further influences the tube scale.

Using an mcjSphere as the animated marker

As you can see above, the primitive-spheres produced by Studio have the disadvantage of having their origins at the base of the sphere instead of having it at the center of the sphere. In some cases this can make the creation of the paths non-intuitive.

We suggest you use an mcjSphere prop. or make one. in fact, it's a normal primitive sphere that was exported and re-imported in Studio.

Tweaking the tube shape

Close mcjTransport.

adjust you animated marker's path

In the 3D Viewport, or in the Scene tab, select the marker (sphere), then while holding down the CTRL key, select the ZeroTube

it's very important to select only those 2 nodes, in that order

launch mcjTransport

click the "Update Tube" button.

Tubes with Varying diameters

If you also animate the scale of the marker then, the diameter of the tube for this keyframe will vary accordingly.

By default, the "Use Z-Scale" option is selected, this means you can use the marker's "Z Scale"

parameter to adjust the diameter of the tube at a given keyframe.

If you work in side or front view, you will want to change this to "Use Y-Scale".

in the image below, the marker was moving in straight line, but its scaled was animated

we obtained the musical instrument known as an AnnoyAnnoyZela

Using custom profiles

By default the tubes have the number of sides you selected using the "Sides" slider of the "Zero Tube Creation" section.

and the tubes have a circular profile ( also known as 'section' ).

The "Profile" section lets you re-use profiles created using the scripts named mcjLathe and mcjSuperlathe.

mcjTransport can also produce custom profiles ( see below )

Example, i created a gear-shaped profile and saved it as gearme.txt

in mcjTransport's "Profile" section, i check-mark the "Use Curve File" check-box

i browse to and select my gearme.txt file.

a popup message appears

since the ZeroTube i created earlier has only 6 sides, but the newly loaded profile calls for 128 sides

  • exit mcjTransport
  • delete the ZeroTube
  • re-select the animated marker
  • launch mcjTransport
  • in the "ZeroTube creation" section, i change 'sides' to 128;
  • and press the "Build" button

( note that mcjTransport automatically selected the new ZeroTube )

press the "Update Tube" button

and we obtain a sort of baroque leg

Making rings by welding tube ends

The check-box labeled 'Closed Path" in the 'Path' section lets you crate rings

basically what it does is to weld the first ring/profile of the tube with the last one.

The position of the last ring is ignored, the position of the first ring is used

This is most useful when dealing with subdivided objects, for example:

Better rings with the "use C spline" checkbox

By default mcjTransport uses Daz Studio's animation curves when forming the tube.

In some cases this will result in hard edges near the ring joint ( figure A )

If you check-mark the "use C Spline" button, mcjTransport will use its own animation curve ( a Catmull-Rom spline ) to fix this ( figure B ).

Path / Weld Bottom , Weld Top : Adding caps at the tube ends

When you create the ZeroTubes, these two checkboxes let you cap the tube ends.

Path / Load 2D

Previously, we saw we can load a curve created using mcjLathe, mcjSuperLathe or mcjTransport and use it as the tube's profile.

Here the curve will be applied to your animated marker

Old programs like mcjLathe produced flat curves, say, like curves drawn on a sheet of paper.

so your animated markers will move on a floor or on a wall.

the path is rescaled to a 1 meter square domain.

tip : you can rescale a path by parenting the marker to a null, then re-scaling the null

The 'Path' section also includes a drop-down menu which lets you specify if the 2D path will run

over the floor ( "2D path : Top View" ) or run over a wall ( "2D path : Left View", "2D path : Front View" )

Path / Load 3D

Lets you load a 3D marker path saved by mcjTransport

this includes scaling

Save Path : saving an animated marker path for use in mcjSuperLathe and mcjTransport

The 'Save Path' button will save the marker's animation ( the path ) in a file.

Both the 2D curve and the 3D curve are saved

These curves can be used by mcjLathe, mcjSuperLathe and mcjTransport.

In mcjTransport's case, they can be used as a profile or as a path.

The Torsion Section

mcjTranport's name comes from the method named "parallel transport", the script makes efforts to keep the tube non-twisted.

In the 'torsion section you can add controlled twisting.

The Twist slider sets in degrees the initial amount of twist. In the example shown below, we set it to 90 degrees

The Turns slider sets the amount ( in number of turns ) of spin added over the length of the tube. In the example shown below, 3 turns .

When the "Z-Rot Steering" is check marked, the "ZRotation" parameter of your marker is added to the tube's torsion.

In the example below, it was used to tilt the road

License

//===================================================================

// by mCasual/Jacques

//===================================================================

// Copyright (c) <2012> <mCasual/Jacques>

// Permission is hereby granted, free of charge, to any person

// obtaining a copy of this software and associated documentation

// files (the "Software"), use the software and copy the source code.

//

// We do not allow selling or reselling of the unmodified software.

//

// The above copyright notice and this permission notice shall be

// included in all copies or substantial portions of the Software.

//

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES

// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT

// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,

// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR

// OTHER DEALINGS IN THE SOFTWARE.

//===================================================================