Forum: Poser 12


Subject: Making Materials Files More Specific

JimX opened this issue on May 17, 2023 ยท 15 posts


JimX posted Wed, 17 May 2023 at 11:49 PM

I have a hair product (hr2). It has multiple styles, which are defined by Transparency Maps. It also has several colors, which are defined by Texture Maps.

I would like to create a couple of Materials files that change the style (but do not change the color), and another set of Material files that change the color (but not the transparency). Is there a way to do this? 

The ideal solution would be to find a way to do this within Poser. But I am also willing to hack the MT5 or MT6 file if necessary-- I would just need to know a bit more about the specs for the Materials files.

Is there some guidance about how I should go about this?


hborre posted Thu, 18 May 2023 at 11:33 PM Online Now!

You would need to assemble the necessary shader nodes to accomplish what you want.  If the hair product is basically controlled by the Transparency maps, then you would need to manually load the appropriate texture maps.  Once everything is in place, you can save the entire shader set for the hair piece as an MC6, or individual material zones as MT5 files.


JimX posted Fri, 19 May 2023 at 9:34 AM

That is just about what I wound up doing. There were only two transparency maps and six texture maps. So I just did the manual loading of the map files, and created twelve mc6 files to cover all the combinations.

What I had hoped for was to create two mc6 files that would change the transparency without affecting the texture, and then six mc6 files that would change the texture without changing the the transparency. Apparently this is not possible from within Poser.

In the process of researching this topic, I found a web site with a lot of tutorials. It is at https://www.foro3d.com/f337/tutoriales-para-poser-54225.html. The web site is in Spanish, but the tutorials are in English. Good English. One of the tutorials is about "Understanding Poser File with Material Settings." I have downloaded that, and I will try studying it to see if it stimulates any ideas.


nerd posted Fri, 19 May 2023 at 4:25 PM Forum Moderator

That's a pretty common request. And it's not that we haven't heard you. It's just a lot more complicated than it sounds. We basically need a new type of material that doesn't replace the existing material. That's the easy part. Making it so the partial material actually knows what parts to replace, what parts to leave alone and where any new new bits are to be connected ... that's probably going to need an ESP mind probe. Who's up for a Poser brain implant?


JimX posted Sat, 20 May 2023 at 1:15 PM

I'm not up for a brain transplant quite yet, although there are days when a change to something random might have a good chance of being an improvement. I was thinking more of a .mc6 file brain transplant-- or at least a file hack. Would it be possible to do something like finding all of the lines in the .mc6 file that start with "transparencyMAP," and just simply deleting those lines?

(If so, it might be a fun project to create a couple of Python scripts that would save the current material to the current library as either a texture-only file or a transparency-only file.)


FVerbaas posted Sun, 21 May 2023 at 5:33 AM Forum Coordinator

Mat poses could be a way to go. These are basically pose files that change the relevant parts of a status. Before the introduction of material files (somewhere Poser 6 or 7?) mat poses were the way to apply materials. Problem is they easily mess up your material setting.

Another route is to have your material refer to all colors and styles and use dials to select the ones you want to use. Problem then is Poser loads 8 files but it uses only two of them. Note latest version of Poser13 has better support for keyed inputs.

How did you make the colors and transparency maps? If you used one base couple and made other colors via filters in Photoshop, you could probably achieve same effect by pulling the textures through a HSV node.  Same if your transparency map for short style is a scaled version of the long style, playing with the uScale or vScale of the image node would save you a map and give you any style  between long and short.

Last but not least you may consider letting the shader refer to maps on a fixed address and add some Python code that copies the relevant files there. In this solution the choices will survive save and reload only if the copied files are not changed. Also you can only have one color-style of your hair in a scene.

None of these solutions is ideal,  but hey such is life.


JimX posted Sun, 21 May 2023 at 9:41 AM

Thanks FVerbaas. You have given me a number of things to think about, and to try out. That is what I was looking for.

I was active with Poser a long time ago-- back in the Poser 4 days. Then I moved, started a new business, put a couple of kids through college, and otherwise got distracted from Poser. About a month ago, I decided to make some time to get back with Poser, even if just on a hobby basis. I now have Poser 12 on my Mac, and it's a lot different from Poser 4. I am using these little projects to learn how it all hangs together.


JimX posted Mon, 29 May 2023 at 5:58 PM

I have tried various hacks with the mt5 and mc6 files. Every time I remove a reference to a transparency Image_Map file, when Poser loads the file it over-writes what is there with "none" (or leaves the whole node out). So it then renders the hair without any transparency map. So I haven't yet found anything like that that works.

Nerd, I've been thinking about what you said. You're probably right that some new capability is probably needed in a future version of Poser, to indicate upon loading a mt5 or mc6 file whether unmentioned nodes should be deleted or kept in their prior condition. I think this would probably have to happen at the node level, not the material level; many prop-style hair objects have only one material-- but it has texture map and transparency map, and maybe even bump map and specular map.

However, I had an idea about how to address your second consideration: indicating what parts to replace, and what parts to leave alone. In Poser 12, when a user wants to add the current settings to a Materials folder and he/she clicks on the plus sign at the bottom of the library window, a pop-up window for the New Material Set appears, as in the bottom right of the image below:


There is an option to save "Selected nodes only." If this check-box were replaced in some future version of Poser with a set of 3 radio buttons that went something like:

- All nodes

- Selected nodes, deleting omitted nodes

- Selected nodes, keeping existing information for nodes omitted from file

