• 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

Poser 11 improvements and node-material saving

phdubrov

Noteworthy
Contributing Artist
And here is an example of the scripting way:

NY.png

About 20 visible files in the directory. And 15 invisible. 90 main combinations and about 180 more slight variations not counting pattern's tiling. In beta now.
 

Ken1171

Esteemed
Contributing Artist
The only way I know of for you to do what you want is to simply make and save a preset with the transmap, and another preset without. After that you should simply be able to drag and drop the presets as you wish to switch them out. Assuming I understand what you're asking to do.

I have a perfect case where that won't work - the new CKV-01 scifi outfit. It ships with 70 material presets in 9 color themes, and then 10 transmap options that can be applied over the colors. If you apply one of them, a part becomes transparent. If you want to bring it back with a preset, you first need to know which of the 9 colors the user has used on it - which we don't know. If I just force a transmap without knowing the color, Poser will create a random one. Bummer.
 

eclark1894

Visionary
Here's an outfit I made for Roxie at Content Paradise. Now that I think about it, I might make it again for Dawn, but the point is that I made two presets to allow the textures to change. You can switch out material collections, not just one thing in that collection.

LeggingsPromo3.png


To do these TWO texture sets I had to create 4 presets. Two for the top and two for the leggings.
 
Last edited:

phdubrov

Noteworthy
Contributing Artist
I have a perfect case where that won't work - the new CKV-01 scifi outfit. It ships with 70 material presets in 9 color themes, and then 10 transmap options that can be applied over the colors. If you apply one of them, a part becomes transparent. If you want to bring it back with a preset, you first need to know which of the 9 colors the user has used on it - which we don't know. If I just force a transmap without knowing the color, Poser will create a random one. Bummer.
Exactly why I'm now fiddling with scripts.
 

Ken1171

Esteemed
Contributing Artist
Exactly why I'm now fiddling with scripts.

If it can be done, I wonder why all the Python gurus haven't tried after all these years? This is quite an old issue - we can either replace the entire material, or nothing.
 

phdubrov

Noteworthy
Contributing Artist
IIRC AdvancedShaders (Semidieu) was it and more: the whole system to create shaders and save it as poses or materials + scripts.
I'm not aware why it was not widely adopted.
Color changers exist for years, and I don't remember anybody has problems with it.

Addition:
you probably can output hundreds of needed materials with matmatic. And probably render with RenderContent (never used).

Addition2:
OOT Hairblending uses similar way.
And as far as I understand, something was broken in the transition between P8 and P9, so, people probably were reluctant to use seemingly unstable part of API.
 
Last edited:

Ken1171

Esteemed
Contributing Artist
IIRC AdvancedShaders (Semidieu) was it and more: the whole system to create shaders and save it as poses or materials + scripts.
I'm not aware why it was not widely adopted.
Color changers exist for years, and I don't remember anybody has problems with it.

Addition:
you probably can output hundreds of needed materials with matmatic. And probably render with RenderContent (never used).

I actually have Shaderworks Advanced Shaders, though something along the service releases in Poser 11 now cause most of his scripts to malfunction. I suppose changing a color is not much of a problem comparing to changing a transmap.
 

phdubrov

Noteworthy
Contributing Artist
I actually have Shaderworks Advanced Shaders, though something along the service releases in Poser 11 now cause most of his scripts to malfunction. I suppose changing a color is not much of a problem comparing to changing a transmap.
Crossposted with Addition2. Hairblending works with transmaps.
And Advanced Shader was probably not updated even to P9.
 

Ken1171

Esteemed
Contributing Artist
ShaderWorks plugins were working with P11 until around SR-4. After that it's a lot of error messages, but I can still use some of them. They became part of my workflow. I don't know what I will do when they finally stop working completely...
 

kobaltkween

