skeetshooter opened this issue on Nov 27, 2006 · 21 posts
skeetshooter posted Mon, 27 November 2006 at 1:02 PM
I think I've been deleting unneeded morphs and textures the hard way, but I'm sure I recall a thread discussing a plug-in or Python script that with one click or so automatically deletes all unused or barely-impactful morphs in a figure. I've got some real monsters I need to slim down, and I really need that plug-in now -- can anyone remind me what that is? I'm Mac, if that make any difference, which I doubt. Also, is there something comparable for "buried and non-effectual" textures? Thanks! SS
skeetshooter posted Mon, 27 November 2006 at 1:40 PM
Okay, okay. I found the thread -- it was posted more than 45 days ago, so unthinkingly I missed it on the first few forum searches I did. Acadia posted basically the same question as mine on August 6 of this year ("Zero Morph Dials") and got a flurry of answers. Here's the thread: http://www.renderosity.com/mod/forumpro/showthread.php?message_id=2769123&ebot_calc_page#message_2769123 Among a great number of suggestions ranging basically from "rotsa ruck" to miracle cures, Angelouscuitry seemed to offer the best, which I have taken the liberty of pasting below (there were many other ideas and opinions, naturally): Attached Link: Ockhams Scripts Hello Acadia, I hav'nt read every word of this thread, but the quick answer(I hav'nt seen) is that Ockham has a Python script to delete all Morph Targets with a value of 0/ It's a great script, you can slect any any combination of parts to effect, or all. The next best idea was the SPawncharacter script, but I'm not real sure it'll do everything I will also suggest. My, real, V3.PZ3 is 250MBs, and I managed to .ZIP her, with all of her textures and geometries..into a 12MB file... I see Figure > Spawn... has been mentioned, but it's not as easy as you'd think.
Angelouscuitry posted Tue, 28 November 2006 at 9:41 PM
:biggrin: Thanks :biggrin:
Basically you can use 4 scripts to slim a figure:
SVDL's Spawncharacter.py - Run this one first, with all of you character's morphs and magnets where you're worked so hard to put them. It will Spawn a Morph for ach of your Figures parts, chain them to Full Body Morph, and then write them into a INJ.pz3, as well as create a REM.pz2. Just make sure o check "Set Morphs to "1"..."
Ockham's Delete Mags - If you had magnets on whe you ran Spawncharacter.py, you'll need to remove them before you apply the INJ. This script will delete all of them at once.
Ockham's Zero Morph.py. - This script will revert the value of each of yur morphs to zero, which is prefect for use of this next script...
SVDL's Remove morphs - This script will remove any morphs with a value of zero, except the expression morphs listed in the .exc file, included in the DL, for that figure. BTW - If you delete all of the listing in that .exc file, with a text editor, the script will then delete every single morphs at zero.
Then just run the INJ you made with SVDL's Spawncharacter.py, and your figure should look just like it did before you started.
When you sae your fiure will be about %90 smaller!
Enjoy
skeetshooter posted Wed, 29 November 2006 at 8:25 AM
Thanks, Angelouscuitry. A 20MB figure will be a lot easier to work with than a 180MB character, especially in animations! But what about Ockham's StripZero script? Is that what I think it is, and will it do the same job as SVDL's Remove Morphs? And can't I use Remove morphs alone or is it better or essential to use Spawncharacter first? SS
Angelouscuitry posted Wed, 29 November 2006 at 10:26 AM
Ockhams actually has two StripZero scripts, which I think came out first. Origionally it was only for .PZ2 files; then he adapted it to .CR2s, but I'm not sure it's written for .PZ3.
Which scripts you use depends on how small a figure you'd like. You could just run SVDL's Remove Morphs, but then your still leaving in however many morphs you've used.
If you done resetting the morphs for a time being; and just want to get some rendering or posing done, want to test some MATs, add several figures into one scene, or otherwsie run a very light load, then by using all 4 scripts you can slim a figure down to exactly 1 morph per part very quickly. Just do'nt forget to edit the spawnscript.py .exc file for your figure, or you'll leave expression morphs in.
I've been able to trim my 250MB V3 figure to a 12MB .ZIP file of; my .PZ3, all it's geometries, all it's textures, and everything else picked up by CollectSceneInventory.py!
You're not going to trim any more than that unless you export a new figure .obj, and replace your current, but I've never just tried that, and m sure you'd want to know what setting to use. Maybe I'll put this on my ToDo list...
Ghostofmacbeth posted Wed, 29 November 2006 at 10:47 AM
There is a good chance that some of these scripts might not work. Just so you know. I haven't tried them but a lot of the python things have issues with tkinter and the Mac and don't work.
skeetshooter posted Wed, 29 November 2006 at 2:21 PM
Angel, I don't mind lugging around a few 30-50MB figures in a scene --it's the 150-200MB+ bubbas that really bog my system. These are the ones loaded with full head morphs, body morphs and character morphs (+/- 200 of them on a V3 that I've sculpted to my liking -- usually to look like a specific person where detail matters. Plus morphs for many of the clothes. Once done with those, however, I'd really like to keep most of the expression morphs in there because I will be using them in a cartoon-type animation where the figures will be "talking" via Mimic and may be changing expression several times during a 30 second scene -- I rarely have enough foresight to plot out precisely which expression morphs I will use ahead of time. I have a pretty top-end Intel Mac Pro with multiple procesors and plenty of RAM (another reason why I'm so eager to get Poser 7), so power isn't, or at least won't be, the issue. Ghostofmacbeth's comment concerns me a bit because I'm Mac. Other Python scripts have worked fine for me, but I certainly haven't tried every type. So let me ask this: IF you had to choose only one to use (maybe an unfair question), which would it be, and why? Thanks! SS
Angelouscuitry posted Wed, 29 November 2006 at 5:08 PM
Ghostofmacbeth - The greater(%99.99) portion of free python scripts, here at Renderosity, work without a glitch! I use these scripts in particular, more than any others. If you ever have problems with any of Ockham, or SVDLs' scripts notify them immediately! They are more than friendly and will no doubt solve a problem for future users.
KTinker works, fine, but It's just not as good as Poser 6's python accent~
Macs are a whole other ball park, and as such reaquire an equal amount of translation, from bit to bit. Iv'e heard of Ktinker having issues with the Macs, but have no such experiece to speak of. SOrry to hear you guys coming fro the direction.
skeetshooter - One day I, or another, will get to packing all of these pythons into once script, but the only one that works alone is SVDL's RemoveMorphs.py!
Spawncharacter works, but requires; the Blank V3, as well as the Material Room. to make an impact.
Zero Morphs was written to help the switch between early MOT.pz2s. It then cam in handy with randomization, and now it's proving han dy once mopre with RemoveMorphs.
The combo of all scripts is great for having to a "Crowds" Figure Library Dircetory.
skeetshooter posted Wed, 29 November 2006 at 8:19 PM
Thanks for everything, Angel. Don't what I'd have done without your help. SS
Angelouscuitry posted Wed, 29 November 2006 at 8:35 PM
skeetshooter posted Fri, 01 December 2006 at 12:33 AM
Apparently PhilC has an nifty morph eliminator, and a couple of complementary morph consolidators and reducers, as part of his Poser Tool Box. A couple of months ago I bought PhilC's Poser Tool Box, but had not really messed around with it until today. When I did, I discovered that -- among other great tools that I needed -- he has a couple of tools in it for both consolidating morphs, eliminating minimally-moved morphs (you can adjust what "minimal" is), and eliminating morphs set to zero in a figure. All as easy as button-clicks on a Python menu. I KNEW I had read it somewhere, and it wasn't just Acadia's and Angelouscuitry's thread. If you haven't checked out out, I suggest you do. I'm ever more impressed with the things that PhilC has come up with for Poser users -- a couple of his ideas will even be part of Poser 7 -- and I have most recently joined his forum. SS
AnAardvark posted Fri, 01 December 2006 at 3:29 PM
I've used SVDL's remove morphs and boy is it great. It really speeds up the render times, which is the main thing I needed it for. You can use it on anything with morph targets. As a side note, it will remove non-zero morphs from props parented to a character.
skeetshooter posted Sat, 02 December 2006 at 1:35 AM
I've been looking for SVDL but am having trouble finding it. Any tips? SS
Acadia posted Sat, 02 December 2006 at 9:57 AM
Personally I gave up on this. It sounded way too time consuming. Then the posts I read about the various scripts made me go cross-eyed in confusion.
There are scripts for nearly everything, I'm surprised that there isn't just one simple script that you can use to just have all of the morphs that you didn't dial up, deleted... not just hidden.
"It is good to see ourselves as
others see us. Try as we may, we are never
able to know ourselves fully as we
are, especially the evil side of us.
This we can do only if we are not
angry with our critics but will take in good
heart whatever they might have to
say." - Ghandi
Acadia posted Sat, 02 December 2006 at 10:06 AM
Attached Link: http://ockhamsbungalow.com/Python/
> Quote - I've been looking for SVDL but am having trouble finding it. Any tips? SSI think it's the stripzero.py, and / or spawncharacter.py
Either way, it sounds complicated.
"It is good to see ourselves as
others see us. Try as we may, we are never
able to know ourselves fully as we
are, especially the evil side of us.
This we can do only if we are not
angry with our critics but will take in good
heart whatever they might have to
say." - Ghandi
JQP posted Sat, 02 December 2006 at 3:54 PM
Bless you two, you've finally put all the information in front of me, so I grabbed the scripts I didn't have and now I have the whole process working.
Much appreciated!
Acadia: I don't know about the magnet part, because I don't use them, but other than that it's all pretty straightforward. I didn't read anything but Angel's post and got it working in no time. The only real pain in the butt is choosing a directory with the spawn script because it doesn't remember your last choice. So, I made two shortcuts to get me back and forth between the directory the script chooses by default, and the one I use to hold my custom morphs.
Acadia posted Sat, 02 December 2006 at 4:40 PM
Attached Link: http://www.renderosity.com/mod/forumpro/showthread.php?message_id=2525895&ebot_calc_page#message_2525895
> Quote - Bless you two, you've finally put all the information in front of me, so I grabbed the scripts I didn't have and now I have the whole process working. > > Much appreciated! > > Acadia: I don't know about the magnet part, because I don't use them, but other than that it's all pretty straightforward. I didn't read anything but Angel's post and got it working in no time. The only real pain in the butt is choosing a directory with the spawn script because it doesn't remember your last choice. So, I made two shortcuts to get me back and forth between the directory the script chooses by default, and the one I use to hold my custom morphs.Here is a link to a thread that will help you create sub-menu buttons for all of your scripts.
I currently have a "sub-menu button" that I click which takes me to another layer of buttons for:
Ockham
Ockham1
Dimension3D
PhilC
The actual scripts themselves are in the next layer.
Basically you can create a sub-menu button and then have more scripts accessed immediately in the next layer. Or do what I have and make more sub-menus if you have more scripts that you want to use. Ockham has so many nifty scripts that I found I needed to create a sub-menu to my sub-menu.
Anyway, Dimension3D explains it pretty well and even gives a template you can work from. I'm not too swift when it comes to stuff like that so he was kind enough to explain it in simplictic terms for me and I managed to get it to work fine :)
"It is good to see ourselves as
others see us. Try as we may, we are never
able to know ourselves fully as we
are, especially the evil side of us.
This we can do only if we are not
angry with our critics but will take in good
heart whatever they might have to
say." - Ghandi
Angelouscuitry posted Sat, 02 December 2006 at 8:48 PM
*I've been looking for SVDL but am having trouble finding it. Any tips?
*Skeetshooter - SVDL is the Member Name of the gracious artist whom wrote SpawnCharacter.py, as well as RemoveMorphs.py, not an it...(heha)
"There are scripts for nearly everything, I'm surprised that there isn't just one simple script that you can use to just have all of the morphs that you didn't dial up, deleted... not just hidden."
Acadia - SVDL's RemoveMorphs.pydoes remove the morphs that you hav'nt dialed in(Any set to zero.) I think I remember SVDL saying something about just hiding some part of something, but run the script, you'll still see a huge reduction in the file size of your .PZ3. My 250MB V3CharacterStudy.PZ3, saves at about 50MBs after I've just run this one script! I think what he meant was that the morphs data itself is actually deleted, but then the "Dial," part of the GUI, is only really hidden.
*"I think it's the stripzero.py, and / or spawncharacter.py"
*Acadia - StripZero.py is Ockham's script, but I believe it is only meant to remove morphs from a .PZ2. Ockahm's StripZeroCR2.py is, I believe, very similar to SVDL's RemoveMorphs.py, but that it only works on a .CR2 file, while SVDL's script works on a .CR2 that exists inside a .PZ3(So, it really works on the .PZ3...)
" Either way, it sounds complicated."
*Acadia - I often wonder how often I'll have the chance to offer advice, before you you'd get there for me. If you ever need my help; especially for something as useful as this, please just ask, I'll be glad to have a round of E-Mail Tag with you!
AnAardvark posted Wed, 06 December 2006 at 12:15 PM
Quote - > Quote - I've been looking for SVDL but am having trouble finding it. Any tips? SS
I think it's the stripzero.py, and / or spawncharacter.py
Either way, it sounds complicated.
The stripzero script is dead simple. Select a figure, run the script. You can usually reduce the size by about 80%. (If you hack the exclusion files, you can usually reduce it even further.) For my purposes, this is sufficient -- I don't need to slim things down the extra 10% by consolidating morphs etc. The one "gotcha" to look out for is that it will also strip morphs off of props (such as hair) which are parented to the figure.
For cr2s, I like to have all the morphs, in fact, I usually have, for figures I use often, all sorts of muscle adjustment morphs (like "flex biceps") -- I'm not worried about the disk space, just the memory usage when rendering.
In summary, i find "stripzero" sufficently effective that I've not bothered going into the arcana of further size minimization.
Angelouscuitry posted Wed, 06 December 2006 at 4:23 PM
"The stripzero script is dead simple....If you hack the exclusion files... I find "stripzero" sufficently effective..."
AnAardvark - Ockham's StripZero.py deosn't come with exclusion files; SVDL's RemoveMorphs.py has .exc files.
AnAardvark posted Wed, 06 December 2006 at 5:19 PM
Oops, I meant the RemoveMorphs script..