Poser 3 Workbench Tutorial #1

By Bill Allen / Images by the Author


Click to read this tutorial without frames
[_Top_|_Disclaimer_|_1_|_2_|_3_|_4_|_5_|_Buttons_] [_Tutorials_|_Tips_]

Status: A concluding section 5 was added 1 June 1999. The rest of this tutorial was first posted 18 May 1999 with minor corrections since.

Purpose: This tutorial shows how to create a "workbench figure" for "warp modeling" a smooth 90° curve into a footCube prop.

Requirements: To do this exercise, you will need Poser 3.0.1, and you will either need to make a footCube from a Poser box prop according to instructions, or download the ready-to-use footCube8x8.
___ The standard Poser box prop by itself won't serve for this tutorial (at least, not without some extra math steps). The footCube1x1 props provided here won't work, either, because they aren't made of enough polygons to allow warping into new shapes, and boxes or footCube props from other sources may not serve for this tutorial for the same reason.

Note: For this article, the measure prop footCube will be referred to as being in a Library\Props palette called "measures." If you put these props elsewhere, subtitute that location for instructions such as, "load a Props\measures\footCube8x8 prop." (To create a new prop library palette, use the Props dropdown Add New Category command, or manually add a new folder to Runtime\libraries\props.)

Disclaimer: The modeling technique shown in this tutorial is NOT part of how Poser 3.x was designed to be used, and is NOT how MetaCreations instructs people to use Poser, which technically has almost no built-in modeling capabilities. In your exploring the possibilities of the technique shown here (especially if you do extreme distortions and self-intersections), it is possible and even likely that you will lock up or crash Poser and/or the operating system, and this could conceivably require reinstalling Poser and/or the operating system.
PROCEED AT YOUR OWN RISK. Always close any applications you don't need to have running, both for safety and to free up needed RAM. Do not practice this technique with any irreplaceable data files open, nor while running any programs that might destroy their data files in a system crash (e.g., database programs).
This technique has been explored satisfactorily both on a Pentium P5-133 with 64Mb RAM running Windows NT4.3 without hardware 3D acceleration, and on a Pentium II-366 with 192Mb RAM running Windows 98 with acceleration from an ATI Rage LT Pro AGP 2X with 8Mb RAM. Both experienced occasional non-catastrophic lockups.


[_Top_|_Disclaimer_|_1_|_2_|_3_|_4_|_5_|_Buttons_] [_Tutorials_|_Tips_]

1 Creating a figure from props
This will be much like creating a basic ballzac. The technique described here is not difficult, but it also is not obvious, so every last detail is given, hopefully in a way that can be followed by people totally new to 3D graphics as well as by those who are used to working in 3D spaces.
1a__ Boot Poser clean and delete any figures or props that may have loaded by default. Work will be easier if you turn OFF Display/Ground Shadows and Display/Guides/Ground Plane.
___ Load one Props/Prop Types/Ball. Move it down by double-clicking on yTran and entering -0.175. Double click on xTran and zTran to make sure they both have the value 0.000. Alternately, Alt/Opt-click on those dials to force them to default, which in this case is 0.000.
Note: For most modeling work, diddling the parameter dials with the mouse is not as exact or quick as direct numeric input. And the parameter dial value readout seen in the main Poser workspace can differ from the value you will see in a Edit Parameter Dial dialog.

1b__ Load one Props/measures/footCube8x8. Make sure its xyzTran values are all 0.000, and yScale it to 10%.

1c__ Load one Props/Prop Types/Ball again. Move it up with a yTran value of 0.1.
Note: These yTran values are rather arbitrary for this exercise, keeping the two balls close to the footCube just for viewing convenience.
Flattening a footCube to 10% of its Y dimension.
This soon-to-be workbench figure is created from two Poser Props/Prop Types/Ball objects separated by a Props/measures/footCube8x8 object that has been yScaled to 10%. The objective is to bend the flattened footCube into a nice 90° curve.

