Struggling to understand Runtime file structure and content...



  • Hi All,
    I'm very new here - I've only just started working with Poser and have had a great time working from the very start of the online tutorials. So far so good; lots to learn and getting on well with Andy2 :)

    A Poser artist sent me a pile of his own created characters and content - he's kind of retired now but is happy for me to make stories with his people and props.

    The content is basically wrestling / boxing characters, props, poses and expressions - several gigs of data and thousands of files. Many of these are in folders such as 'libraries', 'geometries', 'textures' etc. which I recognise from the content that shipped with my copy of Poser 11.

    In amongst this, there are some .pzz 'Poserscene' files which nicely open up to show his finished characters in costume, pose, textures and some props like boxing gloves. Once opened, I can manipulate in Poser in the normal way.

    What I can't seem to do however, is transfer the files into the correct file paths so that Poser can recognise them for me to access via the Libraries window. For instance, I want to change clothes, textures and props (I can see from the vast pile of files he sent that there are many alternative skin textures, expressions etc.)

    I've tried transferring the files manually into multiple combinations of folders and pointing Poser at them with the 'Add Library' function, but all to no avail.

    I know the files are good because, as I mentioned above, I can open the PoserScene .pzz file and get a dressed character up to pose - but that's all I can do.

    I've looked optimistically at the 1,000+ page pdf manual but maybe just haven't found the right page yet : /

    FYI, the files I have are:
    .obj and .obz file in 'Geometries' folder
    .jpg files in 'Textures' folder

    I've managed to set up a lot of poses and expressions using the
    .p2z, .fc2, .fcz and .png files in various locations

    But it's the character content I'm struggling with.

    If anyone out there can shed some light on this dark corner for me, I swear I'll never bother you again.
    Probably : )

    Really appreciate any help...

    RSK


  • Poser Ambassadors

    From what you have said you have scene saves.

    To use individual things from the scenes, you can save them individually to the library.
    Then you will be able to load those individual things back into a new scene.


  • Poser Ambassadors

    All Poser files have to live in a structure like this:

    <your own chosen runtime file name>
    >runtime
    --------------->textures
    --------------------->product texture folders
    -------------->libraries
    -------------------->character
    ------------------------->product character folders
    ----------------->poses
    ------------------------->productPoses folders
    etc.....

    The zip files normally come in a zipped folder structure - just unzip them while keeping their folder structure in a new folder. Then add this new folder as a new runtime. This will make sure that all file references will be kept and you can load the new items without problems in Poser



  • @shvrdavid
    Thank you for your reply. I'm not at my Poser PC right now but I just realised that some of the files I have are obz and pzz files which I've just learned are compressed/zipped files.

    Should I unpack these before saving the individual parts to a runtime folder?

    If so, can I unpack obz and pzz with a regular program like WinZip etc.?

    Thanks again,

    RK


  • Poser Ambassadors

    @rsk said in Struggling to understand Runtime file structure and content...:

    @shvrdavid
    Thank you for your reply. I'm not at my Poser PC right now but I just realised that some of the files I have are obz and pzz files which I've just learned are compressed/zipped files.

    Should I unpack these before saving the individual parts to a runtime folder?

    If so, can I unpack obz and pzz with a regular program like WinZip etc.?

    Thanks again,

    RK

    No need to unpack the obz and pzz files. Poser will recognize and load them



  • @wimvdb said in Struggling to understand Runtime file structure and content...:

    @rsk said in Struggling to understand Runtime file structure and content...:

    @shvrdavid
    Thank you for your reply. I'm not at my Poser PC right now but I just realised that some of the files I have are obz and pzz files which I've just learned are compressed/zipped files.

    Should I unpack these before saving the individual parts to a runtime folder?

    If so, can I unpack obz and pzz with a regular program like WinZip etc.?

    Thanks again,

    RK

    No need to unpack the obz and pzz files. Poser will recognize and load them

    True, but speaking from personal experience, it couldn't hurt to have a decompressed file located to the Geometries folder.... just in case. As Wm says, Poser will recognize the file and load them. However, if you have to use a Utility that needs to call that file, it won't.



  • @eclark1849 just so you're aware, there are gzip-aware text editors on both Windows (Notepad++) and macOS (BBEdit) which can transparently open, edit and save any compressed poser file (with the exception of pmd files which are not gzipped).

    It is also straightforward (if one has done the necessary research) to support these compressed format files within Python scripts, using:

    import gzip
    
    def LoadUVFile( path ):
    	gzipMagic = '\x1f\x8b\x08'
    	UVObj = object()
    	with open( path ) as file:
    		magic = file.read( len( gzipMagic ) )
    	if magic == gzipMagic: # Probably a gzip compressed .obz file
    		with gzip.open( path, mode='rb' ) as file:
    			UVObj.load( file )
    	else: # Try reading as uncompressed text file
    		with open( path, mode='rU' ) as file:
    			UVObj.load( file )
    	return UVObj
    
    

    As long as the gzip module is imported, and ignoring references to UVObj, which are only specific to the example code posted, if the initial file.read() detects the gzipMagic, you can open the file with gzip.open() or else just use the standard open().

    Doing both opens within the with block just means everthing gets closed in an orderly manner when the with block exits, but you can just as easily user the file handle returned by gzip.open() or open() and continue doing file.read() or other parsing at your leisure.

    This way, you don't need to bother with parsing file extensions the user may select, they just get handled appropriately.



  • Thank you for your responses, everyone. On the plus side, I'm relieved that largely what you're suggesting is aligned with what I've been trying - I think my issue is that I don't have enough experience with Poser to instinctively try different ways of achieving this.

    I've now gone back to my friend who sent the files to me and we're going to go from there. I avoided asking him in the first place because I didn't want him to think I was a complete idiot. At least now I have some evidence to prove that I sort of am...

    Also, I'm going to invest even more time in tutorials so that I can get a better feel for what to expect and what to do.

    @anomalous: thank you for taking the time to write your detailed description. I fear that I need to learn a few more skills before we can relate... :)



  • Thanks for the above - I've been doing just that: opening Poser Scenes and saving individual characters to the library.

    What I find odd (or at odds with my sense of order!) is that downloaded items end up in unexpected places. For example:

    The skin textures that come from DAZ's V4.2 are found in the Pose library (why the Pose library for a skin texture?) Other items I've bought from Renderosity and DAZ (such as hair and props) end up in Character or Pose (why not Props?)

    I don't mind this once I've learnt where to find them but it does make life difficult when I'm trying to place items in Runtime folders myself and decide where they should go.

    I bought (for free) a DAZ Sweater for V4. The readme told me to unzip the runtime to my Poser root directory which I did but I can find no trace of it in Poser. I eventually moved the files myself manually in Windows File Explorer.
    I can now see them in Poser but nothing will load (presumably I missed something).

    I have so many files in so many places now that I'm seriously thinking of uninstalling Poser completely, and re-installing it again.

    I'm generally pretty good at PC file housekeeping but Poser is driving me insane!!!



  • @rsk Hi,

    The problem with manually moving files around is that the files often contain pointers to other files, for example a prop, pp2 file will often point to an obj file
    :Runtime:Geometries:vendeor:productname:myobject.obj

    This means you can move the prop file anywhere within the SAME runtime and it will still be able to find the required obj file. If you move the prop file to a different runtime it wont be able to find the obj file. Same goes for characters, pose files that reference mat files etc.



  • Older content often has out of date instructions as to how to install.

    You should not add any content to the poser root directory which is installed in program files. It is also a good idea not to install anything into the poser 11 runtime in public users.

    Look at the contents of the zip file. If the first folder you come to is a folder called runtime you can use the install from zip archive feature in poser. This just automates the function of unzipping the file to the correct location. I've just noticed that you say a DAZ sweater. All DAZ from DAZ has a folder "content" that contains the runtime and so you can't use this method.

    If it is not, I find the easiest way is to unzip the file and then copy the runtime folder from it to the runtime I want it to go in. This means I can check it has merged properly.



  • Thanks for the info guys.
    In addition to this I've googled as much info as I can about Poser files, meanings and locations to help me tidy up a bit. Sadly, a lot of the articles are from a Poser 4 age so the info may be a bit behind the times as I'm using Poser 11. In any case, I'm guessing the basics are still OK.

    Out of interest, my install put the Runtime in C:\Users\Public\Public Content. Whilst most online docs have a root of C:\Program Files\Poser etc.

    I'm assuming that this doesn't matter as long as one is consistent...?


  • Poser Ambassadors

    It does matter. Don't put data in Program Files. Don't put 3rd party data in your Smith Micro runtime.

    Much of the advice conflict has to do with older Poser where multiple runtimes didn't exist, there was only one, and it was where your programs are kept. Also at the time, Windows didn't mess with your data in Program Files. Today that's a Windows no-no and there is no benefit either.



  • Wow, thanks for that - I didn't realise. A lot of my current 'mess' has been caused by self-extracting files from various sites throwing stuff everywhere.

    As I'm quite new to Poser, it's not too much of a big job to uninstall, wipe out the existing runtimes and start building (carefully) again.

    I suspect the best setup will be to preserve the ready-made Poser runtime and then create new ones for downloads and my own creations. I think DAZ likes to create its own runtime as well. I'm assuming that I can target any of these locations exactly when I'm unzipping.

    Many thanks,


  • Poser Ambassadors

    Here's a tip regarding downloads. Most come with the proper runtime structure and can directly be merged into an existing runtime. But for me, quite often, after trying out the freebie, I hate it and want to remove it.

    Only - if I merge right into an existing runtime that's very difficult.

    So I don't merge! I extract the zipped runtime into an empty folder, one dedicated to experimental downloads. That folder gets added to my Poser as an external runtime. All that I see in there is from the downloaded item. If it's crap I just blow it away. If it's not crap, I move/merge that into one of my permanent runtimes.



  • That's something I inadvertently did last night! Having previously failed to get the clothing prop installed, I created a completely new folder as you describe, added it to Poser and it worked. I'll now merge as you suggested.

    One other point that brings me back to an earlier question I had: the prop I installed is a DAZ Sweater that conforms to V4. One of the reasons it was confusing me is that the sweater itself appears in Characters, whilst the 4 colour options all appear in Poses.

    Call me picky but a sweater is neither a character nor a pose! I was rather expecting it to appear in Props!!
    I'm guessing that it's because there are so many morphs on it to make the sweater fit, it's treated more as a character than a prop, right?

    Either way, I'm still hoping for 'Poser for Dummies' :) :)



  • @rsk Hi, the sweater is in in characters because it is "conforming", i.e. it has the same bones as V4 so when you add it to the scene and choose conform, the bones in the sweater mirrors the movements of V4s own. Props do not have bones and cannot be conformed. If a prop, say a bracelet only covers one bone, it can be parented to that bone but you can only parent to the one bone.

    The material sets in the Pose is just a convention, sometimes they are in the pose folder, sometimes materials it doesn't really make any difference.



  • Basically Smith micro puts all its clothes in props, virtually everybody else puts conforming clothes in characters and dynamic clothes in props.

    As for skin textures and clothing, they can be two types of file.

    They can be .pz2 files. As it suggests these are pose files., and this is an older way of letting the user to automatically apply textures to a character.

    The other type of files are .mc6. These are material collections. If the vendor supplies pz2 files these are put by them in pose. If they supply .mc6 files these are normally in the materials folder, however I've come across at least one case where mc6 files have been put in pose. (There are other files in materials .mt5. These apply a single material, so while an mc6 file would apply textures to a complete item, the mt5 file only applies it a single material zone so for example on a piece of clothing you might be able to apply it to the main body, or the lining etc. Mc6 files only work properly on the items for which they have been made, mt5 files can be used on any item.)

    I would suggest if you are using Windows to get it to display file extensions if you don't have it this way already. This really helps when you are trying to sort out where files go from some freebies which are not properly structured.



  • @rsk said in Struggling to understand Runtime file structure and content...:

    That's something I inadvertently did last night! Having previously failed to get the clothing prop installed, I created a completely new folder as you describe, added it to Poser and it worked. I'll now merge as you suggested.

    One other point that brings me back to an earlier question I had: the prop I installed is a DAZ Sweater that conforms to V4. One of the reasons it was confusing me is that the sweater itself appears in Characters, whilst the 4 colour options all appear in Poses.

    Call me picky but a sweater is neither a character nor a pose! I was rather expecting it to appear in Props!!
    I'm guessing that it's because there are so many morphs on it to make the sweater fit, it's treated more as a character than a prop, right?

    Either way, I'm still hoping for 'Poser for Dummies' :) :)

    Until relatively recently, Poser originally filed conforming clothing under the heading of characters, as they were considered "figures", not props. The program still regards them as figures, in fact. However, the programmers apparently want them to be regarded as props. Most users and content creators still regard them as figures and put them in the characters library.


  • Poser Ambassadors

    Another point about the pose files for material collections.

    Before Poser 6, it was discovered, by users, that you could combine many materials into a "pose" file and even though the file was officially for poses, the Poser 4 and 5 code worked correctly to load ANYTHING that affects figures, not just the pose. The expressions, materials, scaling, etc. could all be packed together in a "pose" file.

    The developers thought that packing materials together was cool (it had not occurred to them) but made it official by introducing a dedicated file type for this, the .mc6 and added this as a new feature in Poser 6.

    The vendors, who didn't want to do pose files for Poser 5 AND material files for Poser 6 were all like "well why should I do both - the pose files still work".

    And here we are 12 years later and vendors are still refusing to make mc6 files, or, as noted, they're making them but then foolishly putting them in the Pose folder.

    Poser vendors are a strange lot.