• Welcome to the Community Forums at HiveWire 3D! Please note that the user name you choose for our forum will be displayed to the public. Our store was closed as January 4, 2021. You can find HiveWire 3D and Lisa's Botanicals products, as well as many of our Contributing Artists, at Renderosity. This thread lists where many are now selling their products. Renderosity is generously putting products which were purchased at HiveWire 3D and are now sold at their store into customer accounts by gifting them. This is not an overnight process so please be patient, if you have already emailed them about this. If you have NOT emailed them, please see the 2nd post in this thread for instructions on what you need to do

My rather infrequent, and possibly apocryphal, 'books project'.

3dcheapskate

Busy Bee
I'm nearly ready to release it as a freebie now - final testing going on.

I had to split it in two to upload here BookStack4 test26k+ (libs + py).zip and BookStack4 test26k+ (textures).zip attached. I recommend deleting anything you already have in :Runtime:libraries:character:3Dcheapskate:TEST: and :Runtime:libraries:materials:3Dcheapskate:TEST: before unzipping these.

Four random stacks provided as CR2 files each, except Stack04, being a multi-figure group. Simply use the Randomize and/or Reset helper scripts - they both act on the selected figure and, recursively, any child stacks. The 'WithDialogs' versions allow you to say yes/no to various things.

figs.JPG

nodlg.JPG

dlg.JPG


I'm now using the 3 proper texture maps. The PZ3 files only apply the texture to the selected figure, but not any child figiures.

Mats.JPG

texture.JPG
 

Attachments

  • BookStack4 test26k+ (libs + py).zip
    738.5 KB · Views: 69
  • BookStack4 test26k+ (textures).zip
    855.4 KB · Views: 79

3dcheapskate

Busy Bee
There are a few things I've noticed already just playing with this that should really be corrected.

1) When a multi-figure stack is loaded it's the top figure in the stack that's selected, which means that if you run the randomize/reset script straight away it'll only do its stuff on that top figure.
- My first idea was in the CR2 to change the defaultPick in the CR2 for the last figure to be the body of the first figure, but Poser, quite reasonably, seems to require the defaultPick to be a bodypart of that specific figure. So that's a no-go.
- Second idea was in the CR2 to move the definition block for the bottom figure of the stack to the end of the file so that it would be the last figure added by the CR2 and thus would be the thing selected after the CR2 load had finished. I tried this and it seemed to work... but it crashed Poser. Since (assuming I worked out why what I did crashed Poser and found the correct edit to do) I'd still have to manually edit every CR2 I think that's a no-go
- Third idea was to modify the scripts to also do a recursive check for parent BookStack4 figures. I've already got this working and it seems a good solution. It also gives the possibility of randomizing/resetting just the selected figure and/or its parent stacks and/or its child stacks, which could be handy.

2) The PZ3 files for applying alternative textures only work on a single figure, so I need a script for that too.

3) There's no way to easily set all books to be the same type, e.g. paperbacks. Another script, or maybe incorporate into the rest/randomize?

4) DAZ Studio doesn't like it. The basic unmorphed/unadjusted 4 book figure imports okay. I didn't expect the altgeom to work so that bit's no surprise. However, some of the book adjustment sliders do weird things, and importing the wobbly stack CR2s ends up with books all over the shop.

5) Maybe move the AltGeom folder to geometries?

And another that I just need to be aware of:

6) The scripts aren't under a TEST subfolder which they should have been.

- - - - -

I also found the Poser built-in reinitialize figure thingy - it's Edit > Restore > Figure. And it squishes my books in a way I can't understand yet.
 
Last edited:

3dcheapskate

Busy Bee
That last bit, the Edit > Restore > Figure squishing the books, is because I had initValue 0 for xScale, Book thickness, Book size, and Cover proportions and since I had force limits set on these the restore sets them to the min limit. I've fixed that in the next basic BookStack4 test26l.cr2 (I also fixed the texture), but I'm not going to bother correcting this in the Stack04 to Stack16 figures - even I have my limits with tedious manual edits ! ;o)

(Maybe I should write a script to do those corrections ?)
 

3dcheapskate

Busy Bee
So I wrote a script to do those corrections... and then I created CR2s with 1, 2, 3, ... 15, and 16 figures (for stacks of 4, 8, 12, ... 60, and 64 books) and used another script to change all the figure and bone names to something helpful. .

It's now working beautifully*, taking only a few seconds (<5s) to randomize the 64 book stack using the nodialog version of the script, and less than that to reset it.

Render 4.jpg



*except... there's a problem somewhere that's causing Poser to crash. I think I've traced it to... of all things... deleting the figures !? I've asked about this over on Rendo's Poser Technical forum here Inordinately long time taken to delete recursively nested figures | Renderosity
 

KageRyu

