ZBrushCentral

Adding Notes to ZScripts

Well, as you know Pixologic now has the ZScript library up and running with a standing invitation for people to submit new scripts. Also, a lot of scripts are starting to appear here at ZBC. Since there seems to be a bit of confusion for how to add notes into a script to turn it from a recording into a tutorial, I thought I’d take a little time to give ya’ll the nuts and bolts of it.

The bottom line is that it’s almost too easy to do.

The basic command is:

[Note,“This is the text of the note.”,Command:Arrow,Timing]

Here’s the breakdown:
Note – required. Tells the computer that it’s a note, which is the grey box.
“Text Section” – Whatever you put in here will appear within the grey box, exactly as you’ve written it. The quotation marks tell the computer that it’s a formatted string. You are limited to 255 characters.
Command:Arrow – Any interface item that you name here will be pointed to by the note. For example,
Tool: – This points to the entire Tool palette
Tool:Modifiers: – This points to the Tool modifiers menu
Tool:Modifiers:Selection:Alp – This points to the Mask from Alpha button
For the first two above, you see that they end with a colon (":"). This tells the computer that you are referring to a menu group rather than a specific item.
Timing – This tells what to attach the note to. This is useful for creating a single note with multiple arrows, or for creating a long note of more than 255 characters.

Here’s an example:

[Note,Material:Modifiers:Transparency,-1]
[Note,“This note will point to the Transparency slider in the Materials menu and to the entire Tool palette.”,Tool:]

The first note has no text, but only a pointer and a timer cueing the note to go off with the next note (thanks to the “-1”). Notice that you can leave variables off of the end of the Note command, but if you leave anything out of the middle you still have to insert commas with nothing between them to show that the variable is blank. The second note actually contains the text, along with another pointer to the Tool palette.

Another example:

[Note,“This is going to be a really long note with lots of stuff to be said in it. I know that it is going to exceed the maximum limit of 255 characters.”,-1]
[Note,“As a result, I am breaking it up into two separate notes. But thanks to the timing commands it will tie them all together into one note when it plays the script.”,-1]
[Note,“As you can see, you can daisy chain notes together, one after the other, by just continuing to add ‘-1’ onto all but the last one.”]

The nice thing about notes is that you don’t have to interrupt the flow of your script. Just insert them between commands (which always start with “[” and end with “]”. The script, while playing, will fire the note as it comes to it and then require the user to click or press a key to continue the script.

Here’s an example:

[IPress,Tool:Sphere3D]
[IPress,Material:NoisePattern2]
[Note,“I am now going to select one of the materials and change its Noise Radius to 200”,Material:Modifiers:Noise Radius]
[ISet,Material:Modifiers:Noise Radius,200]

In the original recording, the only difference would be that the note wouldn’t be there. Everything else is exactly the same. One thing, though, is to be aware that some interface items do not exist at all times. For example, the Flat Color material doesn’t have modifiers. If the note were to be put in before the material was selected by the script, then that particular modifier might not be there and the script would thow out an error when it got to that point.

Finally, every single item in the menus and palettes has a number attached to it. You can refer to stuff by number rather than the entire path name. This helps in cases like the Picker where you have several instances of the Continuous button. Each has its own “official” name, though, which can be gotten by holding the mouse over the button. Or you can open the Preferences:Utilities menu. The bottom number represents the interface number for anything that your mouse is pointing at.

With the Picker situation, the script will record [IPress,Picker:Continuous]. If you were after the Continuous Color button, you could change it to [IPress,1292].

There are other things that can be done with notes, such as to add color or carriage returns. Here’s an example:

[Note,"\Cffa000 Title of the Tutorial\Cc0c0c0

By aurick"]

\C tells it to change text colors, followed by the 6 digit hex value for that color.

serves as a character return.

Since there weren’t any arrow or timing commands added to it, all this will do is create an orange line that says “Title of the Tutorial”, followed by a blank line, followed by “By aurick” in gray.

Well, that’s a lot to absorb, but it covers the basics of writing notes in your tutorial scripts. You will quickly find that it’s much easier than writing HTML, since there are only a few basic variations to deal with. Just keep track in your head of what the script has just finished doing as you are writing your notes so that you don’t accidentally refer to an interface item that isn’t available at the moment. There are also a few more things, but these are the most commonly used ones. It’s more than enough to get you well on your way to turning out some great tutorials!

If anyone has any questions, please feel free to ask. I’ll answer whatever I can, and fully expect Davey or Pixolator to jump on me if I screw something up or leave it out. :smiley:

Thanks for the info Aurick. I tried to do a script once with notes, and after much experimenting and looking at existing scripts, I gave up on it for a while. This will help out a lot.

I digested the whole lot instantaneously. you’re a born teacher, Mat.

thanx a million, by the way, I know it was my incompetence with Zscripts that forced you to get down to writing this bloody excellent tut. :+1: :+1: :+1: :+1: :+1:

<BLOCKQUOTE>quote:</font><HR> a thinking artist is no surprise <HR></BLOCKQUOTE>

Darksprite - The Art And Design Of Christos Neofotistos

my renderosity gallery

thanks for making a tut on this,after i mentioned it to cneo. the other day i was going to try to show him what i was talking about but i didnt have time to complete it… and now i dont have too… thanks…,i mentioned it to him because he was coming out with some really cool scripts lately and i thought that it would be cool to read what he was doing instead of just seeing what he was doing… thanks for your help on this tut. buddy

Learn from an expert, folks :slight_smile:

Aurick, thanks for taking the time to post this. Your advice is clear, simple and accurate.

I’d like to add, a Note can be even simpler than you’ve pointed out. Looking at your example:

[Note,“This is the text of the note.”,Command:Arrow,Timing]

You don’t really need the ‘Command:Arrow’ and the ‘Timing’. You could simply make it:

[Note,“This is the text of the note.”]

The end. That’ll still work – a note will pop up and wait for a mouse click before going away.

I’m also eager to see some new ZScripts in the Library – let’s turn those recordings into tutes!

dave

OMG!!!

I am going to book mark this one!

Thankyou aurick!

Big rateing too!
:sunglasses:small_orange_diamond:+1:small_orange_diamond:+1:small_orange_diamond:+1:small_orange_diamond:+1:small_orange_diamond:+1:small_orange_diamond:+1:+++

Hi,

I cannot make the Note command work for my zbrush 3.1. Actually it point to nothing. I like to make it point to something like you say for example Tool:, it will point to the entire Tool, but it didn’t.

Why ? Or any change in the version 3.1 ?

this scripting feature was disabled in 3.1. Perhaps it will return with the next release.