View Full Version : Zsphere Widget version 2.8 (update 10-3-02 )
:ex: UPDATED Version 2.8 10/03/02 :ex:
It so happens that there are a number of zscript commands specifically for the zsphere. This little utility should help you precisly Size and Place each zsphere.
here is the script - Updated 9/5/02 Version 1.7 (Note 1.7 will not be updated anymore but will become the "Standard Version" which should be easier to use for people who just want the Positional aspects of the script
Digit_Zsphere_Standard.txt (http://www2.zbrushcentral.com/zbc_uploads/user_file-1031702963qll.txt)
Get the :ex: NEW :ex: Version 2.8 Here
zspherewidget.zip (http://www2.zbrushcentral.com/zbc_uploads/user_file-1033737301cfk.zip)
Note make sure that the enclosed widget.zvr is in the same directory you place the txt file
:ex: Also updated documentation 9/29/02
NEW - Zsphere Widget Documentation HTML Version (http://www.cyber-webs.com/zbrush/scripts/zsphere_1.htm)
http://www.cyber-webs.com/zbrush/scripts/zspherewidgetmenu.jpg
Note
:b3: Space
Used for positional controls In/out/up/down/left/right
X-Symmetry On/Off Buttons
:b3: Positional controls
Look - Zsphere information
P - Select Parent Node
E - Select Last Node
L - Select the Last Selected Node
Forward - Select Next Node
Back - Select Previous Node
Pick - Pick the Node directly under the Mouse NOTE: Only works using the keyboard shortcut "p"
Last - Select the Node that was last clicked with the mouse
As you select the current Node it will turn a random color. This should make it easier to spot individual nodes in a complex model
in/out/left/right/up/down - Moves the select Node
when zsphere object is rotated 0,0,0 these directional commands will be correct. If you rotate the model via controls they may not be as expected. (use Orientate to return the model to 0,0,0)
These commands will help you position the currently select child zsphere in space. Helpful if you are trying to rotoscope or using a sketch as a background.
:b3: Size
These controls size the currently selected node. The numbers indicated the amount of change sizing will affect the zsphere.
For example:
Press + .25, this will increase the size of the node by 25% of its current diameter. -.5 will decrease the node by 50% of its current diameter. You can also enter the exact desired size of the node in the Size Slider. It is noted that a size of 1 for a zsphere is a pretty large value, typical sizes range from .1 to 1
Taper
Taper will increase (positive) or decrease (negative) the current node based upon the diameter of the node that precedes it. The amount of Taper is determined by the value of theTincr slider.
:b3: Create
Delete - Delete the currently selected Node
New - Create a NEW PARENT Node. Use this to start a new model
Child In/Out/Up/Down/Left/Right - Create a child node on the currently selected Node in the direction specified. The new node will appear on the surface of its parent ready to be moved/sized etc...
:b3:Color
Fill - Fill the model with the currently selected model. NOTE: to prepare the model for further coloring it must be initially filled with a color.
Color - Keyboard "c" Color the current node with the currently selected color. Use the Forward and Back buttons to select the node
CPick - Keyboard Shift-c Color the node directly under the Mouse. NOTE: Only works with the keyboard shortcut.
:b3: Orient
Front/Back/Left/Right/Top/Bottom - Rotate the Model in Global Coordinates
Fill - Fill the Model with the currently selected color. This will clear any of the node indication colors
:b3: ROT
Rotate the Model in X, Y, or Z axis Internal Coordinates. Enter the Angle in the slider and press the appropriate Set + or Set - buttons. This is very useful for aligning the model with X - Symmetry.
:b3: Set XYZ
Probably not one you will use alot but with these controls you can precisely adjust the XYZ of each individual Zsphere. For example. You "Look" at the kneejoint in your model and notice the left one is longer than the right one. Taking note of the XYZ values of the left one you select the right one and make it the same.
:b3: Pose
Depending on the complexity of your Zsphere model you can save and restore up to 10 different Poses. Select the Pose with the "+" and "-" button. Adjust your model then Press "Save Pose" to save it. Recall a specific Pose by selecting the Pose with either the "Pose Slider" or the "+-" buttons and press "Restore Pose" to recall that particular pose. Example:
Build 10 poses for your model and save them in each Pose slot. Restore them one at a time and either Skin them or hit "a" to preview them skinned.
The "Export" button will create a numerically indexed image file of the canvas which is useful in many animation or gif programs to build a animation file. If the Pose number is "0" the export button will first ask you for a filename. enter a name with a 01 at the end so that the zscript can increment it.
For example.
Export pose 0
Asks for filename
I enter Testani01
export creates the file and makes Testani01.psd
Select Pose #2 and restore it
"Export"
export creates Testani02.psd and so forth
Open these files in your animation creator program and they are conviently indexed for you.
Skin - automatically skin the model when it is applied to the canvas
Best Render - automatically best render the canvas when the model is drawn
Auto - Automates the Export button and outputs all poses to sequential image files
:b3: File
"Save Data"
Create a Data file of your Model and all Poses to disk. Script will ask you for a Filename.
"Load Pose"
Use the dialog box to select the Pose file that you created with "Save Data". It will retrieve the Pose data and redrawn Pose 1 on the canvas. If the Pose file was created on a canvas that had a different Width and Height the script will ask you if you wish to "Rescale it". Answer yes to this to change all the poses to the same Ratio in the new canvas.
"Place"
Draws selected pose on the canvas. **NOTE** This is the way you get your model on the canvas if you have lost focus of your model i.e. no longer have it in some edit mode.
Example:
Place pose 1 in layer one
Select layer 2 - note that you no longer have your model available
Select pose 2
Press "Place" to put Pose 2 in layer 2
:ex: New :ex: Flipbook, F+, F-, Frames and Delay
Once you have exported some numerically indexed frames, or have some all ready on disk, enter the number if frames in the "Frame Slider" and the time delay 1 to 100 seconds between each slide. Then press the "Flipbook" button. The script will ask you for a filename. Select frame 01 of your animation and the script will display each in turn. It will stop at the end of the sequence and ask you if you want to continue.
Updated: It will check the input images Height and Width and give you the option of resizing the Canvas to match the image.
Added F+ and F- to cycle thru the Flipbook and fill the current layer. NOTE: you can use this for Rotoscoping, place a guide in the background and manipulate your model using it as a reference.
Pressing "Flipbook" again after a animation has been selected it will ask you if you want to use the same file. Say YES to replay the Flipbook or NO to select a new animation file.
:b3: TWEENING
Morph between two poses and the script will automaticall interpolate and create the inbetween poses. This is on a zsphere by zsphere basis as well as the whole model. In other words the Model Position, Scale and Rotation will be tweened as well as each individual zsphere that the model is created from.
Example: Create a 10 pose animation from just 2 initial poses
1. Create Pose 1 and press Save Pose
2. Use the F- button to select pose 10
3. Move the model, rotate, size etc... Also use Transform Rotate or Move to change up the arms, legs etc... (if it has any)
4. Press Save Pose to save it in the pose 10 slot.
5. Since we want a total of 10 frames (1 and 10) enter 1 in the "Start" Slider and 10 in the "End" slider (default)
NOTE if your zsphere model is extremely complex you may not have enough room for 10 poses so take that in account for this example
6. Press the "Morph" button to tween the inbetween frames!
7. Examine Pose 1 to 10 and see how you like the transformation
This feature, since it works in straight lines may or maynot be what you want but it is a good tool to use for some things, or you can let the tween do the big work for you and go back a correct any length problems etc.. that the model has.
:b3: Weld
Join two Zsphere meshes together easily with Weld. (see example below)
Create Root Model and Press "Save Root"
Create Child Model and Press "Save Child" this becomes your attachment
Join the Child to the Root one of two ways. Restore your "Root" model by "Restore Root" and using the "Forward"/"Back" buttons select the node that you wish to attach the Child mesh to. Then press "Attach". This will connect the Child node to the Root mesh. You may wish to adjust Rotation, size etc... of the child section. when satisfied press "Save Root" again to save this information. The other way is to press "Mousepic" and use the mouse to select a node. The Child will then be attached to the node.
If you need to adjust/rotate/size your child node press "Restore Child" to create it on the canvas. Make your needed changes and then press "Save Child" again.
Pose
The complexity of your Zsphere model and the MaxPose setting (Setup) will determine exactly how many poses you can have. To create a pose, select the Pose with the "+" and "-" button. Adjust your model then Press "Save Pose" to save it. Recall a specific Pose by selecting the Pose with the "+" and "-" button and press "Restore Pose" to recall that particular pose
"Place"
Draws selected pose on the canvas. **NOTE** This is the way you get your model on the canvas if you have lost focus of your model i.e. no longer have it in some edit mode.
Example:
Place pose 1 in layer one
Select layer 2 - note that you no longer have your model available
Select pose 2
Press "Place" to put Pose 2 in layer 2
Output
Skin - automatically skin the model when it is applied to the canvas
Best Render - automatically best render the canvas when the model is drawn
Auto - Automates the Export button and outputs all poses to sequential image files.
The "Export" button will create a numerically indexed image file of the canvas which is useful in many animation or gif programs to build a animation file. If the Pose number is "0" the export button will first ask you for a filename. enter a name with a 01 at the end so that the zscript can increment it.
For example.
Export pose 0
Asks for filename
I enter Testani01
export creates the file and makes Testani01.psd
Select Pose #2 and restore it
"Export"
export creates Testani02.psd and so forth
Open these files in your animation creator program and they are conviently indexed for you
:ex:Layer
New with Version 2.7
With the addition of Bruce Gregory's Animation Station I have used a number of its subroutines to add Layer animation and OnionSkinning to the Zsphere Widget.
:ex: Layers
Layer:
Turns Layer Mode ON/OFF when in Layer Mode pressing Pose +/- or entering a Pose in the Pose Slider will automatically select that corresponding Layer. Press Place to put the model on the canvas in the corresponding layer. Layer On will also change the EXPORT function to select the correct layer for output.
Onion:
Turns ON/OFF Onion Skin option. With it on everytime you select a Pose +/- or use the Pose Slider the preceding layer will be turned on in order to view the position of the preceding frame when in Layer mode.
NOTE: Also when the Onion switch is ON using the Place button to put the model on the canvas will use the preceding Pose. This allows you to manipulate the model to progress from that frame to the new frame. Be SURE to then Save Pose to record the change.
Animate:
In Layer mode pressing this button will cycle thru the current Pose Layers until the Mouse Button is clicked. The speed of the animation is controlled by the Flipbook Delay Slider (default delay is .25)
:e3: AutoPut
When in Layer mode will place all current poses in the appropriate layer so you don't have to do it manually. Select the Skin option to skin it after placement.
;ex: NEW Greg Smith's (Bruce Gregory) Animation Station
With Bruce's kind permission I include his script "Animation Station" into the Zsphere Widget and in because of his efforts it has greatly enhanced my Zsphere Widget which I very much appreciate.
:b3: Dave's Restore Zsphere Symmetry
Davey has made it possible to include his must have script. Open the section or read about it here
:b3: Settings
Set the number of Max Poses or Frames. I would suggest a value between 10 and 30. Note. Pose Files created with a different number of Poses can't be read. (make note of the number before you save data so that you can re-configure the script.
http://www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=007807
hope this is of some use
:ex: UPDATE
Added Front/Back/Left/Right/Top/Bottom
orientates model to world cordinates
Note. This utility works best after you place your initial Zsphere and then select MOVE. You can then select/add/size/place/orientate using the mouse or the provided action buttons.
When you add a child sphere it will intially be placed toward you and 90 degrees from its parent at the distance of the SPACE slider. In otherwords grab the new sphere and manipulate it because it is in front of its parent.
:ex: UPDATE 9-1-02
:b3: New Parent -
Draws a new parent zsphere on the canvas and gives it a default size. I haven't figured out the radius multiplier yet but the Size buttons will change a sphere in some way effected by the size of the Root sphere. Using "New Parent" will insure that the script will work consistently as far as sizing.
:b3: Add Child:
new buttons to add a child to the currently selected sphere in the direction specified up/down/left/right the distance from its parent is determined by the Spacing slider
:ex: UPDATE 9-1-02 10pm
Actually this is beginning to be useful
NOTE The script no longer works by simply clicking on a sphere. In order to make the script work correctly you have to select with the script buttons + - and Pick
:b3: Look - just some garbage about the current sphere you are looking at.
:b3: +
Cycle forward thru all zspheres. The currently selected Zsphere will turn a random color
:b3: -
Cycle backward thru all zspheres. The currently selected Zsphere will turn a random color
:b3: Pick
Press and then use the mouse to select a Zsphere within your model to manipulate.
if you remember to either use the "Pick" button or + or - keys to select a "Node" you should have no trouble using the script
:b3: Added the ability to create a new child along the Z axis with In/Out. Also the new child will automatically become the currently selected "Node" so that you can continue to Move/Size etc.....
:ex: UPDATE 9-2-02 Version 1.4
:b3: Added "Last" button which will select the last node clicked by the user on the Zsphere object.
:b3: Changed some of the buttons to be more descriptive.
:b3: Keyboard Shortcuts
f - Forward -> Next Node
b - Back -> Previous Node
p - Pick -> Use the Mouse to select a Node
l - Last -> Set the last node clicked by user as the current Node
s - Size -> Size the current node to the selected Size Slider
:ex: UPDATE 9-2-02 Version 1.5
Just a bug fix, zadd needs to be off to add color so the script now checks and see if the user was using zadd (to make new nodes) and turns it back on.
:ex: UPDATE 9-3-02 Version 1.6
:b3: Fixed Add Child to space the new sphere exactly the radius of its parent so that it will appear on the surface. No more hidden nodes!!!!
:b3: Added "P" and "L" buttons which select the Root Node (Parent) and the "Last" Node created
:b3: Added Fill Color Button - as you cycle thru the nodes each will display a random color. Press this button to uniformly color the model with the current color
:b3: Changed New Parent to hopefully select the Zsphere tool without resetting the Tool Palette. If it fails make sure that the zsphere tool is in one of the preview panes of the tool palette. Create a zsphere manually if you have to.
:ex: UPDATE 9-5-02 Version 1.7
:b3: Fixed script so that Davey's Restore Symmetry Script will work on models made with the script
:b3: With Davey's kind permission I have included his must have Restore Script.
:b3: Added Deformation:Rotate controls to change the model's internal orientation. The Orientation Front/Back etc.. works on the models global rotation. What this allows you to do is orientate the object to whatever symmetry options you are using. To use Enter the angle increment i.e. 90, into the Angle slider and use the Set + and Set - buttons to rotate in the selected Axis
:ex: UPDATE 9-10-02 Version 1.8
:b3: added Poses. Save and Recall up to 10 poses to the canvas.
;b3: Add File input/output of pose files which allows you to read/write pose files to disk. Load a pose file and it will create the zsphere model "WITHOUT" loading a tool.
Work on sequential poses and save them so that you can load them again later to continue editing.
:b3: added "Export" which will write the canvas image to disk as a PSD file. (see example above)
:b3: Add "l" to select the "Last" selected node. Example
I want to add 2 arms to one sphere.
add child up (badabing)
press "l" to return to parent
add child down (badabang)
press "l" to return to parent
:ex: UPDATE 9-10-02 Version 1.9
For Bruce :) Added Flipbook which will automatically iterate and display a group of numerically indexed BMP or PSD files
:ex: UPDATE 9-11-02 Version 2.0
Actually just a bug fix for the Flipbook but I got tired of being in the 1's :)
:ex: UPDATE 9-12-02 Version 2.1
Made changes to Flipbook and added the F+ F- buttons to cycle thru the animation file. Option to scale the canvas to the animation height and width and to replay the same file. Use these features to play your animation and/or use each frame as a guide to postion your model by placing it in the background.
:ex: UPDATE 9-13-02 Version 2.2
Fixed a problem with FlipBook, when it imports an image file now it will automatically select "Flat Material" and then afterwords restore the selected material
Changed the organization of the script and put functionality Zsphere, Position, Animation in there own sections.
Added TWEEN, yes you can automatically create a animation from 2 poses.
:ex: UPDATE 9-15-02 Version 2.4
Improved the Size controls. Instead of fine/small/medium/large etc. you have plus and minus 1 .75 .5 .25 .1 buttons
.25 will increase the current node by 25% of its current diameter
-.5 will decrease the current node by 50% of its current diameter.
using these controls should allow you to easily size the node. You can also enter the size in the size slider
Taper - added Taper which will increase or decrease the current node by a factor of the Tincr slider based upon the node that preceeds it. In otherwords .1 tincr will make the current node 10% larger than the node before it. use this to make tenticals, roots, tree branches etc.....
Added swithes to automate things
Skin, Best Render, Auto. (read about these above)
added Settings. Set the Max number of Poses. If you wish to work with 30 total poses set this value to 30. I wouldn't suggest much more than that.
:ex: UPDATE 9-18-02 Version 2.5
Added Weld, the ability to weld two Zsphere models together.
Fixed Slider entry for Pose. You can now enter the Pose number into the slider
:ex: UPDATE 9-24-02 Version 2.6
Added Color Fill, Color, and ColorPick features to color your zsphere model.
:ex: UPDATE 9-29-02 Version 2.7
Added Bruce Gregory's Animation Station and using it added Layer functions to the Zsphere Widget.
:ex: UPDATE 10-03-02 Version 2.8
Fixed Morph Function, now you can tween inbetween tweens (got that?)
Added Autoput function to automatically place all pose in layers
Ask any questions you might have in this thread and hopefully we can build up a faq
omg you are fast! I didn't expect any good zsphere utilities to come out for a while. Well it looks good Ill have to try it out :D :D
Ooh! Cool!
I've been wondering where you have been lately Digits! Welcome back big fella!
I've just downloaded your new widget but haven't used it just yet, but I'm curious about it. Do you have to draw the zsphere first and then use this script to control the placement? ... I'll be playing with this today!
What I have a problem with zspheres is drawing new zspheres with transform X or Y Mirror on, and then turning the model to find the parent zsphere isn't in line with the new zsheres. I need a "grid" layout so zspheres are drawn in 90 degree snaps from each other. understand...?
Anyway I hope the wife and daughter are well and the boat's being primed for another big adventure!
Upham :)
PS. You can use the keyboard left and right arrows to cycle through the zscripts you've loaded! Now we just need a default zsript that loads all the zsripts at startup and you've got all the scripts at the push of a button! :D
Just a bump to announce version 1.1 :) Read about the update in the initial post.
Upham: thanks my friend, I hope I can find more time than I have had lately to participate more.
To try to answer your question
draw the initial Zsphere first or use the widget on an existing Zsphere model by clicking on the Zsphere you want to modify in some way.
I haven't tried using XY mirror, but hopefully my orientation buttons will allow you to move the child anyway you want in world corrdinates.
I noticed to move a child in the Z direction you have to turn the model, as you can only move the sphere x or y. Using my placement buttons you can leave the model face on and move the child in and out of the Z axis.
I hope this helps.
hmmm. good idea for a utility menu
<BLOCKQUOTE>quote:</font><HR>
primed for another big adventure!<HR></BLOCKQUOTE>
p.s. 3 more years and we will be out cruising again! I can't wait
Carnivore
08-31-02, 10:08 AM
That's a useful script. I've had a play and it's ideal for working with things like fingers or tentacles where you want to be able to type in sizes for the spheres so them wriggly apprendages are even.
Upham,
When you make the first sphere and go into edit mode, do the shift drag to snap the sphere at 90 degrees to the screen. Let's say you want to put the next sphere directing in front of the first one. Turn on X and Y symmetry. You'll get 4 red dots of course, but as you bring the cursor to the very center of the sphere it'll snap to dead center and turn green. Add the child. To pull the child out purely along the Z Axis, snap to a side view, and under TRANSFORM/MODIFIERS select the Z Axis snap.
I've been trying to reconstruct the Raptor-like low-poly model that was all over the promo shots for 1.5. It's a good model to try to copy as it forces you to learn about where to place your next sphere for a clean mesh. Every time I added a ZSphere I peeked at the Adaptive skin at a density of 1 or 2. That kept me on track.
The important thing I've learnt is that it's usually best to snap to the six views of a ZSphere creation as you add children, that way you're looking at the cubes face on.
I've only been using ZBrush for a week, and I can see you've been around here for a while so forgive me if I'm stating the obvious. :)
Hi Digit,
This might sound silly but...
How does one use the script, I dont really understand how to use it effectively.
I downloaded it and played around a bit, but I seem to get confused and I dont know how to use it to better my work experience.
Any chance of a script tutorial?
- Shane
Carnivore
08-31-02, 10:53 AM
Doh!
Forget what I said. The method to absolutely square a ZSphere with its parent only works for the children of the root Zsphere.
Thanks for all your interest. I have run into a bit of a snag so I am going back to the drawing board before I release any updates to this.
but in the meantime
Mr Z
When it is finished I hope to get it well documented but basically you can do 3 things with the script.
Sizing
1. With the model in "Move" mode select one of the zspheres.
Size it with the Size slider or use one of the quick buttons fine/small/medium/large/big
select another zsphere and do the same
Moving
2. With the model in "Move" mode select one of the zspheres.
set the spacing (how much you want to move the sphere) in the slider or use one of the quick buttons fine/small/medium/large/big
then use one of the quick movement buttons to move the selected sphere in space. in/out/left/right/up/down
Note: if you rotate your model it no longer corresponds to what I call "World Corrdinates" in other words "left" may not be "left"
This feature I wanted so I could pose a figure with out having it to rotate it. Like when I use it to "Rotoscope" a pose from a background sketch.
Add Child:
Adds a child sphere to the currently selected zsphere at the current Size setting. It creates the new sphere slightly to the "Left" of its parent.
Orientate:
use the Front/back/left/right/top/bottom buttons to return the model to "World" corrdinates. When you are "Front" then the XYZ directions are valid again with the Movement buttons. It is a good idea when you start with the initial Parent Zsphere you orientate it 0,0,0 so that there isn't any tilt to the model because of draggin on the canvas.
You can use the features of the script to help your work flow but not necessarily create a model. If you are buzzing along and wish to make different joints the same exact size then "USE the Script Luke!"
Anyhoo, I have hit some bumps in the road but I am confident this script will continue to get better.
Just a bump to let you know version 1.3 is available. I figure it is done unless someone can suggest something or something else occurs to me.
Philipp Weimer
09-02-02, 01:16 PM
Thanks Digits!
Finally I'm able to position each ZSphere excactly on the Z-Axis. (Maybe this would have been possible without the script, but anyway :) I modelled a lowpoly dragon in about 10 mins in ZBrush and exported it to Lightwave where I plan to refine it and then back to ZBrush for Texturing.
Guess I'll be able to post something by then end of the week (I hope)
Phil
Thanks so much for the script and the updates!! Makes things alot easier!
Phlebas
09-03-02, 03:17 AM
Digits, Wonderfull ZScript, what I find most usefull is the Orientation and the creation of new ZSpheres in a particular axis. I am probably missing something obvious, but can you deselect a node? after I have roughed out a basic shape I want to be able to add extra Zspheres to the link spheres, but the normal operation of clicking on them with the draw pointer, wont work if you have a sphere selected, even redrawing the tool doen't help.
Phlebas
09-03-02, 03:31 AM
Sorry, I did miss something obvious, I had some extra Spheres I couldn't see within the Zsphere I could see, clicking make child with a small offset too many times and not thinking it worked is probably to blame. I was then adding Zspheres to these hidden links! works fine now.
Thanks again all for your comments.
Phlebas, you bring up a good point. If you "ADD Child" it is very possible that the child may be hidden within it's parent. Since you "Know" it is there just use the "Move" buttons to bring it out where you can see it.
I fixed a big bug with the last version so if you are using this script please update. What was happening is I have to turn "Zadd" off to make each node colored but I wasn't it turning it back "ON". When that happens you would be unable to add Nodes in the normal way with the mouse in "Edit" mode
Phlebas
09-03-02, 06:25 AM
Thanks Digit, I did update after I sent the first message, so maybe I had both problems, everything works very well now and it is my most used Zscript, very usefull.
KingSalami
09-03-02, 06:27 AM
awesome, thanks a million for the script, can't wait to try it
juandel
09-03-02, 10:54 AM
another fantastico script-idea, Floyd! :tu: :tu: :tu: :tu: so happy that you are back at it!
i played a lil bit with version 1.4 until now only and i assume that when i have had a first look at 1.5 you will have released 1.7 already - cant wait to see your first floydian results, amigo!
- juandel -
Version 1.6 is now available.
Philipp you shouldn't have a problem losing the new child node as the update should solve this.
The update notes are in the original post
Here is my first attempt creating a character. Hehe I have a long way to go but considering I couldn't model a paperbag before, Zspheres are a wonder!
http://www2.zbrushcentral.com/zbc_uploads/user_image-1031106364ktr.jpg
Stonecutter
09-03-02, 08:25 PM
back on the job huh Floyd??? ;) :D :tu: :tu: :tu:
Philipp Weimer
09-03-02, 10:42 PM
well, a paperbag isn't really easy to model :D
Thanks digits!! ZSpheres are so much fun and you've really made it easy!
http://www.cyber-webs.com/zbrush/digits/zrobo.gif
Read about Version 1.7 in the original post. Made the script compatible with Davey's Restore Symmetry script and with his kind permission it is incorporated into the script.
Also added Deformation:Rotate controls to help you align the model to any symmetry you have selected.
Thanks again for your interest!
BluePage
09-06-02, 08:09 AM
I have been finding this script quite useful, thanks for the hard work.
How bout a button that returns to the last used zsphere? The Forward and Back buttons don't necessarily select the last one you worked on.
Just released Version 1.8, read about it in the original post. This one allows you to save and recall different poses, and can be used to create small animations if you like.
http://www.cyber-webs.com/zbrush/Digits/frog.gif
Here is Pixolator's Froggy
It will also save and load your poses from a disk file so that you can keep them for posterity.
Bluepage, try the new "l" button. It will return you to the last active node.
Please, report any bugs or problemas
Thanks again for your interest
Bruce Gregory
09-10-02, 06:49 PM
Digits:
I have really got to hand it to you. You absolutely exceed my expectations every time. Your speed in delivery is unparalleled. No financial reward at the other end either. I, myself am working on a little animation and post processing automator. I'm no programmer, but maybe we can combine functions, (if you think mine have any value). I think I'm beginning to "follow" what Pixolator is and has been getting at.
Thank you very much,
Bruce Gregory
Bruce Gregory
09-10-02, 07:00 PM
Digits:
Would it be possible to use a zscript to provide an animation "flip book" of the exported, post processed files themselves, rather than a preview? This way, you would know, with certainty, what needs to be changed and where. It is frustrating to constantly migrate to third party stuff to get things done (i.e. Photoshop, Painter) or other animation software. Let's do it in ZBrush!
Don't you think?
Thank you very much,
Bruce Gregory
Thanks Bruce, coming from a real animator is praise indeed. I would love a collabration of functionality, so I am looking forward to seeing what you have come up with. Feel free to use any/all of Widgets in your endeavour.
Hmm, flip-book... Yes that can be done pretty easily. *wheels turning*
One technique I use is to use a separate layer for each pose. That way I can click on each layer in turn and see how it moves. I also can add 2.5 refinements or eyeballs etc... or even another animation on top of it.
My next experiment I think will be morphing. Create pose 1 and pose 10 then interpolate the 8 poses in between. I don't think it will make very lifelike movement but it might look cool! :)
again, thanks for the feedback!
Stonecutter
09-10-02, 08:10 PM
You KNOW I'm watching all this with consuming interest Floyd!!
A great contribution to the animation desires of the fervent ZBrusher, Matey!
:cool: :tu: :tu: :tu: :tu: :tu: :cool:
Jaycephus
09-10-02, 08:20 PM
Digits, that interpolation between poses idea is exactly how many, if not all, animation programs work, so while it wouldn't automatically confer lifelike motion, you should be able to create lifelike motion with it. One thing that would help with life like motion is to add sliders or something to the interface that allows the interpolation between poses to be non-linear, easing in and out of each pose.
Hi Jay
Yes, zscript interpolation can do I think 2 or 3 different curves the "Handles" being points in space which would lend to the necessary unlinearity of a animation path. However.. what I am thinking of trying is actual movement from PointA to B of each and every Zsphere in the model. I won't have any idea of how it will look until I do it but I suspect that limbs instead of moving in an arc will extend or compress in a line. You are absolutely right curves are needed any thoughts on how to apply them to many many zspheres?
Bruce Gregory
09-10-02, 08:48 PM
Thanks so much Digits:
I was going to record a ZScript that "flipped" through all 16 layers quickly - How quickly, I don't know. . . that's why I thought that a flip-book of "post" images would be faster (this turns out to be the way the early Disney animators did it, and they were fast, even by today's standards). The average per weekly volume of animation, per animator today is about 3 seconds of animation (finished quality). I can see an animator using ZBrush alone, being capable of that much per day. You can see how important this might be for me, specifically, and for the industry as a whole. I really do believe we are on the threshold of an animtation revolution here. I know that is what Pixolator has in his head, just by the design of ZSphere movement alone.
So, to have a fast (nearly 24 frames per second) look at your work would be the equivalent of an early animator flipping through his short stack of "onion-skinned" drawings by hand. There is nothing wrong with this "straight ahead" method of animating, and many pros prefer it. This ability, coupled with the ability to render quality frames, in their entirety, quickly, makes movie making for the little guy a thing of possibility and, perchance, profit, as well.
What I am requesting is a very fast run through of sequential, let's say .bmp or .psd files from within ZBrush itself. What a Time-Saver! I believe it is totally possible now to create, pose and animate a DETAILED character, all with poseable ZSpheres alone. I'll try to provide proof of this soon. Using adaptive meshing options, a full texture need only be created once, then applied to all subsequent, reposed ZSphere rooted adaptive meshes.
Jaycephus:
Yes, wouldn't a slider based "ease-in" "ease-out" system with adjustable f-curves be the ticket! We are certainly asking much here, from a guy making masterpieces and groundbreaking history, . . . for fun. I will repeat myself in saying, royalties should certainly be in order here.
Thank you for your endeavors,
Bruce Gregory
yeah man you Rule :tu: :tu:
i think you would give davey a run for his Z money when it comes to scripting :D
http://www.cyber-webs.com/zbrush/digits/zifman.gif
Thanks for the great idea Bruce, I have whipped up a Flipbook in version 1.9 which hopefully will do the trick. I too have a feeling that Pixolator has great things in store for animators, the fact that we already have progammable bits are almost unbelieveable. Who would have thought of that!!!! Zbrush is definetely out of the box, so no telling where we go next.
Anyhoo, if any of my endeavors help you and your work I am estatic. I do it for fun but it is nice to know some is actually using the stuff :)
To use flipbook:
Determine how many frames you have exported in bmp or psd format. and enter that number in the Frames slider. Your filenames should look something like this. Frog01.psd Frog02.psd ..... etc...
Enter delay in seconds between each frame
Press "Flipbook" select a filename and sit back and watch it go thru the series. It will ask you if you want to continue at the end of the frames
let me know if there are any problems
Stonecutter
09-10-02, 10:12 PM
MAN!!
I knew you would be blowing the doors off in no time you old salt you! :D
Now I can see what will come, and I better start getting up to speed with some raw material in the form of my 'Alice' characters, because by the time I do, you'll be spinning old Walt in his Cryogenic tank!
:D :D :D :tu: :tu: :tu: :tu: :tu:
wow, hey even I can do a flip-book now.. woohoo!! Thanks so much!
I hate it when it happens but I had to fix a bug in the Flipbook, it one short of displaying all the frames. I have been having so much fun watching my animations I haven't got back to codeing new stuff hehe
juandel
09-11-02, 08:41 AM
:eek: :eek: :eek: - version 2!!! Digits, i hope to find some time to do an animation within the next 10 days (a few days off ahead of me, yipieee!) - looks like it would need lil time only using this fantastico script - and that you will be going at version 3 by then. :tu: :tu: :tu: :tu:
- juju
Thanks for all your efforts on this Digits, great addition to the toolbox. :tu: :tu: :tu: :tu:
Dave
I haven't been following this script up to now. But is it possible to do flybys and logo animations? If so how? lol :)
Thanks
Bruce Gregory
09-11-02, 03:00 PM
Digits:
Thanks again for this utility. I just downloaded it and have not yet used it, been very busy. Were you able to get anything approaching 24 or 30 frames per second? I'll soon be seeing myself. Just a hint at what I've been pursuing: Think post-processing. Just like the new "AAHalf" function in 1.5 addresses what was a seeming insurmountable task to program new antialiasing algorithms into the realtime guts of the program - is used in a kind of "post" fashion. Those things that are seeming shortcomings in the ZSphere engine, as far as detailed, posable things, can also be addressed in a "post" fashion with outstanding results. Think about it.
Thank you very much,
Bruce Gregory
Bruce Gregory
09-11-02, 03:02 PM
Digits:
Thanks again for this utility. I just downloaded it and have not yet used it, been very busy. Were you able to get anything approaching 24 or 30 frames per second? I'll soon be seeing myself. Just a hint at what I've been pursuing: Think post-processing. Just like the new "AAHalf" function in 1.5 addresses what was a seeming insurmountable task to program new antialiasing algorithms into the realtime guts of the program - is used in a kind of "post" fashion. Those things that are seeming shortcomings in the ZSphere engine, as far as detailed, posable things, can also be addressed in a "post" fashion with outstanding results. Think about it.
Thank you very much,
Bruce Gregory
Thanks again Digits! I working on something I can animate.. not very good at that sorta thing so I know your script will aid my attempts!
The new improved version 2.1 is now available, read about it in the original post. Basically some improvements in the "Flipbook" features.
Adds the ability to resize the canvas to the selected images - Allows you to look at any animation without distortion from the current canvas dimensions.
Adds the ability to move thru each frame with F+ and F-, useful for using the image as a background as a guide (rotoscoping) for modeling your pose
Pressing "Flipbook" again it will ask you if you wish to replay the current animation or select a new animation
I am hoping to create documentation when I am done, but I thought a small tutorial here would be informative.
Method for using the Flipbook and Frame feature to tweek your poses
1. Create a Zsphere Model, either by using the Widget, freehand or combination of both.
2. Using the script create 10 or less poses by
Using Rotate/Move to postion the model
Press Save Pose
Press + to increment to the next Pose
repeat.
3. Save the Pose information by Pressing "Save Data" it will ask you for a file name. Whenever you wish to continue working on these poses press "Load Data" and select that file to load Poses
4. Create a animation using the poses you created
1 Start with Pose 1 by using +- buttons or entering 0 in the Pose slider
2 Draw the figure on the canvas by pressing "Place"
3 In Tool:Inventory:density? select 4
4 press "a" or preview in the inventory palette to skin the pose
5 Press "Export" - Since this is Pose 0 it will ask you for a file name. name it with a 01 (or larger if you are adding to a already created animation sequence) such as myanimation01. This will create the first frame of the animation on your disk. Best Render/fog etc.. before you export
6 Increment the Pose using the "+" button
7. Repeat steps 1 to 6 Now when you export it will automatically advance the filename myanimation02, myanimation03 etc...
5. Now you have created a animation play it back by entering the number of poses in the slider "Frames" and pressing "Flipbook"
6. When asked for a file select myanimation01, the script will now animate each frame
7. at the end it will ask you if you wish to continue. say Yes to replay it again or "No" to exit.
8. Next you can tweek your poses by using these images.
assuming that Pose 1 is ok
1 Press F+ or F- and find the frame that depicts Pose 2. The script will draw it on the canvas
2 Select pose 2 by using the "+" or "-" buttons or the "Pose" slider
3. Press "Place" to place the pose on the canvas. Note when you have a model in a Edit mode (red circle) you can use the "Restore Pose" button.
4. The model should superimpose over the top of the image in the background.
5. using the background as a reference adjust the pose of your model
6. when you are satisfied press "Save Pose" to save the pose over the original.
When all the poses look ok make sure you press "Save Data" to save the new information to the disk. You can then create a new or write over your animation file using the steps above and use the Flipbook to see how it looks.
You can also use the Flipbook and the F+ and F- buttons to Rotoscope other images. Use a animation file of a person walking to create a figure walking etc...
I hope this makes sense and gives you an idea of how to use the script. Hopefully I will make some better documation in the future.
Bruce Gregory
09-13-02, 04:09 PM
Digits:
Absolutely wonderful work! Thank you so much. Now all is nearly in place for a complete "animation package". I don't think that will be part of the bonus release that is soon coming. Now this may be far too large of a project, as I said, I'm no programmer (but wish I was), yet interpolation of poses seems to be begging attention. Just straight inbetweening.
With this function, an animator would have the best of both worlds, namely: Pose to pose animation (a method of mapping out the most important action in advance as "key frames"), and straight ahead animation (a method of going with the flow, so to speak, and letting the animation unfold as you make it, or rather it makes itself). I'm not really asking that you attempt this, but rather whether it is possible. If it is possible, can any of your earlier animation "tweening" stuff be used on this, or can you see that Davey's interpolator could be adapted? Maybe it's a piece of cake, eh? Many of us would be kept busy for an indefinite period should you or anyone provide a "tweening" feature.
Thank you very much,
Bruce Gregory
Funny that you should ask Bruce, because that is exactly what I had in mind when I started this project. I already had the technology figured out with my Animation Widget so I just applied it here. Anyhoo, here is the unveiling of the
Zsphere Tweening Feature!
http://www2.zbrushcentral.com/zbc_uploads/user_image-1031963027ccp.jpg
My deepest appreciation to Stonecutter for letting me poke around with his model. And of course Mentat's cool plastic
I posed the first and last pose and let the script create the 8 inbetween frames. As you can see this will work better for some objects than others as you can see the forshortening of the limbs. This is because it calculates a straight line. However it can do alot of the hard work for you. Go thru each frame and re-lenghten/shorten and fix the model.
The script does 10 frames (less if the model is complex (frames = 1000/numberofzspheres) if numberofzspheres > 100
to create a complex animation do 10 frames at a time and save to disk each group. Then use whatever technigue you like to export the frames as an image file when it is done.
Thanks for all your interest, I appreciate it.
(read more about it in the original post)
Bruce Gregory
09-13-02, 08:30 PM
A Revolution is born! I'm still working on a posable ZSphere face, but this may be prohibitive if it shortens the number of possible frames in each run through to less than 10. You really need that many to get a feel for what you are up to. Not giving up yet, however. Thanks again a whole lot.
Bruce Gregory
Bruce
The number of 10 is an arbitrary one I picked because I wanted to keep the allocated memory down. I can expand it if need be. Let me know, 20?
like I say since you can save each posed set it is pretty easy to organize. When you use Export at pose 0 it will ask you for a filename. say you have test01 to test10 already on the disk, you would enter test11 to add it to the sequence.
and so forth..
would love to see what you are workin on
juandel
09-13-02, 10:41 PM
me, too, Bruce! :D
bravissimo Digits, once again!!! on both the script and the latest example: the flow of michaels guy is perfecto!
- juandel
Bruce Gregory
09-13-02, 11:57 PM
Digits:
I would love to show you what I am working on, but, alas, these ZSpheres and their modeling behaviour is giving me fits. I have been really close several times to achieving a fully articulated face, (some with lots of spheres, and simpler ones). If we could only get just a little hint from (you know who) about how to begin and how to progress on a high density situation like a face, and avoid all of that peculiar behaviour when spheres start getting close, we would all be in the money. Small overlaps and creases can be eliminated in a "post" fashion, but there must be a route that gives fewer headaches. I would just go to producing everything but the head, make an old fashioned "sphere" head, and just animate that separately, but it is not natural. Now, if a way could be found to hierarchically attach a traditional head and morph it along with a ZSphere body, that could also work. But, as you know, it is hard to selectively move parts of a face, accurately, that has been made from a single sphere. What a conundrum! Some would simply give up and say, "ZBrush is and never was intended to be an animation program", but I simply cannot part with the idea that it could be done simply and elegantly all right here in the program that has so many other useful tools and benefits.
Not finished yet.
Bruce Gregory
Bruce Gregory
09-14-02, 02:35 PM
Digits:
In response to the number of poses available, 20 would be good, 24 better and 30 best of all. (24 fps for film, 30 for video). I'm getting much closer to a complete method for first modeling an articulated face with ZSpheres, and then animating one. I will post something in the near future.
Thank you very much,
Bruce Gregory
@ Bruce:
Zbrush isn't and possibly will never be an animation(offically) program. It's an art proggie. However, perhaps they may licence zsphere tech or something. But for facial animation, I think morph targets are the way to go as it's so easy to create them in Zbrush.
Bruce Gregory
09-14-02, 05:51 PM
Rhom:
We'll see.
Bruce Gregory
Bruce Gregory
09-14-02, 05:52 PM
Rhom:
We'll see.
Bruce Gregory
:ex: UPDATE 9-15-02 Version 2.4
Improved the Size controls. Instead of fine/small/medium/large etc. you have plus and minus 1 .75 .5 .25 .1 buttons
.25 will increase the current node by 25% of its current diameter
-.5 will decrease the current node by 50% of its current diameter.
using these controls should allow you to easily size the node. You can also enter the size in the size slider
Taper - added Taper which will increase or decrease the current node by a factor of the Tincr slider based upon the node that preceeds it. In otherwords .1 tincr will make the current node 10% larger than the node before it. use this to make tenticals, roots, tree branches etc.....
Added swithes to automate things
Skin, Best Render, Auto. (read about these in the original post)
added Settings. Set the Max number of Poses. If you wish to work with 30 total poses set this value to 30. I wouldn't suggest much more than that.
here is a cactus bush??? I made using the taper feature and positioning the nodes right,in,left,out to make it spiral.
http://www2.zbrushcentral.com/zbc_uploads/user_image-1032109497pgg.jpg
Next up, I am thinking that I can join two zsphere models together. Then when they are joined I could join it to another, and another and another. Until they take over the world!!! bwuahaaahaaaaa!!!
NEW - Zsphere Widget Documentation HTML Version (http://www.cyber-webs.com/zbrush/scripts/zsphere_1.htm)
Thanks Digits! this is really a handy script and esp. thanks to the documentation!
Bruce Gregory
09-15-02, 06:08 PM
Digits:
With respect to the joining of ZSphere objects together: would it be possible to join individual ZSpheres together within the same model? This would be very useful for keeping the model in a "network" and makes moving individual "nodes" more controllable, (this will prove to be a headache reducer for animators). Just curious. Imagine - fully articulated ZBrush-generated characters moving effortlessly through a ZBrush world. (We are not the least bit obsessive, are we?)
Thanks again for all of your efforts,
I hope to be counted worthy of them.
Bruce Gregory
Bruce Gregory
09-15-02, 06:13 PM
Digits:
With respect to the joining of ZSphere objects together: would it be possible to join individual ZSpheres together within the same model? This would be very useful for keeping the model in a "network" and makes moving individual "nodes" more controllable, (this will prove to be a headache reducer for animators). Just curious. Imagine - fully articulated ZBrush-generated characters moving effortlessly through a ZBrush world. (We are not the least bit obsessive, are we?)
Thanks again for all of your efforts,
I hope to be counted worthy of them.
Bruce Gregory
Frenchy Pilou
09-16-02, 12:19 AM
Hi Bruce
I think then you see a double message :) :)
you can edit the second, clear the texte and clic on edit. I think that erase it and give more little place to the charming system post provider :)
Pilou housekeeper :)
Bruce I think I know what you are getting at, making the zsphere model rigid? Just might be possible not in realtime but a button that would scan the model and make the space between each zsphere the same as it was in Pose 1 and adjust the model accordingly. Good idea! I hope my brain is big enough to do it
Bruce Gregory
09-16-02, 09:19 AM
Digits:
To clarify my idea: Imagine a network of ZSpheres forming the "skeleton" of a larger sphere. All spheres would be interconnected. You could never move one without pulling on the entire lattice. Very similar to a traditional polygon lattice - you cannot pull on any vertex without it affecting the mesh as a whole. Would this be possible?
Don't hurt that brain, however - it's not that important.
Thank you very much,
Bruce Gregory
Digits, I hope you don't mind, but I compiled your HTML documentation into a MS Word document, with the only changes being that of spelling refinement, to make a more printable version.DigitsZsphereWidgetsDocumentation.zip (http://www2.zbrushcentral.com/zbc_uploads/user_file-1032193295sdv.zip) The zipped file is only 132k.
Thank you VERY much for all your outstanding work on these mindblowing widgets!
Bruce Gregory
09-16-02, 04:22 PM
Digits:
Though I'm not totally acquainted with your old animation widget, I believe it allowed "morphing" of a kind, didn't it. I saw the animation of the juggler, and, unless you animated his face frame by frame, it must have morphed. Where I am leading with these questions is to try to bypass the need for making everything in a character out of Zspheres. I'm having a bugger of a time with a face, though I have not given up yet. Because we are dealing with adaptive skins, we only need to texture the character once. We couldn't dream of texturing all poses separately. Therefore, at this point, the head and face must be textured at the same time as the rest of the figure. It follows, then that the face must be made from ZSpheres, since your current widget requires only ZSpheres to be used in the morph. Could a regular, modeled spherical head be hierarchically joined to the ZSphere body and morphed along with, or separately from it? This move would accomodate everyone, especially all of the experts who are regular Sphere-Headers. My feeling is that vertex level animation is out of line for ZBrush, but I hope I am wrong about this.
Others: I know, I know, ZBrush was never intended to be used as an animation program and we really ought to be using something else for character animation and compositing. I have my own reasons for seeking the contrary, however.
Thank you very much,
Bruce Gregory
Stonecutter
09-16-02, 04:48 PM
Hey Bruce, if you and Floyd continue pushing the envelope for ZBrush we will all benefit, so you and my old shipmate should stay the course, with all sails set and drawing!! :D
Bruce Gregory
09-16-02, 06:23 PM
Stonecutter:
Aye, Aye!
Bruce Gregory
Wow! Nikko, thanks a bunch for that I really appreciate it and hopefully others as well.
Bruce, unfortunely I don't think there is a way to meld a spherehead (for example) with a zsphere model and keep a unified skin. Unless perhaps you created it as a magicmarked object and then skinned it. Have to try it and see how many steps that would be. I agree photorealistic faces and animation are beyond what I know or have the talent to create but who knows yet how far we can push 1.5 and future releases based upon peoples needs. Hey, I am tickled pink just to see a few frames move, doesn't take much to amaze me :)
anyhoo, what I like is lots of wind and itty bitty waves
Bruce Gregory
09-16-02, 09:30 PM
Digits:
I was also thinking along the lines of a multi-marked object. However, is morphing an object (a sphere head) possible in any fashion? This would be morphing on a per vertex basis, would it not?
Thanks,
Bruce Gregory
Hi Bruce
what you saw on my juggler guy was a bit of modelling each frame and not the result of any coding. In my animation script you can have up to 50 frames and animate up to 10 objects plus lights. In each frame you can assign a different object, so in my juggler animation
http://www.cyber-webs.com/zbrush/digits/juggler.gif
each frame is a different head morphed a bit in I might add an inept way. I have never gotten the handle on modelling something heh.
Thanks to Ed the Atom who created this said head
Bruce Gregory
09-16-02, 11:13 PM
Digits:
Yeah, a frame at a time for a lengthy animation, (like I am undertaking), would prove to be grueling work. I'm trying to find some way to either do some kind of "morph targeting" for facial animation, or it's back to the ZSphere drawing board to animate (interpolate) a face all right here within ZBrush - just gotta do it. I know the look that we could achieve in ZBrush - especially for a feature style animation would just knock the socks off the competition. I think, ultimately, that it would prove to be an enormous time-saver and creativity booster for any team of animators working on a long project. Think some more about it, would you?
Thanks very much,
Bruce Gregory
Bruce Gregory
09-17-02, 03:17 PM
Digits:
I forgot to tell you, I am using Mac OS 9.2. I just now got to try out your latest ZSphere Widget, and I must be doing something wrong, or it doesn't work on my Mac. Here is the proceedure I have been using:
Setup: 10 poses
Create: New ZSphere (I make a 7 node object)
Pose: With my initial position and the slider at frame 0, I save the pose.
Position: I manually place it in space and using Edit:Rotate and regular rotate, move and scale, I reposition it.
Pose: Setting slider to 10 I save this adjusted pose.
Morph: Making sure this slider is at its default positions I press the Morph button.
It goes through a routine whereby the initial pose is rendered and moved toward the upper left, getting smaller every pose, but not readjusting its orientation, rotation or ZSphere relative positions - it just moves upward to the left and gets progressively smaller. I know I am missing something here, but I did follow your latest set of instructions - Can you clarify?
Thank you very much,
Bruce Gregory
Hi Bruce
hmmm, when you select a pose are you entering the number in the Pose slider by hand or are you using the + and - buttons? Use the buttons to select the pose instead. to get to pose 10 from 1 the easy way is to hit the - key once. Hopefully in the next version I will remember to fix that little abnormality so that you can enter it in the slider.
If that is not it, hmm perhaps someone else with a Mac can check it out and see if they have the same problem. The steps you used are correct.
Almost done with the new version. Have you ever wished you could join two zsphere meshes together? you soon can!
:ex: Update Version 2.5
Join two Zsphere meshes together easily with Weld. (see example below)
Create Root Model and Press "Save Root"
Create Child Model and Press "Save Child" this becomes your attachment
Join the Child to the Root one of two ways. Restore your "Root" model by "Restore Root" and using the "Forward"/"Back" buttons select the node that you wish to attach the Child mesh to. Then press "Attach". This will connect the Child node to the Root mesh. You may wish to adjust Rotation, size etc... of the child section. when satisfied press "Save Root" again to save this information. The other way is to press "Mousepic" and use the mouse to select a node. The Child will then be attached to the node.
If you need to adjust/rotate/size your child node press "Restore Child" to create it on the canvas. Make your needed changes and then press "Save Child" again.
remember you can change the internal orientation of the child, or any mesh for that matter, with the Rot XYZ controls.
example:
make a wall 90 degrees face on. press "Save Root"
while the wall is still selected enter 90 degrees in the Angle slider in the Rot XYZ controls.
Using one of the axis's set+ or set- buttons adjust the wall to look like a left wall
press set child
press restore root, so that we can click on it
use mousepic to attach the child as the left wall.
press restore child
use the Rotxyz to change it to a right wall
repeat the above steps
http://www2.zbrushcentral.com/zbc_uploads/user_image-1032355414fqv.jpg
Also fixed the problem with the Pose slider,it will now correctly select the pose number with a manual entry.
I also updated the documentation and made the colors more printer friendly. Nikko, if you feel the urge to create another doc I would be most appreciative!
Thanks again for your interest.
Bruce Gregory
09-18-02, 10:25 AM
Digits:
Now if you could weld the child to the parent in two places, you could build an interconnected network, (let's say a sphere made of Interconnected ZSpheres) - great for facial primitive made of ZSpheres. Don't you think that would be great? (he baits him with question).
Thank you very much,
Bruce Gregory
Bruce Gregory
09-18-02, 11:27 AM
Digits:
Version 2.5 works as long as I either manually enter pose numbers or use + and -. Because of the linear nature of the tween, The animator would have to produce every rotation of a limb in tween increments of around 15 degrees. Also, because of its linear nature, and the resulting inaccuracies of such a morph, it would be mandatory to have an "onion skin" feature for "rotoscoping" with the previous frames, not just poses. Do you follow me?
ZSphere chains have built-in rotational controls that already mimic a traditional animation "bone" setup. That part is already done for you. What really needs to be interpolated for the serious animator, is rotation on a ZSphere by ZSphere basis, and relative link lengths between adjacent ZSpheres. Then, we are not talking about a "morph", but a real tween taking those factors into account.
Now, for facial animation, I think a "morph" is ideal, just the way you have it, but to be practical, a walk has to be produced not with a morphing tween, but by a rotational interpolation and node distancing interpolation. This may be way beyond what you have time to produce, (for fun and non-profit). I'm sure you have to work at a real job and sleep sometimes, as well.
If this is not within the scope of your plans, let me know. Other resources would have to be used outside of ZBrush, (boo hoo hoo), in that case.
Thanks for all of your ongoing efforts,
Bruce Gregory
Just from observing this thread....the only way I can see of implementing animation using Zspheres(just my opinion) is to make your "skeleton" as per normal. Once you've done that you have to skin it and put the fine details on the skin (without a detailed model, it's pointless IMO). Now here's the part which I don't know is possible or if it is how feisible it is.....If you can somehow get the Zspheres of the original skeleton to "remember" the quads that they created. And so, in moving the old skeleton, you move the skin too(provided it's not been edited too much). The facial features I don't believe will be possible to animate using Zspheres as they stand....morph targeting would have to be included to cater for that. Anyway...as I say...IMO! :)
Bruce Gregory
09-19-02, 01:58 PM
KenH:
In my experiments, I have learned that very fine detail can be created with ZSpheres alone. What people are put off by, are the creases and overlapping mesh situations that inevitably arise. I am not seeking a ZSphere solution that involves the use of another application to finish the production, but one done entirely in ZBrush pre, per, and post. If this is understood, then things like non-traditional meshes are not important, and small flaws in the geometry can be handled fairly easily with a "post" solution within ZBrush itself. That has been demonstrated by numerous artists on this forum already.
It is true that some form of manipulating machinery must be put into play to facilitate easy movement of the character in limb and face, etc. I have found a way to utilize ZSpheres to produce a character that has this utility. And what is wonderful about the ZBrush environment is that it is now a modeler, poser, foremost a 3D (not just a 2.5D) pre, per and post painting application, a compositor - and soon, I might add, a very interactive animation system. Why lean on outside resources when we have so many now at our fingertips?
If Pixologic doesn't produce it, someone else will - in the form of a unified suite of ZScripts. Digits is most of the way there, and I am sure he needs some encouragement from people other than me, to continue the struggle which is known as programming. I am not a programmer, and I lack the skills to put something like this together, myself - or I would do. I can see what needs to be done fairly clearly, but that doesn't help Digits very much.
I think, if one studies the structure and function of ZSphere technology, they can readily see that Pixolator had larger things in mind than just making lizards and frogs with ZSpheres. These are just "intro" lessons to teach everyone how to handle them, in a general fashion. I could be wrong, but I don't think I am overestimating here. We'll see. Just remember the goal of animation is to produce an attractive, moving work of art that has the illusion of life. What is the most direct route to achieve that goal?
sincerely,
Bruce Gregory
@ Bruce:
Indeed! I'm not trying to discourage...merely offer the path that I would see most sensible. On this path everything is still done in Zbrush...it was doing morphs long before zspheres!
You say you have created a face with zspheres...How easy is it to manipulate those spheres to create an expression for example? How does the finished article look....does it have recognisable facial details etc? I think I saw the Zsphere face, but not the skin of it.
Bruce Gregory
09-19-02, 05:26 PM
KenH:
Don't take offense thinking that I took offense. I didn't. Just stating the facts, Ma'am. You can create any level of detail you like and get good results with a density of as low as 2, but 3 is better. Zspheres are ideal for representing, accurately, the musculature of the face, which, can in turn be symmetrically or unsymmetrically pushed and pulled and distorted in realistic and cartoonistic fashion. I'll post something as soon as I have defined a reliable method that anyone can reproduce. The secret with this method is all in the post production (done in ZBrush).
Thanks for your interest,
Bruce Gregory
Bruce Gregory
09-19-02, 09:48 PM
Digits:
I was reading this thread: http://www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=000943
and wondered if the spline type interpolation might work in relation to ZSphere positioning? Or could a spline-based path be defined that a ZSphere could follow? If so, then couldn't one at least "fake" the rotation of a ZSphere limb? Just curious.
Thanks,
Bruce Gregory
hey i like the z sphere were it adds one to the left,right,in,out can you shorten the code up and private message it to me or post it :tu:
Hi Bruce
Actually, the interpolation function is what I used to make the Tween work. I can easily make the line between two points curve with the function as well but that won't help me with rotating a z-limb or z-path where the piece gets lengthened or shortened because there is no way for the program to know where the model is located in space, where the forces of gravity, vectors etc... just too many unknowns if you see what I mean. I could make a curve downward but what if the arm etc. is moved sideways or the character is taking a dive off a cliff headfirst.....
Any hoo I am going to work on a function that will measure the distance between each zsphere with it's neighbor. Then in subsequent frames you can restore the same length back into the model, which I hope will result in realistic movement.
EZ, I am not quite sure what you want, just the code that creates a zsphere in those directions? here it be
postionsection.txt (http://www2.zbrushcentral.com/zbc_uploads/user_file-1032528977qqm.txt)
your welcome to use any part you like!
yeah thats it :tu:
ummmm still alot of code in there for me to pick it out how about lets say add a zsphere move left.
if i see a short version of it then its better for me to under stand..
thanks Bud im offfffffffffffff to work ill check back tonight :tu:
[IButton,Digits,'
[IPress,Thanks]]
Yo Ho Ez
see if this helps you some
ezexample.txt (http://www2.zbrushcentral.com/zbc_uploads/user_file-1032553608cpb.txt)
thanks man ill be studying that.
i don't know how you come up with half of the stuff you do but you are Z code Master.
i bow my head to you oh mighty master :D
Bruce Gregory
09-20-02, 02:54 PM
Digits:
So the distance between adjacent ZSpheres is really the only thing you have to keep track of - rotation is not as relevant as relative distance? I think I see what you mean. Can you elaborate? In the mean time, I am putting together a very, and I do mean VERY simple frame by frame animation utility, using onion skinning and layer flipping. It is very basic, but quite useful for that purpose. As soon as you get your thing figured out, I'll move right in and start producing some entertainment - O.K.? I really do appreciate what you are doing, and you have atleast one person who will make thorough and constant use of your work.
I don't know if you know the answer to this, but who actually owns a ZScript? Can you, Digits, copyright it and retain rights to it, or, if it gets to that point, market it as a "plug-in". We might see even more ZScript development if there was a secondary profit motive to stimulate inventors such as yourself. I'm not trying to stir up any trouble here, just would like to know. And, of course, those concerned need not answer.
Thanks again and again for your pursuit of this obsession,
Bruce Gregory
Added Color functions to the script. Before you can use the color and CPick function you need to initially "Fill" the model with a solid color. Then use the forward/back buttons to select a node then Press "c" to color it. Or move the mouse over the node you wish to color and press "Shift-c" to color it.
Note. All color information is saved in pose 1 of the file. So make sure you resave the Pose 1 after you finish coloring your model.
I decided to see how Stonecutter's Truckin dood looked in color.
http://www.cyber-webs.com/zbrush/Digits/sccrumb.gif
Thanks for your interest
p.s. Bruce I am still working on the distance thing, hard to get time nowadays. As for the zscripts, copyrights, the universe etc... Far as I am concerned my scripts are free for the taking. If I have a routine or something that does what you need please feel free to use it. I think perhaps as the complexity and power of zscripts grow they may very well turn into a compiled version for plugin developers. Hmm maybe I can keep myself in DogFood doing that in my old age.
Bruce Gregory
09-24-02, 10:01 PM
Digits:
Thank you for keeping on trucking, man. I'll take a look at the color as soon as I can.
Can you look at the "Animation Station" Zscript I wrote. It works good for a simple frame by frame animation program with onion-skinning and forward, reverse, and ping-pong action. Comes complete with demo. The only thing that doesn't work properly is the background image "skin". All I get is that !Warning symbol. I saved it out of Photoshop, so the format should be o.k. Anyway, let me know what you think.
Thanks,
Bruce, GregoryAnimationStationFinal1.zip (http://www2.zbrushcentral.com/zbc_uploads/user_file-1032930100foz.zip)
Bruce Gregory
09-24-02, 10:13 PM
http://www2.zbrushcentral.com/zbc_uploads/user_image-1032930796ixm.jpg
Here is what I am trying to accomplish in the Zscript window.
Thanks,
Bruce, Gregory
Bruce, first off what a cool concept for a script! I especially liked to hit the Ah-Ohh button as often as I could :)
I tried to open your PSD file in Photoshop and it said it was invalid! I created a new one by copying the image on the thread and it worked. You will have to place your buttons on it correctly with the penmove commands. So try redoing your image and see what happens.
One thing that might be useful, is when onionskin is on you should be able to hit one of the "layer" buttons(1 to 16) and it onion skins the layer before it as well so you get an idea of where it is headed.
Bruce Gregory
09-25-02, 10:46 AM
Digits:
Thanks, I think that is a great idea concerning clicking on individual layers. Ideally, there probably should be a feature that lets you set up how many previous and post images are onion-skinned in relation to the one being viewed. Also, there should be an "export cells" feature, but I think this is beyond my expertise. It would be the same as your incremental file saving feature in Widgets. I also have to give credit to Aurick for explaining to me what might be a solution - we spoke on the phone. I just implimented it.
This file corruption thing seems to be what kept my images from appearing in the forum. I have tried saving these things out of the Mac version of Photoshop 5.5 in different formats, and sometimes there are errors.
Thanks for reviewing this for me.
Bruce, Gregory
WingedOne
09-25-02, 11:03 AM
I just tried out the Animation Station and played the demonstration. Very cool! :tu:
Bruce Gregory
09-25-02, 03:22 PM
Digits:
Help, help . . . HELP! Ahh Oh! Ahh Oh!
I finally got an image that Zbrush will accept, but I cannot figure out, not from examining all of Davey's writings nor from examining the TextureMaster script how to keep an image from being written "on top of" the buttons that should be on top of it. In Pixolator's script (TextureMaster), I see no special command other that "[PenMove]" listed prior to or after the .psd file he uses for his background. Yet his buttons appear on top of his image. I don't mind experimenting with button spacing ( even though my Mac crashes after loading any ZScript and trying to exit the program ) but my image always over-writes my buttons, regardless of my penmove spacing. Help, Help . . . HELP! Ahh Oh! . . . Ahh Oh!
Going down. . . Down.
Bruce, Gregory
Bruce Gregory
09-25-02, 06:07 PM
Digits:
Thanks for the reply to my deperate cry for help as seen above. What I am proposing is the functionality, yet simplicity and "fun" of both of our scripts - (I cannot write my way out of a paper bag) - take what I have offered (and what Pixolator offered, he gave us permission to use it) and repackage it for the good of all. I would rather consentrate on content production because I am not skilled at "tool making" as you are. I think, ultimately, you will benefit in many more ways than are presently apparent.
Bruce, Gregory
Bruce Gregory
09-25-02, 08:38 PM
Digits:
I loaded your script and it worked perfectly and aligned perfectly. I copied the 3 lines of script that were responsible for the correct display and pasted it into my script as it was sent to you. Lo and behold, it did not align properly in the Zscript window. I meticulously checked for any discrepancies in anything at all and could see none. (I used BBEditLite for Mac as my text editor). As a last ditch effort to try to understand why two scripts which were in every perceivable way identical, did not execute in the same fashion, I checked the preferences for "text" and your script appeared to have "soft wrap" checked, while mine did not. Could this possibly be it? I checked the box for "soft wrap" in my version of the script and reloaded it - no luck. I copied your entire version and pasted it into my script, replacing entirely what was mine - reloaded it and it worked
Now go figure. With this kind of minutia getting in the way, you can understand why many of us throw up our hands and totally give up on programming forever. I have had this kind of experience in the past, as well. Do you or any of the other programming sages have ought to offer as a solution to problems such as this?
Thank you for listening,
Bruce, Gregory
ahah, you have discovered a common occurance in the world of software engineering. the absolutelynoreasonwhatsoeverbutitdoesn'twork thingy :)
Well with your permission then I will incorporate your idea into my widget. I think they will complement eachother very well. Thanks for all work on this!
Bruce Gregory
09-26-02, 10:43 AM
Digits:
You have my permission . . . but may I make a magic wish? Could we produce a (I say we) version that is very simple and direct, that could (2 . . ., 2 magic wishes) fit on 3 or 4 lines (so that it would be visible in its entirety at the bottom of the default canvas and ( 3 . . . 3 magic wishes) could someone write a really good tutorial on how to make skins for the thing covering completely the penmove commands and why, techniques for making the master image (I could do this part) and how to make your text editor create the script without adding any invisible formatting whatosoever? Of, course my help is available in any way you can make use of it. There, you have my permission.
Bruce, Gregory
Thanks Bruce
as for your wishes, hmm, you may have noticed only a couple of scripts I have produced have skins. I usually go for function, more buttons the better. I will see what I can do thou.
To understand the PenMove function is pretty straightforward. In your example your image is 145 pixels high. When you place it in the script the cursor drops down one textline beyond 145 at column 0. To move the cursor back up to place a button you change the VerticalPos parmeter negative to go up, positive to go down
after placing the image the cursor is at 0,145
[Penmove,20,-120]
will move the cursor up 120 pixels and 20 to the right.
If your a smart feller you can figure out the size of your buttons and the space between etc.. and have margin varibles and spacers and so forth. But I just adjust the numbers, reload the script look at the buttons adjust a little more, reload until I get them aligned.
a [PD] (page down) will always move the cursor down one TextHeight and be at column 0
Ok, now you know everything I do. I hope that is some help
Bruce Gregory
09-27-02, 12:30 PM
Digits:
Thanks, that does clarify quite a bit. As for text editors, how can anyone know what "secret" formatting is taking place? I may have never found that "soft wrap" thing. Imagine the frustration of someone trying, as a beginner, to get something to work. Is there a "fool proof" text editor that exists for the Mac? I know you are a PC guy, but you must have friends.
The simplicity I requested is partly for me, and I think I speak for the more non-technical among us - animation is hard enough just by itself, it does rather intimidate having all of those buttons. I recall my experiences with the program "Blender" which had lots and lots and lots of little red buttons, very much like our ZScript buttons, all with cryptic names, and functions. Unless you spell it out, most people will not take the time to learn what they do by trial and error. This would explain the attraction to these super-gui's like Kai Krause (Bryce) is famous for. Right now the best animators in the business, I think, are a bunch of "tech-heads" who like complexity and technological mystery. That is fine, but many super-talented artists, would-be animators, are put off by this added level of complexity - they find it stands in the way of their creativity. So, my point is this - give them lots of function contained in a small number of very simple controls that are rather familiar. Again, you are doing this for fun and non-profit, so there has got to be a limit.
I know thatif Pixolator had the time, he would write us one incredible little animation program. And maybe he will, some day, but I doubt very soon. Its all up to you, Digits - you may stand and face the enemy and look him in the eye, or quietly retire to the peace and tranquility of your vessel, where the water quietly laps against its bow - the choice is yours.
Bruce, Gregory
:ex: Greg Smith's (Bruce Gregory) Animation Station
http://www.cyber-webs.com/zbrush/scripts/animationstation.jpg
With Bruce's kind permission I include his script "Animation Station" into the Zsphere Widget and due to his efforts it has greatly enhanced my Zsphere Widget which I very much appreciate. Bruce I hope you don't mind I changed your graphic I reformatted the buttons.
:ex: New With Version 2.7
With the addition of Bruce Gregory's Animation Station I have used a number of its subroutines to add Layer animation and OnionSkinning to the Zsphere Widget.
Layer:
Turns Layer Mode ON/OFF when in Layer Mode pressing Pose +/- or entering a Pose in the Pose Slider will automatically select that corresponding Layer. Press Place to put the model on the canvas in the corresponding layer. Layer On will also change the EXPORT function to select the correct layer for output.
Onion:
Turns ON/OFF Onion Skin option. With it on everytime you select a Pose +/- or use the Pose Slider the preceding layer will be turned on in order to view the position of the preceding frame when in Layer mode.
NOTE: Also when the Onion switch is ON using the Place button to put the model on the canvas will use the preceding Pose. This allows you to manipulate the model to progress from that frame to the new frame. Be SURE to then Save Pose to record the change.
Animate:
In Layer mode pressing this button will cycle thru the current Pose Layers until the Mouse Button is clicked. The speed of the animation is controlled by the Flipbook Delay Slider (default delay is .25)
:b3:Example:
http://www.cyber-webs.com/zbrush/Digits/onionskin.gif
1. Turn "Layer" on. The script will check for MaxPose number of layers and then create them if necessary.
2. Turn on Onion, this will allow you to see the preceding frame while you adjust your model
3. Select Pose 2 by pressing Pose "+" The script should select/create layer #2 and you should still be able to see layer one.
4. Since Onion is on, pressing "Place" to put your model on the canvas will actually put the Preceding Pose on the canvas. You can now make changes to it based upon its relation to the preceding pose displayed on the screen. Be sure to press "Save Pose" to save your changes.
5. Continue on by pressing Pose "+" and select the next Pose. Again you will see that the preceding Layer is left on and using the "Place" button will reload that pose for your adjustments. Repeat this process until all layers/poses are created.
6. Press "Animate" to look at your animation layer by layer control the speed with the Flipbook Delay slider. When you are happy with it Color and Skin each layer and use the "Export" button with Layer and Auto on to save your Animation to disk. Note the example if you leave Onion on you will see that in your output.
I have also updated the Documentation
Zsphere Widget Documentation 9/29/02 (http://www.cyber-webs.com/zbrush/scripts/zsphere_1.htm)
Bruce Gregory
09-29-02, 02:10 PM
Digits:
Before trying the new and improved widget, I still need to figure out how to use the several previous versions. May I ask for clarification on a few points?
Firstly, the "Zsphere" section of the script: Am I right in thinking that using the button placement commands do not work with symmetry? Seems like I can only get Zsphere creation to work one at a time.
Secondly: Could you clarify the orientation commands? Are we rotating our object so that it is seen from these views, or are we rotating the view itself? It seems that after using these, my symmetry controls don't line up anymore.
Thirdly: Can you instruct more completely on the use of the "weld" controls? I got objects to weld together, alright, but I can't figure out how to align these two objects in advance so that I can predict how they will look as a group. (Are you sure we couldn't change these commands so that we are not joining only "parent" and "child" objects, but individual ZSphere to ZSphere?) In other words, couldn't you create for us the function of joining any two ZSpheres together, whether they are separate objects to begin with or not? I sure wish you could.
That's all I'm confused about right now. If I could get a handle on how to use what you have so far, I could really get into a "production" mode with the widget.
Are you still thinking about adding a node distancing interpolation function? I hope so.
Thanks for all of your work,
Greg Smith
Bruce Gregory
09-29-02, 02:18 PM
Digits:
Hey! I just noticed you replaced the old "flip book" function with a 16 layer version only. Ohhhh, don't do that. I really think that was one of the most useful things. For 30 fps animations, 16 frames doesn't give you enough reference footage. It is only 1/2 of second of animation if you have a background on layer 1. Could you put the old flip-book back in - maybe under another name? I noticed the old flip-book was a little slow playing back the frames - any way to speed that up?
Hi Greg
Good questions!
<BLOCKQUOTE>quote:</font><HR>Firstly, the "Zsphere" section of the script: Am I right in thinking that using the button placement commands do not work with symmetry? Seems like I can only get Zsphere creation to work one at a time.<HR></BLOCKQUOTE>
That is correct, the X-Symmetry buttons are only for the quick convience of turning that mode on/off and not for actual creating of child nodes. Although that does give me an idea!
<BLOCKQUOTE>quote:</font><HR>Secondly: Could you clarify the orientation commands? Are we rotating our object so that it is seen from these views, or are we rotating the view itself? It seems that after using these, my symmetry controls don't line up anymore.<HR></BLOCKQUOTE>
This one is a little harder heh. The Front, Left, Right, Up, Down, etc.. buttons rotate the model in World Cordinates. This would be the same as going to Transform:Rotate and entering rotation degrees in the xy or z sliders. This does not affect the object's internal orientation, such as when you draw a sphere and rotate it using the deformation palette to rotate the Z axis 90 degrees to move the pole.
The RotX, RotY, and RotZ buttons do rotate the object's internal rotation and very important to understand in order to use the Morphing and Welding functions of the script.
Example: If you want to animate a guy turning in a circle you first want to align the objects internal axis so that he rotate about the z-axis. To test you model use go to Transform:Rotate and entering rotation degrees in the Z slider and see if your object turns the way you expect. If not use the Rot XYZ buttons to align your object to the correct orientation.
Example: You have welded a left angled branch to the trunk of your tree and you want to add a right angled branch. ReCall the Child Note by pressing the "Restore Child" button and use the Rot XYZ feature to angle the branch to angle to the right. Then "Save Child" and add it to the Trunk of your tree. (Note you could also just leave it angled to the left and use the mouse to rotate it to the right. But you then have to remember to "Save Root" or "Save Pose" otherwise if it redrawn to the canvas it will use it's original orientation) I hope that made sense :)
<BLOCKQUOTE>quote:</font><HR>Thirdly: Can you instruct more completely on the use of the "weld" controls? I got objects to weld together, alright, but I can't figure out how to align these two objects in advance so that I can predict how they will look as a group. (Are you sure we couldn't change these commands so that we are not joining only "parent" and "child" objects, but individual ZSphere to ZSphere?) In other words, couldn't you create for us the function of joining any two ZSpheres together, whether they are separate objects to begin with or not? I sure wish you could.<HR></BLOCKQUOTE>
hmm, as it is now you have to remember you are welding the "Parent" of the child to "any" node of the Root object. You can select any node of the "Root" object using the "Forward/Back" buttons and then press "Attach" to place the parent of the child on that node. Or you can use the "Mousepic" button to use the mouse to select the node on the "Root" object. Remember, if you then modify the newly welded object by moving parts etc.. you then need to press "Save Root" again to save your changes before adding another "Child" to it.
As to "Aligning" use the Rot XYZ control to set the correct orientation of the "Child" before you place it on the Root object. This is the easiest way. You can also manipulate the welded object on the root with the normal controls but be sure to save the resulting changes by "Save Root". Hopefully remembering these couple things you will be more successful.
As for joining together more than one zsphere to another, my brain is starting to hurt :) I will continue to think about it thou!
I haven't given up on my node distancing interpolation function project, one of these days hehe
As for the Flipbook feature. Never fear! I haven't broke it. Just enter the number of images you want to flip in the "Frames" slider. I gets set to the default MaxPose value but you can make it bigger. Also you can make it go faster by entering a smaller value in the "Delay" slider, it defaults to .25 seconds.
You mentioned in the other thread about keeping things simple, I hear you and I expect my scripts are probably (know) beyond what most people want to take the time to learn but in my defense I have only seen perhaps 3 people use any of my scripts (I hope there are more) Juandel, Zoid and recently Jaycephus. Therefore I write them for my own use but I still offer them up for people and even provide documentation just in case someone, such as yourself, express an interest in utilizing them.
So again, thanks for your support and please ask any questions you might have.
hey Digits when are you Going to start Giving lesson?
open up a thread like davey did.
i haven't seen a Tutorial from him in a Long time
Bruce Gregory
09-29-02, 06:03 PM
Digits:
Here is a script displaying the need for a "join ZSphere to ZSphere" function. If a character face is ever going to be convincingly animated, I think we will need this function. There are other problems as well. Tell me what you think of this construction method.
AZSphereFace.txt (http://www2.zbrushcentral.com/zbc_uploads/user_file-1033347762zws.txt)
Thanks,
Greg Smith
Wow, watching the construction of that model was worth the price of admission! How you figured all that out I don't know, but I urge everyone to take a look of some cool zsphere whippin and zippin :)
I see what you mean about being able to fuse arms of the zsphere branches. It is just that I am not sure it is possible. Perhaps Davey or Pixolator will jump in and answer a particular question I have about the zsphere data structure
This is the GET command
[ZSphereGet,
Property: 0=ZSpheres count,
1=xPos,
2=yPos,
3=zPos,
4=radius,
5=color,
6=mask,
7=ParentIndex(-1=none),
8=LastClickedIndex(-1=none),
9=TimeStamp;
10=ChildsCount,
11=ChildIndex (2nd index),
12=TimeStampCount,
13=TimeStampIndex,
14=flags,Optional ZSphere index (0 based),Optional 2nd index (0 based)]
most of these are self explainatory. Item 10 childscount will tell how many children the node has. Item 11 is a Child Index which I assume is to one of the nodes children (also labeled as 2nd index) However, is a node has more than one child how do you navigate that tree? The last item "Optional 2nd index" is that different or the same as the "child index". Also what is 14 "Flags" used for? anything?
The SET command is like this
[ZSphereSet,
Property: 0=unused,
1=xPos,
2=yPos,
3=zPos,
4=radius,
5=color,
6=mask,
7=ParentIndex,
8=unused,
9=TimeStamp,
10=unused,
11=unused,
12=unused,
13=unused,
14=flags,ZSphere index (0 based),New property value]
Now this is the important one, for what we want to do. As you can see the only thing that we can change in a node or when we create a new node is it's parent. So.... if you can see if we change a node and make it connect to another node by assigning it as a parent then the node that it is currently connected to gets disconnected! So you see the delemma here. That is why, in my Weld function I can only connect the Parent of the child model to any node on the Root. To connect any other node than the parent to the root would change the structure of the Child object.
Well, maybe by writing all this out I or someone else will see the flaw in my logic and think of a way to do it. Ya never know! :)
Good idea EZ, maybe I will whip up some more examples.
Bruce Gregory
09-29-02, 08:25 PM
Digits:
It was nuthin, just whipped it together. I've been trying every possible combination of structures I can imagine to come up with the smoothest possible adaptive mesh (given the fact that the mesh overlaps,etc.) I've even tried some experimentation with skinning adaptively, and then skinning that with a unified mesh and also the special "shift" - "make unified mesh". Nothing quite fits the bill.
Here's one for ya to keep you up all night:
"Paint a chain O' ZSpheres". Using some of the technology in your last Widget it seems like it might be possible to create a base shape on one layer (modified sphere) and then using some kind of stroke function, paint along the pixols in the layer beneath wrapping the base shape with strands of ZSpheres, then add the connection feature as a simple keyboard thing and you could quickly create conforming, interlocking shapes of any variety - see what I mean?
Think on it,
Greg Smith
"Paint a chain O' ZSpheres". believe it or not I have given it some thought as well. So many ideas but so little time. The problem with that for which I have not found an answer yet is being able to convert zsphere postion values to canvas values. Each zsphere child is in relation to the root sphere according to some sort of "Unity" scaling, to be able to place a child in a specific place on the canvas for example 320x120 in relation to the root sphere is something I haven't been able to figure out yet. But as I am writing this I just may have an idea. I'll get back on this.
Umm errr.. a slight update to this version which might be worth the hassel to download again.
To use Layers with the Onion feature you don't have to create the pose beforehand anymore. The proper sequence now is
1.. Turn "Layer" on. The script will check for MaxPose number of layers and then create them if necessary. Import or Create a object that you wish to animate and save it as Pose 1
2. Turn on Onion, this will allow you to see the preceding frame while you adjust your model
3. Select Pose 2 by pressing Pose "+" The script should select/create layer #2 and you should still be able to see layer one.
4. Since Onion is on, pressing "Place" to put your model on the canvas will actually put the Preceding Pose on the canvas. You can now make changes to it based upon its relation to the preceding pose displayed on the screen. Be sure to press "Save Pose" to save your changes.
5. Continue on by pressing Pose "+" and select the next Pose. Again you will see that the preceding Layer is left on and using the "Place" button will reload that pose for your adjustments. Repeat this process until all layers/poses are created.
6. Press "Animate" to look at your animation layer by layer control the speed with the Flipbook Delay slider. When you are happy with it Color and Skin each layer and use the "Export" button with Layer and Auto on to save your Animation to disk. Note the example if you leave Onion on you will see that in your output.
Bruce Gregory
09-30-02, 02:47 PM
Digits:
I downloaded the latest version and after trying to use it, found that it gives me a couple of (serious) errors.
Here is the way I went about using it:
Loaded ZScript. Opened "Setup" and set the max no. of frames to 16.
Opened "Animate". Checked "Layers", "Onion", "Auto Export", "Skin".
Set "Morph" to start at 1, end at 16.
Loaded Model: Positioned pose slider (left it at) 1. Placed my model manually and left in edit mode. Pressed "Store Pose". It stored it.
Manually typed into pose slider "16" and a return. (I noticed at this point that the script did not create 16 layers). I pressed the "Place" button and the script created a very bizarre ZSphere object and place and skinned it there. (No resemblance at all to my model). I pressed "Morph" and got an error message, I think about a variable being out of range. Anyway I couldn't get it to work. Remember, I'm using a Mac.
Thanks,
Greg Smith
Hi Bruce, sorry you are having problems. There was a small issue with creating the layers when you hit the layer switch, I have updated a new version to fix that 2.7b in the original post.
As for your problem, basically it is because you were trying to create a morph target while in "Layer" mode. Normally you would still have your model in "edit" mode when you selected the 16th pose to make the end target. But since you turned on "Layers" when you selected Pose 16 the script switched you to Layer 16 (fixed now) and you lost edit mode on your model. When you pressed "Place" it will try to place pose 16 on your canvas but you don't have pose 16 yet! The fix would be to manually put your model back on the canvas and enter edit mode. Then Press "Save Pose".
Try creating your morph without "layers" on, and then turn layers on to place each pose.
Also don't switch Skin on until you are ready for output, because you will lose the ability to "Save Pose" on a skinned object and it won't work as a morph target
Also another way to build your animation would be like this.
Load Zsphere Widget
1. Turn on layers - (From a clean start this should create 16 layers in your case be sure to download the update) You should see the script creating them
2. Turn on Onion - this will tell the script to keep the previous layer on so that you can see the preceding frame. Also importantly when you use the "Place" button it will actually load the preceding Pose.
3. Import or create a new model and draw it on the canvas
4. Press "Save Pose" to create your beginning position.
5. Press the "+" button to move to Pose 2 (which hasn't been created yet) you will move to layer 2 and still be able to see your 2.5D model in layer 1
6. Press "Place" remember since "Onion" is on this will load pose #1 instead of the non-existant pose #2. The model should be created exactly in the position of the model in layer 1.
7 you are automatically put into "Rotate" mode so use your mouse to move your model's arms etc... you can use the displayed position in pose one to decide just how much you want to move it for a good animation.
8. when you are satisfied with pose 2 press "Save Pose"
9. Press the "+" button to move to pose 3 and to layer 3. The same thing will happen. you will still be able to see pose 2 and when you press the "Place" button it will load pose 2 in layer 3 so that you can make adjustments. Press "Save Pose" when you are done with that
Keep on doing this until you have created your 16 frames.
then if everything looks good, you might go back to layers and tweek them by IMPORTANT turn "Onion" off so you get the correct pose ,clearing the layer and pressing "Place" to recall your pose, fine tune it and save it.
when you are all ready to go you can either go to each layer and skin each one then press "Export" with auto so that it will export each layer.
or
turn layer off.
clear the frame you are in
press skin
press auto
press best-render if you like (be sure to turn shadows etc... on)
then hit export
the script will create each pose in the one layer, skin it, best render it and then export the frame into a numerically ennumerated file of your choosing.
anyhoo, I hope this isn't too confusing, try it!
Bruce Gregory
09-30-02, 06:18 PM
Digits:
Thanks for the speedy reply. I know you have a real job, so this was fast, indeed. I'll try your method step by step. I'm still wasting away trying to create a posable face with ZSpheres, and I am getting closer, except I can't show anyone a proper ZScript. I don't know what you really saw when you played that other one I sent you, but when I downloaded my script from the link, and played it, it went wacky about half way through. Would you look at this oneZSphereFacialModel1.txt (http://www2.zbrushcentral.com/zbc_uploads/user_file-1033434999gdi.txt) and let me know what you see. It's not a pretty face, but should look relatively human - see the post entitled "ZFix - Could you provide a Mac Version" to see what you should end up with.
Do you have any ideas why these things are still fouling up?
Thanks again,
Greg Smith
Bruce Gregory
09-30-02, 08:39 PM
Digits:
I downloaded the 2.7b version and got the step by step method to work. It is really nice. It is step by step or frame by frame, however. Which leads me to another question:
Can you write out the steps as you just did for an example where - (I'm using my facial model here)
16 poses are set up,
Model posed on frame 1
Exact pose duplicated on frame 16
Morph between 1 and 16 creating 16 identical poses.
Change frame 8 - change frame 16
Create new morph between frames 8 and 16,
Change frame 1
Create new morph between frames 1 and 8.
Tweak the inbetween frames each a little.
The objective is to start with one pose
You then set up the "extreme" positions
Let the computer do some of the inbetweening
You fine tune the remaining frames.
Can it be done, and how? (step by step).
Thanks for your trouble,
Greg Smith
Hi Bruce
I did play your script and it did seem to hit the twilight zone, why I have no idea. I think perhaps one slight rounding of a recorded postion could build up alot of error by the end. Perhaps they will fix this.
I never thought of inbetweening the Tween. And it should work except I tried and the script doesn't work as I expected. I will have to see what the problem is. However I will give the steps.
:b3: Start with new reload
:b3: Move the End Slider for the morph to max (i notice the default is 10 even if you have made the program do 16 poses)
:b3: Do not select layer, onion, auto or best render yet.
:b3: Import or create your model and save it as Pose 1 by pressing "Save Pose"
Still in edit mode press the "-" key to select the last pose - pose 16 in your case
:b3: use the mouse and modify your model and Press "Save Pose" and save it as pose 16
:b3: Press the "Morph" button and it will create 14 poses based upon the start and end values of the sliders.
:b3: Now to tween inbetween (does't work correctly)
:b3: select pose 8 using the "+" or "-" buttons
:b3: restore pose 8 by "Restore Pose" or "Place"
:b3: modify it
:b3: change the End slider to 8 and Press "Morph"
:b3: Now that should create new poses and leave the ones greater than 8
:b3: you should then be able to select pose 16 and recall that pose. Change the start slider to 8 and the end slider to 16 and "Morph" it.
For some reason it doesn't do this right, but I will figure it out and get back to you.
:)
but it should give you an idea of how to use the morph, as it works for the intial 16 frames
Bruce Gregory
10-01-02, 11:33 AM
Thanks Digits.
In reevaluating my questions and the reason for them, I realised that what I am trying to make functional is a kind of blend between the "Layers" aspect of your program and the "Morph" and "Auto Export" aspects. In other words, one would have the "fractional inbetweening" function as you described it should work, above, and the ability to see several reference poses as onion skin layers beneath while establishing the poses needed (the extremes) for the tween. This would be the only practical way to fine tune movement of a character, and get the results you are aiming at. Of course having the computer approximate the "tween" is a help and time saver, because then the adjustments would be more minor. And if you could somehow, after depositing all the poses, when complete and correct, on the 16 layers, use the controls on my Animation Station to view them, and your controls to auto export them, this would start to resemble the actual workflow that would be ideal for a full time animator.
Now, as you explained, this is not really your goal, it's mine - you designed this software for your uses and I fully understand, especially from the viewpoint of time spent on this project. But, I might add, blending these functions seamlessly together couldn't hurt, now, could it? Even from the standpoint of what is necessary for your uses, it could be a good thing. I'll leave it up to you. It's a great adventure you have embarked upon here, and it keeps getting better - sort of like ZBrush itself.
Thanks a million,
Greg Smith
Hi again Bruce, again I appreciate your questions. If I am following you correctly in what you want to do, try this
Follow the steps above and morph 16 poses without Layer etc.. on
Now... that you don't have any Empty poses turn layer and onion on.
the script will then create 16 layers in which you can use the controls and place each pose within. (the key here is that you have all 16 poses so that when you press the + or - key you can use the "Place" button)
Now when you want to change a pose you can go to that pose, it will select the correct layer, then press Place to recreate it on the canvas. Then make your changes and Press "Save Pose"
In version 2.7c (soon) I will add a Put All Poses button that will automatically put all the poses in each layer so that you don't have to go to each one individually.
I am looking into the morphing problem but I think you will soon be able to work with layers, onion and morphing without a problem. Again, once you have at created all poses then you can use layer without worries.
hope that helps
Antimorph
10-01-02, 02:41 PM
This is all very interesting stuff.. I have a few questions for the masters.
With Zscript, would it be possible to:-
a) reverse strokes and play them backwards programatically?
b) play partial strokes,pause and resume strokes programatically?
b.5) play any fraction of a stored stroke, stop it, and re-record the remainder?
c) play multiple strokes in the same timeframe?
d) transform strokes programatically (eg. move the origin 100 pixels to the right and 20 pixels up, or in effect to - pin it to the center of a sphere -). Transforming strokes in 3d would be cool too, can we fix a stroke to a plane, rotate the plane, and play back this transformed stroke?
e) save strokes in some form of database or array structure?
Many thanks for your consideration
Version 2.8 is now available which fixes the Morphing problem. You can now tween inbetween frames.
i.e.
morph 16 frames
go to frame 8 and modify pose save it
morph frame 1 to 8 to tween them
morph frame 8 to 16 to complete the tween
or any combinations of the above
Also added Autoput. When in layer mode instead of having to go to each frame and place your pose, press autoput and it will do it automatically. Works best if Layer mode is on.
http://www.cyber-webs.com/zbrush/digits/amorph.gif
Antimorph, I am assuming you mean brush strokes? A script can do alot of what you mentioned. If you look at some of my widgets there are a number of them that deal with stroke files either for brushes or to control 3D objects. My Stroke widget can call up to 10 stored strokes etc... Since the stroke contains xyz information I have used it as a animation path as well in my animation widget. I am sure there is alot more uses to be invented yet.
Bruce Gregory
10-04-02, 01:51 PM
Digits:
Thank you for that last bug fix and new feature. This thing is really taking shape. I think, at this point, it would be helpful if you could write up a description of how you would approach a "workflow" situation. Step by step is always best.
I haven't gotten a chance to experiment with the latest version yet, but will today. I'm not entirely clear on how to integrate the posing and morphing with "onion-skinning" as you have defined it. Which comes first, the chicken or the egg, so to speak. It seems you have set the Widget up to pose and morph firstly, and then to secondly "autoput" to the layers, view, and then go back to the pose and morph methods. Can you more clearly describe the workflow approach whereby one can pose, morph, tweak, repose, remorph, retweak, all while being able to see what was done previously via onion skin? The way I see it, you are kind of posing in the dark without reference, morphing, autoputting to layers to check results in real-time speed, then returning to the dark to pose and tweak and remorph - maybe you can enlighten me on this. I really appreciate your continued work on this. I'd love to share my progress and lack of it involving Zsphere head creation, but lacking a reliable recording method, I can't really convey very much. (I can't get any ZSphere recording, or other types of recording via ZScripts to work on my Mac - and nobody's talking at this point).
Thanks a million,
Greg Smith
Hi Bruce, again thanks for your continued interest.
I am off to Hawaii (yeah!) tommarrow for a week, when I get back I will put together a little tutorial that hopefully will help you out. Meanwhile I hope you continue to experiment, perhaps you will discover your own method.
Aloha!
Antimorph
10-04-02, 04:08 PM
Thanks for the tips Digits :)
Is it just me? I haven't been able to use this script without zbrush crashing afterward. The script works great, but after I have my model and push previous under zscripts.. it crashes every time. I've also tried using load to load default script, and it crashes. I've downloaded the standard only.. crashes; I've downloaded the full new 2.8; and it crashes.. I have no problem with zbrush crashing except with this script and it seems no one else is having this problem. Can someone help?
oh I'm running windows ME; 512 memory; 40 gig harddrive.. and Pentium 3 850
<font color="#949494" size="1"> November 03, 2002 Message edited by: wenna </font>
Hi Wenna
First of all thanks for giving the script a whirl. As for your problem I am running ME as well with 512 megs of memory and have no problems with reloading scripts. However, I do have issues with the same thing with other scripts, specifically the tutorial that the Zbrush installation boots with and scripts like MaterialList, Zlist etc.. which have been well documented as problems. The word is that they will fix this with the upcoming update and hopefully that will fix your problem with the Zsphere Widget as well.
*crosses fingers*
Thanks for your quick reply Digit! Funny, I don't have any trouble with Texture Master; MaterialList; or the zlists..
oh well.. I am hoping you are right.. LOL
juandel
01-10-03, 10:54 AM
finally getting into this. another wowzer widget, Digits! :tu:s to no end! so here are my first crude attempts - "nighttrain", done after playing with the placements feature for a few minutes (all one monocoloured tool placed with different stroke-types on several layers, each layer done with a lil modified version of one material):
http://www.cyber-webs.com/zbrush/juandel/zifwidaf.jpg
and a tree i created using the fantastico weld-feature. rendering took the triple time of creating tree, terrain and rest, but all was done while having two beers (0.5 liters each) only (fast drinker over here :))
http://www.cyber-webs.com/zbrush/juandel/treewflat.jpg
thanks for viewing and you, Digits, for taking time to build such a superneatobandito script! next thing i want to do using the widget (other than creating better trees) is to try to do some zsphere-writing (i think the attractors could add great effects for creating bombastico 3d-headers!) - hmmm, is there a way to place additional (+ traditional) zspheres other than in 90 degrees angles while staying on one axis’ plane with this widget?
- juju
robotalk
01-12-03, 11:19 AM
Hey Juandel--I think your use of Digit's latest widget is great--both images are impressive -but the trees are Magnificent what a beautiful yet somewhat eerie quality they have--marvelous work !
Wow Juandel your imagination always takes my breath away, these are fantasico, as you might say :) I can well believe the render time in the forest scene, that shadowing and contrast are just wonderful.
With the next upgrade I will add functionality for the Attractor nodes and other stuff.
If I am understanding you right, then yes only 90 degrees. but if you use the move buttons, say for example:
1 move left and 1 move up you have a 45 degree angle.
also change the Spacing values to change the distance one of the move buttons make.
I have added a few things to my zif widget if you would like to check it out
Zif_Widget.txt (http://www2.zbrushcentral.com/zbc_uploads/user_file-1042399987gmx.txt)
To try the mirror function make a test model in the shape of a "T"
then deselect the X and Z switches and press "Mirror" it will automatically flip over the "T" and put it on the bottom.
Then
put 45 in the "Angle" slider and press the "Z Rot +" this should **** the model
deselect "Y" and select "X" on the Mirror switches.
Press "Mirror" and it should make an X type structure!
Also with this version you can select more than one Node to modify
position you mouse over a node
press "s" to select it (it should change color"
move your mouse to hover over another node and press "Shift S"
now you should have two selected and if you use the move, size ... they both will be effected. select any number you want.
Note: each time you do a "Shift s" release the keys before you do another so that zbrush will see the keypress.
Also:
When you are doing "Welding" the model has nodes occupying the same space which sometimes makes it look alittle funny. Press the "Clean" button to remove them.
Anyhoo, thanks for your interest my friend happy widgeting!
Powered by vBulletin® Version 4.1.11 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.