mcjPathTube - DS1, 2, 3, 4

══════════════════

Introduction

══════════════════

usually when i want to visualize a path in daz studio i use the mcjTracePath script and the mcjTracer plugin

when i want to make sinuous tubes i use mcjRibbons or mcjTransport

there’s a few other of my scripts which let you create/fashion tubes

notably https://sites.google.com/site/mcasualsdazscripts3/mcjbuildera

this script here lets you make a simple tube from a node path

( simple but very well UV mapped )

you select a node

set the Daz studio Timeline play-range to the start and end of your moving node’s trip

set the number of sides for your tube

press a button and bam a sinuous tube that precisely follows your node’s path appears

caveat is that, unless i fix the maths, this only works well for moderately horizontal paths

( because the transport frame relies on the (0,1,0) vector and the node-movement vector

WARNING : In very rare circumstances this script may produce a corrupt .obj file

and when Daz Studio will attempt to load that file IT WILL CRASH,

so save your work before using this script

══════════════════

History

══════════════════

July 10th 2019 12:30 PM - V6 fixed the issue wherein vertically starting tubes didn't work, DS1,2,3,4

May 8th 2015 7:24PM V5 multi-tube support and per-tube material

May 7th 2015 11PM release

══════════════════

Installation

══════════════════

The zip package is found at the bottom of this page

unzip it in your daz content folder, typically

C:\program files\daz\studio\content\

or

C:\Users\YOURNAME\Documents\DAZ 3D\Studio\My Library

once installed the prop will appear in your library under

content/props/mcasual

or

My Library/Props/mCasual

══════════════════

Use

══════════════════

Select a moving object in the scene, in my example i animated a red ball over a 30 frames time range

Set the Daz Studio Timeline Play-range to the beginning and end of your moving object's journey

Click the "do it" button

Give a location and filename for the object

Warning: If the location is in Daz Studio's temp folder, this file will be destroyed when you exit Daz Studio

After creating the tube .obj file, mcjPathTube will load it in the scene

The object once loaded in the scene .... is in the scene and wont disappear just because the file it comes from is destroyed

warning all this works fine for almost-horizontal paths but if your paths are more vertical, please try the other scripts mentioned in the introduction

WARNING : In very rare circumstances this script may produce a corrupt .obj file

and when Daz Studio will attempt to load that file IT WILL CRASH,

so save your work before using this script

══════════════════

Options

══════════════════

Twist

This setting is an angle in degrees. When you create a 4-sided tube, the Tube's outline is more like a diamond shape, by twisting it 45 degrees you obtain a grounded square

Mirror UVU

flips the UV Map layout along the Horizontal axis

Mirror UVV

flips the UV Map layout along the Vertical axis

Invert Normals

If you use a shader and the renders show the tube as all pitch-black, it's because the tube happened to be built inside-out ( normals pointing inward )

by inverting the normals you are telling the shader "the exterior of the tube is ..... outside the tube

If you experience problems with Displacement maps or Bump maps, it may also be due to this issue

Also for mcjElevale )

══════════════════

Splash

══════════════════

If you are nerdy enough to be unafraid to run it, here's the script i wrote/used to create the 32 animated nodes which were then used to create the static spaghetti monster

note that the gravity is set to 4G to enhamce the effect

the script creates and animates 32 null nodes over a 100 frames timerange

splish.dsa

var tick = Scene.getTimeStep();

var a = -4000; //10m/s2

for( var i = 0; i < 32; i++ )

{

var node = Scene.findNodeByLabel( "p" + i );

if( !node )

{

node = new DzNode();

node.name = "p" + i

Scene.addNode( node );

}

var x = 2 * ( Math.random() ) - 1;

var z = 2 * ( Math.random() ) - 1;

var y = Math.random();

var v = new DzVec3( x*3, y*500, z*3 );

var pos = new DzVec3( 0, 0, 0 );

for( var fr = 0; fr < 100; fr++ )

{

var t = fr / tick;

Scene.setFrame( fr );

var dy = v.y * t + 0.5 * a * t * t

pos = pos.add( v );

pos.y = dy

node.setWSPos( pos );

}

}

══════════════════

License

══════════════════

mcjPathTube

by mCasual/Jacques

You can use this software freely for personal or commercial use.

You may not resell, sub-license or rent this software in any way.

You may credit this software to mCasual/Jacques

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,

INCLUDING "wasBUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR

PURPOSE AND NON-INFRINGEMENT. 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.