Lost Mad Soul
Contributing Artist
Here's my million(long scale) dollar question - does this work in Poser 2014 or only 11+ or 13+?
 

3dcheapskate

Busy Bee
It should work just fine in PP2014 - as far as I know nothing that I'm doing, neither valueParm-maths-wise nor script-wise, is anything that won't work in previous versions.

Regarding the valueParm maths I first used that extensively back around 2019 for my Proof Of Principle - Poser ERC Opening Book - Poser - ShareCG and that CR2 was created using PP2014 (it says so in the CR2). So valueParm maths works at least as far back as PP2014, and probably a lot further.

Regarding the script stuff I can point you to the first post here Updating Freazypose 0.10 to work in Poser 12 where I say that "It was written for Poser 9 (2012) and Poser 10 (2014) and seems to work fine in Poser 11 which I'm currently using." I tend to use my FreazyPose script as the template for all my new scripts, and any new PoserPython methods I use are usually from my Poser 6 To 9 PoserPython Methods List - PDF Tutorial - ShareCG, meaning they've been around since at Least Poser 9.

However, the scripts-with-dialogues probably won't work yet in Poser 12+ as I forgot to add brackets to my print statements (see here for the reason why Updating Freazypose 0.10 to work in Poser 12 | Renderosity). Since the fix for that is simply to add the brackets to all the print statements then a simple edit of those scripts should fix them to also work in Poser 12+.
 

3dcheapskate

Busy Bee
If any of the half dozen or so people who've downloaded the zips from post #101 have actually unzipped the files and played with them then any feedback would be appreciated - simply a statement of the Poser version you're using and whether it all seemed to work okay or whether you ran into problems would be great.
 

3dcheapskate

Busy Bee
Just installed Poser 6 to give it a try and it works, but with a couple of caveats.

Capture.JPG


Caveat 1: It doesn't like the alternate geometries (Book # variant) - if that's set to anything except zero you get no geometry for that book. That's puzzling me - alternate geometry was present in Poser 5 (it's in B.L.Render's book) so it should work.
Caveat 2: The Python scripts all work fine provided you run them directly via File > Run Python script. If you use the shortcut CR2s under HelperScripts you get that "Can't open script for reading" error.
Caveat 3: The 'Splay' and 'Oblique' adjustments don't cause any rotation. I'm fairly sure that's because valueOp stuff didn't exist at Poser 6 - my PoserPython quick reference document (linked in the previous post) indicates the the parameter methods for handling valueOp stuff were there by Poser 9 but didn't exist in Poser 6.

Note: Poser 6 only deletes the selected figure, not its children. So it's tedious deleting all 16 figures of the 64 book stack !
 

3dcheapskate

Busy Bee
Installed Poser 9 but it crashes before the GUI displays. Reinstalled from my second backup - same problem. Gave up on Poser 9

Installed PP2014. Everything seems to work except I get no no x/z rotations when I twiddle the 'Splay'/'Oblique' dials. I used D3D's Unhide dials script to view the relevant hidden dials here...
NoRot.jpg


The PoserPython manual for PP2014 includes all the valueOp codes I used so I don't know what's going wrong here with the valueParm maths dials under Other - cos and sin (valueOpKey) both seem to be correct, but none of the others do.
 

3dcheapskate

Busy Bee
Errrr...

Scrub that last post - 'Splay' and 'Oblique' work fine in PP2014 when I use the previous BookStack4 test26l.cr2 figure.

ok.JPG


So something I did between post #102 and #105 screwed things up. Just a case of finding it ! :oops:
 

3dcheapskate

Busy Bee
Found it already. After correcting the initValues of 'Book width', 'Book thickness', and 'Cover proportions so that Edit > Restore > Figure would reset everything correctly, and testing by doing an Edit > Restore > Figure, I inadvertantly saved that restored figure as BookStack4 test26m.cr2, which I then used as the base for creating my 8 to 64 book multi-figure stacks. But that figure restore had also reset the hard-coded frame 0 values for four of my valueParm maths dials to zero, and zero multiplied by anything is zero. You can see it on the screenshots of the Other parameters in the last two posts if you know what to look at.

Easy to fix, but tedious...
 

KageRyu

Lost Mad Soul
Contributing Artist
IIRC Geometry swapping has existed in all versions of Poser. It was how hands were originally handled, by swapping out geometry rather than rigging fingers. I know it was supported in Poser 4 - which I started in. It may be that there are some differences in CR2 syntax from P4 to P5, P5 to P6, and P6 to P7, so that might be the issue. I had some figures, both home* made and commercial, that worked great in Poser 4 but had issues in P6 and P7.
I have downloaded Test 26k, but can not say when I will be able to install and play with it. When I do, I can test it in P7, PPro, P2010pro, and P2012 Pro and give notes if you wish? I mainly work in P2012 Pro and P2014 Pro, but have everything prior except for P5. I skipped P5.