Brilliant
Contributing Artist
Oh, I haven't used Single Material in a long time - that's why I didn't see the options. The bottom line is that it still can't replace part of a material, which is the big bummer we have to deal with. For example, if I remove a transmap and then want to make a preset to add it back, I can't.
I guess it depends on your perspective. You can save the transmap as its own preset, delete it, then reload it. More to the point, if you have several nodes working as your transmap (I've done that for masks), you can save the whole group, delete it, then reload it. Yes, you'd have to connect the node to whatever input, but that's really just another click. I'm not sure that I think two clicks instead of one is a big deal.
 

kobaltkween

Brilliant
Contributing Artist
I have a perfect case where that won't work - the new CKV-01 scifi outfit. It ships with 70 material presets in 9 color themes, and then 10 transmap options that can be applied over the colors. If you apply one of them, a part becomes transparent. If you want to bring it back with a preset, you first need to know which of the 9 colors the user has used on it - which we don't know. If I just force a transmap without knowing the color, Poser will create a random one. Bummer.
All you would have to do is add a script to take the relevant node the preset added (locate it by Name or InternalName, since you control the shader tree, either should be no problem) and hook it up to the input you intend for it. Then the preset would add the node(s) and hook it up in one fell swoop.

To replace an existing node, all you'd have to do is add script to unhook the node and delete it first.

So something like
thisTree = poser.Scene().CurrentMaterial().Layer(0).ShaderTree()
rootNode = thisTree.Node(0)
transInput = rootNode.InputByInternalName("Transparency_Max")
# Assuming only one node is plugged into the transparency, not a whole tree
oldNode = transInput.InNode()
if oldNode:
oldNode.Delete()
newNode = thisTree.NodeByInternalName("foo") # You can also find this by name, just looping through nodes
newNodeOutput = newNode.Output(0)
newNodeOutput.ConnectToInput(transInput)

Or you could just make presets for your transmaps and let people use them as they're meant. It _will not_ change any existing nodes if you choose to "Add to Scene" (double check mark). Unfortunately, even if you set your preferences to "Add to scene" on double click, it will still use the single check "Apply to Scene (replaces)" if you double click on a material preset.
 
Last edited:

eclark1894

Visionary
I guess it depends on your perspective. You can save the transmap as its own preset, delete it, then reload it. More to the point, if you have several nodes working as your transmap (I've done that for masks), you can save the whole group, delete it, then reload it. Yes, you'd have to connect the node to whatever input, but that's really just another click. I'm not sure that I think two clicks instead of one is a big deal.
If you do save the transmap as a preset, I believe that you can drag and drop it to the figure, as long as you apply it to the correct material group, other wise as Ken noted, Poser will try to create one for you, which never works. I did that a LOT when I was trying to learn how to create some stocking shaders for V4. Bagginsbill had a thread about it over at Renderosity in the Poser forum. Only thing is, you HAVE to create the preset and drag and drop it to the correct material group on the figure. With something like the stocking shader, if you create a node group with the preset, you should be able to simply input any changes you wish externally.

Of course, I may be on about something totally different from you guys, based on my understanding of what you're talking about.
 

phdubrov

Noteworthy
Contributing Artist
First file - set color to red, transmap - if any - preserved.
Second file - set transmap, color preserved.
Third file - set color to blue, transmap preserved.
Forth file - drop transmap, color preserved.
Something like this.
 

Ken1171

Esteemed
Contributing Artist
Thank you all for the suggestions concerning transmaps. I wouldn't mind doing those things for myself, but my thing is with store products. I know some over vendors have suggested doing things in a certain order to preserve transmaps - I know it works that way. We can set transmaps, textures, and colors if we apply them in this order. I have one product, the SuperHose for V4 that works like that. It allows combining these things if applied in that order.
 

kobaltkween

Brilliant
Contributing Artist
I meant the solution for products. I have two different products that include a script, with presets that reference the script. They allowed me to make 2nd skin stocking materials that work on any character and load like any material. No need to apply in any order.

But if you don't like doing it that way, that's cool. As long as you know you can make presets that swap out transmaps pretty easily, that's cool.
 

Ken1171

Esteemed
Contributing Artist
I meant the solution for products. I have two different products that include a script, with presets that reference the script. They allowed me to make 2nd skin stocking materials that work on any character and load like any material. No need to apply in any order.

But if you don't like doing it that way, that's cool. As long as you know you can make presets that swap out transmaps pretty easily, that's cool.

Sounds like a way to do it. Funny that I am a programmer but have never dealt with Python in all these years.
 

phdubrov

Noteworthy
Contributing Artist
poser.CurrentMaterial() and scripted mt5 materials in Poser (11, probably 9 and 10 too):
poser.CurrentMaterial() is set when:
1. You drag-n-drop mt5 from Library to the object matzone in Preview, both PoseRoom, and MatRoom.
2. In PoseRoom: if the scripted material is mt5 a double-click on it invoke matzone selection dialog as in regular mt5 before the script is loaded, and this dialog sets CurrentMaterial.
3. In MatRoom if you have matzone already selected via eyedropper or menu. All load options (double-click, single or double check) will run the script.

You can not drag-n-drop mt5 from library to nodetree. Both scripted and regular. Poser will think it is texture.
 

Ken1171

Esteemed
Contributing Artist
We have to gather everybody to request SMS to make this a default behavior in Poser 12 - setting part of a material doesn't overwrite all the rest. If they get enough requests, it gets upvoted in their priority list. :)
 

phdubrov

Noteworthy
Contributing Artist
How to define what is part of the material? In long and convoluted nodetree?
Options I see:
1. Explicitly mark some nodes/inputs for it.
2. Convert PoserSurface node to input node. (Wrote this to SM.) I.e. add an output to every input of the node.
 

Ken1171

Esteemed
Contributing Artist
Seriously - if enough people ask for the feature, the better the chance SMS will consider adding it. When a new Poser version is released, they usually mention having added the "most requested" features people had asked for.
 
Top