then that might be enough to indicate what nodes to replace, what nodes to leave alone. Something similar would have to be done for materials in a mc6 file.

If this is a pretty common request, then maybe there is a reasonable solution. I can hope, anyway.


hborre posted Mon, 29 May 2023 at 7:48 PM Online Now!

You are leaving it up to Poser to make random decisions that may or may not give you the results you desire.  Don't misunderstand the set up on the New Material Set Panel.  'Selected nodes only' refers to the nodes you have selected in the material room prior to clicking the '+' icon on the Library and it only saves those selected nodes.  Everything else is ignored and not saved with the MT5 or MC6.  Now, not replacing nodes, retaining nodes, deleting nodes, etc. are things that need to be modified within each Material file, this is where the hacking done.  Unfortunately, there isn't a set of instructions readily available that teaches the principles such hacking and I'm not sure how secure you are in making code changes in those files.  


JimX posted Mon, 29 May 2023 at 9:23 PM

I'm not afraid to play around with hacking the files. In the past, I've even written utilities to do the job if it is complicated. But I haven't  yet found a hack that would change one node while leaving another node unchanged.

It's really that I haven't yet found out how to hack a materials file so that any given node would remain the same as it was when I double-click on the hacked materials file. If I leave out a node in the materials file, Poser deletes that node when I apply the mt5 file. If I just delete the file reference in a mt5 or mc6 file, Poser inserts "none" into the file name for the Image_File node.

What I would like is to find a way that I could make a materials file so that the texture image file would change, but the transparency image file would remain the same as it already was in memory. And vice versa: make a materials file so that the texture image file would remain the same as it already was in memory, but the transparency image file would change.

Any ideas?


hborre posted Mon, 29 May 2023 at 10:01 PM Online Now!

You will need a script to prompt you where to find the necessary files for exchange.  This might simplify the process or complicate it if you have to hunt and peck for the source image or transparency map.  

Now, instead of double-clicking the Library icon which replaces the nodes in the Material Zone, click on the double-check icon on the lower taskbar and add the Material to the zone.  It won't delete any nodes that are present although it might appear messy.  The best option, delete all the nodes you don't want and then add your MT5 material.


JimX posted Sat, 17 June 2023 at 6:53 PM

You all gave me a lot to think about. I've been playing for 3 weeks now. I've tried 4 or 5 approaches. I got some to work, but they were rather clunky. Some of them did not work at all.

Then one day while browsing through the Poser official documentation, looking for some info on how the Shader Nodes hung together, I ran across a note that said that there was a way to call a Python script from a .pz2 file. Since an .mc6 file has a similar structure, I tried it there, and it worked!

So now I have written a script and stashed away in my primary Runtime, and I can hack an .mc6 file to call it. It then changes the Transparency map without changing the Texture map-- or vice versa, depending on what I put in the hacked .mc6 file. The neat thing is that the hacked file appears in the Poser library, just like all the regular material files. And it behaves the same way, too-- if you click the double arrows, or double click on the file, it applies the Texture or the Transparency (but not both). So it feels very much like standard Poser.

It turns out that the hacked .mc6 file can be very small-- only about 15 lines, most of which are just curly brackets. It would be quite possible to construct the files in a text editor. However, my keyboard skills consist mostly of creating typos, so I wrote some other Python scripts to build the hacked files. They work as close as I could make them  to working like clicking the + button at the bottom of the library window. I stored them so that they show up in the Scripts > MaterialMods  menu. 

I've got it all working on Poser 12 on my Mac. If there is the kind of interest that Nerd mentioned, it might be interesting to see if the scripts work on Windows, and maybe some other versions of Poser (Poser 12 uses Python 3, while I believe earlier versions of Poser used Python 2; so there may be some issues with that.)


Y-Phil posted Tue, 20 June 2023 at 2:55 AM

JimX posted at 6:53 PM Sat, 17 June 2023 - #4468131

I've got it all working on Poser 12 on my Mac. If there is the kind of interest that Nerd mentioned, it might be interesting to see if the scripts work on Windows, and maybe some other versions of Poser (Poser 12 uses Python 3, while I believe earlier versions of Poser used Python 2; so there may be some issues with that.)

Are you speaking of this hair prop?


If I can help, I would be pleased, as I'm on Windows.

๐’ซ๐’ฝ๐“Ž๐“


(ใฃโ—”โ—กโ—”)ใฃ

๐Ÿ‘ฟ Win11 on i9-13900K@5GHz, 64GB, RoG Strix B760F Gamng, Asus Tuf Gaming RTX 4070 OC Edition, 1 TB SSD, 6+4+8TB HD
๐Ÿ‘ฟ Mac Mini M2, 16GB, 500GB SSD
๐Ÿ‘ฟ Nas 10TB
๐Ÿ‘ฟ Poser 13 and soon 14 โค๏ธ


JimX posted Tue, 20 June 2023 at 9:25 AM

Y-Phil, that would be great!

Yes, I do have 3Dream's Egypt hair. I like it very much. If we both have it, then it might make a good starting point for testing.

Let's establish a contact outside of the forum, so we can communicate details without bothering everyone else.

  - JimX


JimX posted Fri, 23 June 2023 at 6:37 PM

With some wonderful help from Y-Phil, the solution is now tested and working on Mac and Windows, with Poser 11, 12 and 13, and so with both Python 2 and 3.

If anyone is interested in checking it out in earlier version of Poser, I have uploaded the scripts to Free Stuff, and called it "Load Specific Map." If you do, it would be nice if you would leave a comment about your results.