*When I say home made, I mean 3D objects in other formats I converted over and rigged in Poser just enough for what they needed to do. Nothing great.
 

laurencD

New-Bee
I also missed the P5, but I heard it had its own quirks. It would be interesting to know how your home models perform in different versions.
 

3dcheapskate

Busy Bee
The basic altgeom problem turned out to be an absolute path that was too long for Poser 6. I simply converted that to a runtime relative path and changing the geometry via script in Poser 6 seems hunky-dory. However, if I now change the geometry dials by hand (in Poser 6) I get all sorts of weird problems after I've been through all the alternate geometries - e.g. the names of geometry dials swap around between books, it asks me to find the geometry file 0°S or something like that, it stops displaying any cursor anywhere in the Poser 6 window - and I have to close it down via task manager.

Nothing obvious in the CR2 when comparing against the altgeom for Mike's changing fantasy suit. But I'm not going to bother spending any time investigating this further - suffice to say that it works in Poser 6, except that
1) Splay and Oblique don't cause any rotations
2) Scripts have to be run directly
3) If you twiddle the geometries by hand you're asking for trouble, and I don't know why, so don't do it ! :D

P.S. Those altgeom absolute paths are probably in all the zips I've uploaded, so that'll stop the geometry switching from working, so probably best to wait for the next version upload before giving it a try...
 
Last edited:

3dcheapskate

Busy Bee
I also missed the P5, but I heard it had its own quirks. It would be interesting to know how your home models perform in different versions.

Hi laurencD and welcome to the HiveWire3D forums... assuming of course that you're a real person - you can never tell these days ! ;)
I'll leave KageRyu to respond to your query as I think that's who you were asking, but as far as the models I create are concerned the only thing that really concerns me about different Poser versions is which is the oldest version that supports all the features I'm using - e.g. for this multi-bookstack thingy I use valueOps and I've just confirmed that although Poser 6 does support valueOps, it doesn't support the valueOpKey. I confirmed this by simply opening my CR2 in Poser 6 and then saving it as a new CR2 - all the valuOps were there except the two valueOpKey ones, the sin and cos, which are key (bad pun intended) to the 'Splay' and 'Oblique' dials working as intended.

So cool -thanks!!!!
Thanks for the thanks Alisa - we're not quite quite there yet, but I think we're oh so close now ! :D
 

3dcheapskate

Busy Bee
Yesterday I dicovered a backup of my old Poser 8 ISO (I never actually used Poser 8 because I ended up with Poser 9 digital for a bargain price before the Poser 8 CD arrived), so I installed it. Unfortunately it went the same way as my Poser 9 reinstall a couple of days ago - it installs okay, but when I run it the GUI starts to display... and then it crashes before the GUI's up.

So I'm limited to testing with Poser 6, PoserPro 2014, and Poser 11. Since everything seems okay with my bookstack figure in PP2014 I've decided to create the CR2s from this rather than from Poser 11. Over the past day or two I've got partway through the process, luckily just a short partway not a long partway, before spotting a problem I'd overlooked. This has happened a couple of times, but I think, fingers crossed touch wood, I've got past that now. So just a slow, tedious, but careful process now to try and avoid doing something stupid again...
 

3dcheapskate

Busy Bee
Despite saying I wasn't going to bother looking into the Poser 6 problems back in post #115...

Here's a few screenshots of altgeom files Poser 6 couldn't locate when I ran my script (I know I said that geom swapping from script seemed to work, but I was wrong) - the first 16 characters of each filename are fine, then goobledigook. And adding the full absolute path in front of that gives 128 characters before the goobledigook. Suspicious indeed...

Capture.JPG


So I shortened the name of the folder in which I have my test runtime and the geometry swapping now works fine in Poser 6, either from my script or by manually twiddling the dials.

So I've now reduced the number of caveats to it working in Poser 6 to just two:
1) Splay and Oblique don't cause any rotations (I've now confirmed that this is because Poser 6 doesn't support valueOpKey, so the sin and cos of my valueparm maths always give zero)
2) Scripts have to be run directly

And here's a Poser 6 render of lots of books, 136 figures in all

Render 1.jpg


Footnote: Here's a screenshot confirming that in Poser 6 sin/cos remain at zero regardless of Rotate/Splay/Oblique
Capture.JPG
 
Last edited:

3dcheapskate

Busy Bee
One further point regarding this bookstack in Poser 6 - because Splay and Oblique don't drive xRotate and zRotate as intended the top and bottom of each book will always remain horizontal when you randomize, as per the stack on the left below.

However, if you select any Book actor (not the Body) and use Posers editing tools (specifically Rotate and Twist) you can drive the x, y and zRotate and zRotate directly (but rather haphazardly), which is what I did for the stack on the right.

Capture.JPG
 
Top