PDA

View Full Version : TRON Legacy ribbons



jbrookes
02-23-2018, 01:33 PM
Anyone know a good method for generating the curving ribbons as seen in TRON Legacy?

It could be for either LW2015 or 2018.

The straight ribbons from the 1982 film are easy enough. The curved ones are a bit more challenging.

I'm looking for both the effect of the ribbon being created as well as its tail gradually disappearing over time. Sort of like that Double Back game on the old Tandy Color Computer.

Thoughts?

Sensei
02-23-2018, 02:02 PM
Make spline. Quantize it to evenly spaced control points using Spline Density (http://easyspline.trueart.eu). Extrude it in Y axis.

Then in Layout in Surface Editor, take Spot Info > World Position, multiply vector by 1,0,1 to remove Y axis,
calculate distance from this vector to Item Info > World Position (like above ignore Y axis),
connect to Gradient, and output from it to Transparency.
When Gradient key is white, ribbon will be invisible. When it's black, ribbon will be visible.

Convert spline to Motion Path.
Run null to move on it.
Parent vehicle to null.

jbrookes
02-23-2018, 04:04 PM
Make spline. Quantize it to evenly spaced control points using Spline Density (http://easyspline.trueart.eu). Extrude it in Y axis.

Then in Layout in Surface Editor, take Spot Info > World Position, multiply vector by 1,0,1 to remove Y axis,
calculate distance from this vector to Item Info > World Position (like above ignore Y axis),
connect to Gradient, and output from it to Transparency.
When Gradient key is white, ribbon will be invisible. When it's black, ribbon will be visible.

Convert spline to Motion Path.
Run null to move on it.
Parent vehicle to null.

Thanks!

I'll do that soon (once I get back to my workstation).

jbrookes
02-24-2018, 02:57 AM
Okay, I tested it out and I'm getting results.

I made a ribbon of approximately 10 meters in length and stuck the left-most end of it on the origin and saved it out of Modeler.

I'll write what I did as a procedure for anyone who wants to try this (I used LW 2015.3):

- Open Surface Editor
- Expand the object's name
- Click on its surface name
- Check "Double Sided"
- Click the check box next to [Edit Nodes]
- Click [Edit Nodes]
- Type Spot
- Double-click [Spot Info]
- Type Mult
- Under Vector, double-click [Multiply]
- Double-click the Multiply node and for A, set X to 1, Y to zero, and Z to 1
- Then for B, set X to 2, Y to zero, and Z to 2
- Type Item
- Double-click [Item Info]
- Connect Spot Info's "World Spot" to Multiply's input A.
- Connect Item Info's "World Position" to Multiply's input B.
- Type Grad and double-click [Gradient]
- Double-click the Gradient node
- Create a second key (for two keys total).
- Check "Show Output" (the inputs for the keys will appear on the Gradient node).
- Connect Gradient's Alpha output to the Surface node's Transparency input.
- Connect Multiply's "Result" into Gradient's "Key (2) Alpha"
- To the right of "Start" enter -12
- For "End", enter 0 (zero)
- For "Position", enter zero (or drag key 2 to the bottom)
- Slide Key 1 up and down to see the changes to the ribbon's transparency along its length.


I guess I could have worked with positive gradient numbers if I'd placed the other end of the ribbon at the origin. Right now, the ribbon extends in a sort of zig-zag pattern into the -X part of the grid.

One thing I'm finding is that the gradient transparency travels along the X axis (since I have Input set to [X Coordinate]. The problem is that for a zig-zag shape like this one, it just washes over the ribbon from the origin to +X. What I was hoping for was something that can 'reveal' or dissolve the ribbon while following its curve. Is there perhaps a node that might be able to follow something perpendicular to the polygon normals? Since this is a ribbon, that would (in theory) travel the length of the ribbon while always being oriented to the curve's head or tail.

140291

Sensei
02-24-2018, 05:33 AM
I realized there is another way to do it:
assign weight to each ribbon "column" pair (of points), 1,2,3,4,5,...
Then in Layout have equation:

TrueArt's Node Library > Render Info > Time add to Weight node, then to Math > Scalar > Logic node, and use greater or less than mode. Output from it to Transparency.

erikals
02-24-2018, 10:38 AM
Inertia can also be of use >
http://forums.newtek.com/showthread.php?130186-Light-trails!!!&p=1267057&viewfull=1#post1267057


Okay, I tested it out and I'm getting results.
nice technique, not sure about the X coor.
if the gradient could use a U/V coordinate. i've no idea how to go about it.
i noticed DP has an UV oPos node, could be of use? >
http://forums.newtek.com/showthread.php?85719-Fun-with-Nodes-UV-morphing

RPSchmidt
02-24-2018, 07:18 PM
When I originally saw this post, I was thinking use a follower null to affect the opacity of the ribbon; use the same motion on the null and just delay it the distance behind the vehicle where you want the ribbon exposed.

Since null is following the same path, the transparency would allow for the zig zags.

Didn't give it a try though

gar26lw
02-24-2018, 07:34 PM
@sensei cool stuff, thanks

jbrookes
02-24-2018, 08:37 PM
It's interesting that you mention this because this morning an image popped into my head of the typical ribbon that you see when you use the Spline Control feature. That ribbon and the way things follow the path set out by the nulls looks pretty much exactly like the ribbons in the film.

I'm guessing that the scene might involve the ribbon object, spline control for the ribbon to travel along (perhaps a bone chain to deform a straight segmented ribbon), and an additional follower/effector null as something to affect surface transparency (as you mentioned). Then a node setup to set an appropriate range for the transparency -- specific to the ribbon object's surface (along with maybe a gradient to give a gradual falloff to the transparency).

That and the other ideas presented here are worth trying.

erikals
02-24-2018, 09:14 PM
late night test >

note, only an Inertia test, not the transparency


https://www.youtube.com/watch?v=8Ibb037pGd0

jbrookes
02-25-2018, 12:30 AM
I really like how you got the extended tail working (and how it then returns to normal when the object stops).

So far all I have is a fixed-length ribbon zipping through space being deformed by bones along a spline-control path. After seeing your video (thanks by the way) I tried applying inertia to the ribbon, but that makes the object stay fixed in space and no longer influenced by bones or the spline control null. So for tails like what you have, I might have to switch away from bones and go with something more like what you're doing.

I've also yet to figure out a good approach to transparency.

jbrookes
02-25-2018, 01:18 AM
What happens if you replace your object with one that has 100 segments and crank the Inertia Lag up to 12000 ?

I tried that on my machine and had two issues: 1) 70% of the tail past the beginning of the tail didn't render (even though it shows up in wireframe view) and 2) there was a long delay between pivot point moving and the actual object moving.

Interestingly, when I went back to your original scene (with original object) and increased Inertia Lag to 12000, the entire object rendered and there was no lag between pivot and object.

I suppose I should mention that the 100-segment object that I replaced it with was totally flat (it only had an X and Z axis).

erikals
02-25-2018, 05:33 AM
tested this,
X/Z axis only
320 divisions
12000 lag


worked out pretty good.
not sure why it doesn't render, bug perhaps ? (running 11.6 PC over here)

make sure you have,
-the position of the divided object in the correct position/heading in modeler
-align to path under motion options
-a proper weightmap (starting in one end, ending in the other)


inertia does not work with endomorphs / displacement / bones, as far as i can tell
...it seems it doesn't work with any kind of deformer
...though might work with displacement if it is .mdd scanned, for then to have displacement applied

erikals
02-25-2018, 05:39 AM
a good approach to transparency.
i think mapping an UV image onto the object should work

update: test >

https://www.youtube.com/watch?v=scBZeSXLTSw

jbrookes
02-25-2018, 06:35 PM
Last night I'd tried chasing the object with a null (but the null chases the actual object and not its tail -- of course). So that didn't work. Then I was about to try instancing.

However, what you have there is pretty awesome. I set the last frame to 1500 and noted that it chases its tail between around frame 900 to 1470. That with general surface transparency is probably enough for a neat effect.

Thanks very much for doing this. I think it's workable for sure. I wonder how far I can push the number of segments. That combined with smoothing has definite possibilities...

erikals
02-25-2018, 06:52 PM
happy to help  :)