1d__ File/Export/Wavefront OBJ this scene (single frame) as a new file to a new folder you create, called together Runtime\Geometries\1wkBench\wb1.obj. Enable "Export object groups for each body part" when prompted during the save. (Nothing else should go in this folder, except an .rsr file that Poser will put there later--on PC only, not Mac.)

1e__ Only two other files go into this new folder. One is an .rsr file that Poser will put there later. The other is a Poser hierarchy .phi file that you will create there now, using a ASCII wordprocessor such as SimpleText or Windows Notepad. Name the file "wb1.phi" and save this text in it:


objFile :Runtime:Geometries:1wkbench:wb1.obj 1 ball_2 xyz 2 footCube8x8_1 xyz 3 ball_1 xyz
The rotation order specified here as xyz for all three objects was chosen for working later in Front view, and for manipulating the zRotate parameters of ball_1, which will act upon footCube8x8_1.

1f__ Do a File/New (there's probably no reason to save when prompted) and then File/Convert Hier File, loading Runtime\Geometries\1wkBench\wb1.phi. When prompted for "New set name," call it "workBench1" or some such name. You will see the Figures/New Figures palette open and a shrugger with the figure (set) name below it. Double-click on this to bring the figure into your empty Document Window. You now have a workbench figure, and are ready to begin warp modeling.
After successfully importing the workbench figure, the Figures/New Figures palette will open with a shrugging icon. Double-clicking that brings the new figure into the Document Window for the first time.
Note: Your screen will look different. These illustrations are all arranged and cropped for the smallest possible download.
Clicking the shrugger icon in Figures/New Figures brings your new figure into the Document Window.


[_Top_|_Disclaimer_|_1_|_2_|_3_|_4_|_5_|_Buttons_] [_Tutorials_|_Tips_]

2 Warping a workbench figure
Because of how we created this figure, the parent object is ball_2 at top. It acts here as an anchor or vise to hold the work we will do on the middle element, footCube8x8_1, while ball_1 on the bottom will be the tool with which we warp the footCube.
Note 1: If you expect to do a lot of work with any workbench figure, especially repeat work, put it into a special palette you create, named something like Libraries/Figures/Workbench. (When you save to a figure palette, the shrugger icon is replaced by a snapshot of your Document Window, so pose the camera purposefully just before saving.)
Note 2: Save a new working situation as a regular Poser .pz3 file, renaming it at each critical juncture so, if necessary, you can return to the backup at that stage. Generally, don't save data files in a program's root folder, but create a folder named something like Poser 3/working, or /backup, or /workbench, where you can put your temporary working files (and easily clean them out when finished).

2a__ In Front camera view, move the camera to make the figure fill much of the Document Window. Select ball_1 and bring up Window/Joint Parameters (Shift-Ctrl/Cmd J). Under Joint Parameters/center, notice that the Center Point X value will be something like -0.050, and the End Point X value something like 0.050. Zero-out both values, which is better done with numeric entry, though you also can move these points by dragging the center of the red and green crosshairs with your mouse.
The crosshairs represent the End (red) and Center Points (green) of the selected element, which here is ball_1. In this step, leave the Y values of -0.126 as they are. When the End and Center Points are zeroed out, they will seem to disappear, unless you are viewing in wireframe.
Center the Center and End Point X values from +/- 0.050 to 0.
2b__ Make sure Display/Tracking/Full Tracking is on. Select the footCube and change to Display/Element Style/Hidden Line.
___ Select ball_1 and twiddle the zRotate dial some to see what happens. Notice that you cannot get a perfect 90° bend, but you sure can do some bending of the footCube object.
Fair warning: If you get too bizarre with warping a figure element, you can overwhelm Poser and freeze or crash it. Avoid self-intersections and extreme distortions with no practical use.

Giving ball_1 various zRotate values, causing the footCube to distort, as seen in Front view.
2c__ Set ball_1's zRotate at -90° and go to Joint Parameters/zRotate. Move the mouse over ball_1 and you will see red/green "crosshairs" appear centered on ball_1. These represent the joint inclusion and exclusions angles, normally used by advanced figure creators for very different purposes.
___ With the mouse over the Joint Angles centerpoint, you will see the mouse pointer becomes a bullseye. Click and drag this to the upper right a short distance, and the footCube start to move into a tighter curve.
___ Zoom in now and move the Joint Angles until the upper left and lower right end approach or barely overlap the very ends of the footCube equally. This will definitely mangle ball_1, but that's OK. (If it disappears and you need to select it, use the Current Element menu.)

Click to see 90K animation of how changing the Joint Angles can affect the footCube mesh.
Setting up to control the bend in the footCube by mainpulating ball_1's zRotate parameters.

Approach the respective ends of the footCube with the green crosshair.
Moving ball_1's zRotate Joint Angles across the footCube mesh directly affects how the rotation works upon the footCube. Click to see an 90K animation.


[_Top_|_Disclaimer_|_1_|_2_|_3_|_4_|_5_|_Buttons_] [_Tutorials_|_Tips_]

3 Shaping a workbench element to plan
How do you get the right shape? In the original 3D Artist #36 article, a reference ball prop was shown for checking the footCube's curve. Such an object is zTran'd back enough so it doesn't obscure the workbench figure elements, but it can't be locked, and the presence of any reference object will make click-selecting workbench elements more difficult.
___ For a purpose such as creating an easily rescaled rounded corner element for the cottage shown in the "What's a Foot?" article, one sure way to get the right shape with the tools available in Poser 3 is to build a jig. The cottage walls are built of footCubes x- and yScaled into the various building blocks, but all left at one-foot thick (100% zScale). The walls don't overlap but intersect at their inside corners, leaving an empty space one foot square. Thus, the flattened footCube in our workbench figure needs to fit exactly into a one-foot-cubed space. (By creating it as such, the prop that will result from this exercise at one-foot tall can be easily yScaled later to match any wall height.)

3a__ Turn OFF Edit/Properties/Visible (Ctrl/Cmd-I) for each of the three workbench figure elements. Your Document Window now should appear to be empty.
___ To build the jig, import three footCubes. Since no warping or mapping is involved for these objects, the RAM-friendly Props/measures/footCube1x1 will do the job.
footCube1x1_1, xTran to -0.127
footCube1x1_2, zTran to -0.127
footCube1x1_3, yTran to -0.127
If these footCubes aren't just touching each other on two edges each, then make it so.
___ File/Export/Wavefront OBJ the scene's visible elements. Enable Single Frame and "Export object groups" when presented with dialog prompts during the export process, and save to your working folder as file name "jig.obj". Select and delete (Alt/Opt-ED) each of the three props.
___ File/Import/Wavefront OBJ the jig.obj file. Answer the import dialog with Centered on, and everything else off (especially "Place on floor" and %sfs), except leave "Make polygon normals consistent" as however it comes up. You will see this appear as jig.obj_1 in the Current Element menu. (You might want to save it to your Props/measures palette at this point, or, the next time you need it, just reimport the obj file.)
___ Speaking of the Current Element menu, use it now to select each of the workbench figure element's Visible property (ball_1, ball_2, and footCube8x8_1). Now that you can see the jig and figure's relative positions, zTran jig.obj_1 to about -0.064, and otherwise budge it around in Front view until it somewhat encompasses the footCube8x8 mesh. (You also can relocate the workbench figure by moving its ball_2 parent, and probably with similar good result, but here we'll move the jig, instead.)

Important: Save to a new .pz3 file name now, as you likely will find yourself coming back to start over or to try different approachs.

Quick alternate: Instead of creating a jig prop, place the three footCubes as described above, and Edit/Properties/Set Parent both footCube1x1_2 and _3 to _1. You won't need to hide the workbench figure or go through the export/import process, and you will be able to adjust the assemblage's position by moving just the parent, footCube1x1_1. Since these props remain separate, you can give each a different Render/Surface Material/Object Color (Ctrl/Cmd-U) to better help you stay oriented. However, you can't lock the positions of the two child footCubes relative to the parent, and you will have three hazards instead of one for accidental selections.
Main camera view showing jig set initially around workbench figure.
The jig in place, ready to guide final shaping of the footCube8x8 element, seen in Hidden Line. The workbench parent element, ball_2, is the green ball at top. The red ball_1 is just visibible, squashed between two of its zRotate Joint Angle lines. Work is best done in Front view, but quick looks via Main Camera can greatly help the mind's eye.

3b__ Note: From here on, when "the footCube" is referred to, this is the footCube8x8_1 middle element in the workbench figure.
___ You should find that the footCube remains one foot long on the Z-axis, but, as seen in front view, does not measure one foot on the other two axes. If the Window/Joint Parameters/zRotate dialog isn't open, make it so with the Ctrl/Cmd+Shift-J keyboard shortcut.
___ This is where you need to begin to learn by playing around to gain experience. There can be no exact "folow-the-numbers" guidance for completing this step. At first it will seem like chasing bubbles while deflating an air mattress, because changing one control can mess up another. Here are some hints:
1) The primary controls you have are the two upper red/green Joint Angle lines, which, along with their center point, must remain fairly symmetrical to the footCube. You will probably need to bring these lines in completely past the ends of the footCube (completely within the first row of polygons), and may find that it helps anchor the curve if you bring them into the second row of polygons, though that will leave flat two sides that otherwise would contribute to our "curve."
Now the work begins, to shape the footCube to fit an area one-foot square.
2) Use the Center Point (intersection of the red/green Joint Angle lines). Moving it slightly up and to the left from its position in the screen shot at above right will do a lot to bring the footCube into the desired boundaries, though it will probably also disrupt other adjustments.
3) You may find it useful to spread the two lower red/green Joint Angles to constrain how the footCube spreads, but make sure these lines don't intersect the mesh, and be ready to get them out of the way if other changes cause such intersection. (Don't get these crossed. E.g., putting the lower green between the upper and lower red could get weird.)
4) Try changing the ball_1 zRotate angle, very slightly at first, perhaps backing it off from -90 to around -87°.
5) We have mostly ignored the figure's parent, ball_2, until now, but performing a tiny xScale may help get the final shape. Scaling the parent element scales both child elements in a Poser figure. Doing an xScale on either of the other elements are other possibilities. Leave these as a last resort. (Avoid other scaling parameters.)
___ Move the jig around so that the upper left cube's top right corner always abutts the top left corner of the footCube. Remember that the goal is for both ends of the curve to fit smoothly to the outsides of the jig's left and lower reference cubes.
___ If you get the curve you want but it doesn't complete the arc from top to bottom cube in the jig, you can rotate the jig to see if the curve will drop into place. Select the jig.obj_1, bring up Joint Parameters/center, and move the object's Center Point (green crosshairs) to the upper left corner of the footCube mesh. (You may have to back the camera out to see where the the jig's Center Point is to grab it, or try manually entering 0,0.128,0 into the XYZ windows.)
Tilting the jig to line up better with the work.
Almost home. The jig's Center Point has been moved to the top left corner of the footCube mesh, and then the jig zRotated 6° on that pivot point. At this point, the ball_1 zRotate has been backed off all the way to -77.219°.

Good enough for Poser work! Back this critter up now to a newly named .pz3 file before anything can go wrong.
___ In the image at right, you can see that the object's "curve" isn't quite perfect, and the footCube's ends don't butt correctly against the jig's sides. However, the outside curve is fairly even, and the outside surfaces will fairly accurately line up with cottage walls formed from foot-thick footCubes. This is probably as well formed as you can get with the tools at hand in Poser 3. And, hopefully, you have something better to be doing with Poser than chasing computerized perfection to depict a world with surprisingly few straight lines.
All done with shaping a reasonably good curve.
The final ball_1 zRotate was -67.219°, and the final jig zRotate was 10°. Though tempting, there was no use of scaling, thus avoiding having to correct for unwanted distortions.


[_Top_|_Disclaimer_|_1_|_2_|_3_|_4_|_5_|_Buttons_] [_Tutorials_|_Tips_]

4 Saving & using your work

4a__ To save the curved footCube, first hide or Edit/Delete the jig, then hide both ball_1 and _2. Now File/Export/Wavefront OBJ to your working folder a new file called "corner.obj" with "Export object groups" enabled.
___ Do a File/New and File/Import/Wavefront OBJ to bring the corner object back in, with all Prop Import Options off except Centered and "Make polygon normals consistent." This export/import process freezes the geometry in the shape you just gave it in the above steps, however, it still needs some additional prep to get it ready for use as a manageable prop.

4b__ If off, turn ON both Display/Ground Shadows and Display/Guides/Ground Plane. What you will see, something like the screen shot at right, isn't what you want to get.
___ Select the corner.obj_1 and xRotate it 90° into an upright position use Figure/Drop to Floor to get it to rest correctly on the ground. It can be useful to rotate the corner object to be square with Poser, much like we set up the jig earlier, load a Prop\measure\footCube1x1 and zTran it -0.126, and load one more and xTran that -0.126 (or fit by eye). In Top view, zoom in and yRotate the corner.obj_1 so it is ready to line up with walls built square on the XYZ axes. The yRotate value needed here was 10°, but results may vary. Then delete the footCubes.
___ Turn OFF Display/Guides/Ground Plane, and export the object again, calling it corner2.obj. (If you export with the Ground Plane on, that will become a part of the exported object, and not easily separated from it.)
The newly imported corner object.
The corner object probably won't import in a very useful position (above). So xRotate it onto its side and drop it to the floor, then zoom in From Top view and yRotate it into a square position against temporary reference footCubes (below).
yRotating the corner object into a square position.

4b__ Reimport the convert2.obj file into an empty Document Window. This time, enable Prop Import Options Centered, Place on Floor, "Make polygon normals consistent," and disable the other options. The result should be a corner object that arrives square to and centered on the Poser world (as shown at right from below the ground plane). This is an object free of all the parameters that were assigned along the way in the many previous steps, ready for fresh manipulation.
___ All that's left to do now is to save the corner object for future use as a building block. Set a distinctive full-frame view from the Main Camera (45-55mm Focal recommended), open to the Props palette where you would like to keep the object, select the object, click on the + symbol, and give a New set name: "footCorner."
Ready to save as a prop, square to and centered on the Poser world.

4c__ "The proof is in the putting," and here the footCorner prop has been put at the junction of two walls. The larger wall pieces seen here are footCubes that have been yScaled 800%. For demo, the footCorner prop has been yScaled 700% and the scene is seen in Flat Shaded view to show faceting, but the corner object will appear nicely rounded and will fit flush in higher quality views (inset at right).
___ If you see something odd like ripples in rendered warp-modeled objects, you may have accidentally introduced some shear or other unwanted distortion during the warp modeling process, or this may be due just to general crankiness in the Poser rendering engine. Try resetting the lights, moving them around, and otherwise adjusting their parameters. (E.g., turn off the Casts Shadows property for each light in turn to see if it is the culprit.)
A housing test.

4d__ Just finished, with memory fresh, this is the best time to clear out your working folder. Delete or, better, archive the files there. If you won't need this workbench figure anymore, you also can remove its .cr2 file (and .rsr if there is one) from the Runtime\libraries\character folder you have it in, as well as its corresponding Runtime\Geometries folder and contents.


[_Top_|_Disclaimer_|_1_|_2_|_3_|_4_|_5_|_Buttons_] [_Tutorials_|_Tips_]

5 Conclusion

5a__ What you have learned
1) How to import and export Wavefront .obj files.
2) How to create and save Poser props.
3) How to create your own Poser figures, working with .phi files and using File/Convert Hier File.
4) How to model using Poser 3 alone, including how to create reference objects (in this case, a jig) to obtain the results you want, how to use building blocks, and how to warp model.
5) Some basic familiarity with the Joint Parameters dialog, and how it can be used to help control how figure elements interact. (An indirect lesson. See MetaCreations' Poser 3 Advanced Techniques Manual for much more about this.)

5b__ Found art
As you go through this exercise to warp the footCube, you will see ball_1 transition through some interesting shapes, such as becoming egg-shaped or a perfect hemisphere. And you may see the footCube8x8 spring into an unusual but potentially useful structural shape. Save the best of these non-planned shapes while you've got them, rather than trying to come back and create them over again later.

5c__ Inverse Kinematics
As a variation on the above exercise, try it with an activated IK chain. Re-create the workbench figure using this .phi file:


objFile :Runtime:Geometries:1wkbench:wb1.obj 1 ball_2 xyz 2 footCube8x8_1 xyz 3 ball_1 xyz ikChain wkChain ball_2 footCube8x8_1 ball_1
An unusual possible structural object found by accident.

Turn on Figure/Use Kinematics/wkChain for the new figure. Note that you now have three new controls you didn't have before for warping the figure: xyzTran for ball_1, of which xTrand and yTran probably will be most useful.
___ If you have IK chains in your workbench figures, turn them on or off at the outset and don't switch in midcourse. At least not without doing a fresh save first, as switching can cause undoable changes.
___ This is a good time to mention that you should occasionally look at the warped object in Smooth Shaded instead of Wireframe or Hidden Line view. If, while moving the camera around, you see sides of the object appearing and disappearing, then you have turned the object inside-out, and the work will be unuseable if you continue in this direction. (The other elements in the figure, used to control the warping, are likely to turn inside-out during the process, so don't worry about that.)

5d__ Rotation orders
For many more variations on the above exercise, try creating figures with different rotation orders (each element's xyz, yzx, etc. statement in the .phi file). How the parts relate to each other will change, both with general parameters and with Joint Parameters.

5e__ Iterations
We got the corner building block we wanted in this exercise, but what could you do if you created a new workbench figure with the corner object? You could substitute it where we previously had the footCube8x8, probably with all four corners evenly on the ground, and the curved side either up or down.
___ Pursuing this with the corner object might not be fruitful, but the point is to think of warp modeling not as a one-step process, but as something that might progress through multiple workbench figures to get the results you want.

5f__ ASCII, if you like
Using a simple, plain-text, ASCII wordprocessor such as Mac SimpleText or Windows Notepad, you can open the footCorner.pp2 file and look at its guts. At the top of the file, you will notice a line that says something like "prop corner2.obj_1". When you load the first of these props into a new scene, it will come in with that name, "corner2.obj_1", the second will come in as "corner2.obj_2", etc.
___ Wouldn't it be nice if that prop always came in as "footCorner_1", etc.? No sweat, so long as you exercise some care (and also put a copy of the .pp2 file somewhere else for safety). Search for the four instances of that name--"corner2.obj_1" or whatever you have, and replace each with "footCorner". Make sure each instance of the new name matches the others perfectly in spelling and case. Change nothing else in the file, including formatting (the tabs and spaces), and, if you slip, start over fresh rather than trying to repair changes you didn't want.
___ The result of changing prop files' internal namings is that you will have an easier-to-use Current Element pick list when a scene is populated by many props, such as when stacking many building blocks.

[That's all folks!]


[_Top_|_Disclaimer_|_1_|_2_|_3_|_4_|_5_|_Buttons_] [_Tutorials_|_Tips_]
3DA#36 supplement [3DA#36]


[3DA home page] [site news] [article index] [back issues] [subscribe!]

Revised: 12 June 99
http://www.3dartist.com/3dao/r/allenbil/whats01/wkbnch01.htm
© Copyright 1999 Columbine, Inc. - All Rights Reserved
3D ARTIST magazine / Columbine, Inc. · P.O. Box 4787, Santa Fe, NM 87502 USA
505/424-8945 voice · 505/424-8946 fax · <webmaster@3dartist.com>
Any mentioned trademarks are the property of their respective owners.