
A Maya user was trying to create a curling ribbon with a paint effects brush. He wanted to know if it was possible to control the twist rate along the ribbon to make some areas flat while other parts were twisted. Unfortunately the paint effects brush only has a global "Twist Rate" attribute with no control along the stroke. However there is a simple trick for doing this that uses the curl ramp on a hair system, while also disabling the hair's dynamics evaluation.
1. Create a curve. (MENU "Create: Cv Curve Tool", drop 6 or so points on the ground and hit return)
2. MENU "Hair: Make Selected Curves Dynamic"
In the option box turn off "exact shape match"
3. MENU "Hair: Assign Paint Effects Brush To Hair"
4. Delete "hairSystem1OutputCurves" (select in the outliner then hit the delete key)
The output is paint effects so we don't need the output curve.
5. On pfxHairShape1 set:
drawAsMesh = ON
6. On the paint effects brush ("brush2") set
brushType = Mesh
globalScale = 1
"Brush Prorfile" flatness1 = 1.0
"Shading" color1 = white
"Illumination" illuminated = ON
7. On the hair system ("hairSystemShape1") set:
Simulation Method = "Static"
Hair Width = 0.1
Sub Segments = 10
Also delete the far right entry on the hairWidthScale ramp so it no longer tapers at the end.
8. Edit the hair system Clump Curl ramp to set the amount of twist along the length of the ribbon. A value of 0.5 is flat. Type in values greater than 1 or less than 0 into "Selected Value" if you wish to have very tight curls. You can edit and animate the position of the cvs on the original curve if desired. Note that the interpolation performed for the sub segments is "hermite and may not match the interpolation of your original curve well. If you wish to match it better you can make the hairsystem sub segments 1 and increase the sample density on the follicle node instead.
Thats it. If you don't want to render the ribbon with paint effects you can simply do MENU "Modify: Convert: Paint Effects to Polygons".
parentToSurface.mel
nClothBook.ma
dynamicFollow.mel
cameraFollow.mel
cameraFollowScene.ma
lightOcclusion.ma
fireball.ma
itsSlinky.ma
TunShu_BindClothSkin.zip
confettiFall.mb
simpleConfetti.ma
roundConfetti.ma
partyStreamers.ma
waterTank.ma
nClothWater2.ma
nClothWater.ma
waterPlayground.ma
sunsetLeaf.zip
oakBigLeaf.mel + oakBigLeaf.mel.icon
ribbonTwist.ma
Great tutorial as always - would it be possible to animate the ribbon and twist at certain points along the path?
Hello, I was the one with the original pfx twisting problem you mentioned in your ribbon with a twist control. I like this workaround however one thing is still puzzleing to me. When I base the pfx off the hair system I loose the ability to stroke the pfx with the end bounds attributes. Now with the pfxHair I can still taper the stroke with hair width scale. widget and use the gap size and gap spacing under the brush attributes to “reveal” the stroke, but one problem arises with this. That being if the stroke is tapered the taper does not follow the leading edge. the taper is only revealed at the end of the stroke. I could use the thinning attribute in the hair, but this seems to change the shape of the taper as it grows. any way to stroke the hair with a taper?
The attribute is “Strength Map” (not strength) on the nComponent node. In the attribute editor this should have a blank edit cell with a checker box to the right.
Hi duncan,
For the life of me I cant find the checkered texture box next to the strngth attr in the zipper tutorial.I’m using 8.5 nCloth. Am I missing something?
Love the ribbon trck though!
nice trick!
thnx a lot.