there are other ways, like using for example dynamics i guess, but inertia should work for several scenarios.  :hey:

jbrookes
02-25-2018, 07:04 PM
Thanks everyone.

Sensei, you are the node master. Did you ever use the Grasshopper node editor back in the day?

RPSchmidt
02-26-2018, 06:52 AM
Last night I'd tried chasing the object with a null (but the null chases the actual object and not its tail -- of course). So that didn't work. Then I was about to try instancing.

However, what you have there is pretty awesome. I set the last frame to 1500 and noted that it chases its tail between around frame 900 to 1470. That with general surface transparency is probably enough for a neat effect.

Thanks very much for doing this. I think it's workable for sure. I wonder how far I can push the number of segments. That combined with smoothing has definite possibilities...

My concept was more to use the same keyframe movement as your tron cycle object on the null, so that it follows the exact path with precision. That way, the transparency is actually following the path, not the object.

But it sounds like you got some great ideas and input from the the other folks :thumbsup:

I was also wondering what would happen if you copied a portion of the back polygons of your tron cycle object, parented it to the cycle, and made that a light. I wonder how much tail you could achieve with blurring. Hmm.

jbrookes
02-26-2018, 01:29 PM
I think the idea of a null following the tail's end would probably work for the first approach I used (or pretty much anything that doesn't use inertia). I sort of tried the null approach for the bones/spline control idea. But I then realized that I'd need a super-long ribbon object. I may go back and continue with that and the null at some point.

Motion blur is an idea too. I've never really pushed motion blur very far (and it's been ages). I may have to try that too. Thanks!

All this light trail stuff had lots of different possibilities -- from TRON effects to things like the opening credits to the 1978 Superman film. Actually, one effect I'd love to figure out how to do in 3D is the warp trails from the 1979 Star Trek movie. Apparently it's a very tough optical effect to simulate.