20 threads found!
Thread | Author | Replies | Views | Last Reply |
---|---|---|---|---|
232bird | 4 | 149 | ||
232bird | 2 | 108 | ||
232bird | 18 | 282 | ||
232bird | 6 | 178 | ||
232bird | 4 | 134 | ||
232bird | 0 | 102 |
(none)
|
|
232bird | 8 | 167 | ||
232bird | 17 | 412 | ||
232bird | 15 | 175 | ||
232bird | 1 | 102 | ||
232bird | 5 | 145 | ||
232bird | 4 | 117 | ||
232bird | 3 | 52 | ||
232bird | 11 | 219 | ||
232bird | 2 | 83 |
99 comments found!
Yes, I am using the outfitter now, it works perfectly. As far as props, I mean .pp2 files like armbands, belts, etc. And I have even had trouble with hair on occasion, but nothing a little scaling couldn't fix. If it matters I now have the updated V4Wm, also.
Thread: Mini Tutorial for Converting Clothes for V4-WM | Forum: Poser - OFFICIAL
Thanks for the tips! I spent hours failing in the setup room, I would load the V4 rigging from the library which would break the conforming and wipe out all the morphs. Copy joint zones is much better.
BTW, is there any way to get the weight mapping to affect parented props as well? The old magnet system almost gave the illusion of working, but now without them the props just do whatever.
Thread: Gen 4 injections overwriting morph channels | Forum: Poser - OFFICIAL
Maybe a silly question, but do you know how to do that? I did some research b/c f your post and was led to the EXP Exporter tool in Daz Studio. Got it to work, but it only created inject/remove files, which I could have done on my own. So I edited the inj/rem pose and geometry pz2s manually with the Daz ones (morphs++, etc) as a template, and it worked to bring the morphs into their own channel, except that they overwrote the "strength" dial under the Deformers tab. It happened as Poser went down the list of readscript calls in the injet pz2, so the last morph in the pz2 was the only one injected by the time it finished loading.
Thread: (need help) making displacement point in a direction | Forum: Poser - OFFICIAL
Thread: Need help with simple material script | Forum: Poser Python Scripting
I took a closer look at the script you posted, and I like your idea of using a list. My way, were I able to get it working, would get very ugly very fast. With that being said, don't pay much attention to the attached file, since I will pursue a new course of action with a list.
As to your example with the blender node, you raise a very good point. I don't think it would break the process, but would reduce the number of successful outcomes to 1/number of image maps in the chain. I can't think of any way to avoid that without being able to find some clue or assignment left by the developer, but since there isn't really standardization I don't see that being possible. I'm not too worried about it though, since I can't think of a single product that uses proper application of the node system (but not saying there aren't any out there); most products I see/own simply change the reference image to deal with masks, tattoos, etc.
I'm done for tonight, gonna play with it tommorrow and report back.
Thread: Need help with simple material script | Forum: Poser Python Scripting
That makes sense. I didn't think to account for a mat with no nodes into the diffuse channel. I'm eager to see the script you posted, because I realized that if I hit a node with multiple inputs that will open up a world of hurt. It will be late before I get home, but I will post the full version of what I have so far when I do.
Thread: Need help with simple material script | Forum: Poser Python Scripting
Quote - I would suggest you not use Input(x) although it does work. If poser adds something to PoserSurface it will break, and it makes it hard to undrstand what is going on.
Good point, I'll change it to use internal names when I do the cleanup.
For the poser surface I tried
node.Input(21).setFloat(0)
before but it didn't work. I SHOULD have used
node.Input(21).SetFloat(0)
^
been getting bitten by capitalization all day, glad I noticed that.
Quote - dont understand this at all:
Print "Node is not an image map, moving to next input..."
node1 = node2
node2 = node1.InNode(0)
testIMG()
its saying make node1 = node2
then its wrongly trying to get the node connected to node1
that wont work.
I agree, I took it out for now to do more testing. What I was trying to do with that statement is:
A B C
PoserSurface(Diffuse Color)input ->non image map node -> image map node
Node A is the current focus, so find the input for that node, which is node B. Yes? Cool, exit the function and move on. No? Ok, focus on node B, and grab its input which is node C. Restart the loop and test again. The problem with doing it cut and dry like that is that I don't know how many extraneous nodes are in the path before I hit the image map, and I need a way to feed node B to the beginning of the function so it doesn't keep trying to start with node A over and over again. Probably have to use an incremented integer with a FOR loop. Or something.
For testing the node, I followed your input and rewrote it to
if node2.Type() == poser.kNodeTypeCodeIMAGEMAP:
but it still didn't work. Here is what is really confusing me on that whole part part. The line
print node2.Type()
returns image_map. So if I use
if node2.Type() == "image_map":
Python returns
image_map
node is an image map
fourteen times, the the attribute error
File "V:Pythonmats.py", line 40, in ?
testIMG()
File "V:Pythonmats.py", line 24, in testIMG
print node2.Type()
AttributeError: 'NoneType' object has no attribute 'Type'
But if I use
if node2.Type() == poser.kNodeTypeCodeIMAGEMAP:
I still get
image_map
node is an image map
returned fourteen times, then I get the same attribute error. It seems like Python is reassigning node2, even after I took out all that funky node1 = node2 stuff. Almost forgot, I checked the typecode with the Poser Python Methods manual as well as Phillc's book, and they both used the same code, so no luck there.
Thread: Need help with simple material script | Forum: Poser Python Scripting
I am happy to report that after way too long I have been able to make some progress, and learn some things as well. This script has evolved a bit, my goal is now to be able to take any material set and strip it down to the bare essentials. My motivation for doing this is that
Older material sets employ "tricks" that are no longer necessary and don't work well with render gamma correction, IDL, and now built-in SSS
Complex shader trees are not needed with and sometimes don't even work with Pose2Lux and other exporters
3) I've been lurking long enough and have learned quite a lot since I first found this website, so now I want to start contributing
So... this script is intended to clean out the surface node, for example get rid of the kd_lite_multiplier, diffuse colors, ambience, etc. that were used way back in the day but are no longer needed. Then, follow the connections from the color inputs down to the image maps and plug those image maps directly to the color inputs. Then the user can apply the new SSS, or VSS, or whatever without worrying about things going haywire, or export to another program/renderer without having an all black figure because the maths didn't bake properly.
Here is what I have so far:
import poser
#declare materials
mats = poser.Scene().CurrentFigure().Materials()
shaderTree = poser.Scene().CurrentMaterial().ShaderTree()
for mat in mats:
shaderTree = mat.ShaderTree()
node = shaderTree.NodeByInternalName("PoserSurface")
node.Input(0).SetColor(1.0,1.0,1.0)
node.Input(1).SetFloat(0.8)
node.Input(2).SetColor(1.0,1.0,1.0)
node.Input(3).SetFloat(0.2)
node.Input(6).SetFloat(0.0)
node.Input(20).SetFloat(0.0)
#node.Input(21).setInput(0)
#Function to test if a node is an image map
def testIMG():
Diff_Color_Input = node0.InNode()
node2 = Diff_Color_Input
node2_type = node2.Type()
print node2_type
if node2_type == "image_map":
print "node is an image map"
return
else:
print "Node is not an image map, moving to next input..."
node1 = node2
node2 = node1.InNode(0)
testIMG()
#Find Diffuse image map
for mat in mats:
shaderTree = mat.ShaderTree()
node = shaderTree.NodeByInternalName("PoserSurface")
Diff_Color = node.InputByInternalName("Diffuse_Color")
node0 = Diff_Color
testIMG()
shaderTree.UpdatePreview()
poser.Scene().DrawAll()
Forgive me if I missed an indent or such, that is a copy/paste from my editor and then liberal use of the spacebar applied.
I have hit a couple problems so far. The biggest is that the script exits with
Traceback (most recent call last):
File "V:Pythonmats.py", line 40, in ?
testIMG()
File "V:Pythonmats.py", line 23, in testIMG
node2_type = node2.Type()
AttributeError: 'NoneType' object has no attribute 'Type'
as the error. I thought the "return" command would break the function, but it appears it isn't doing what I thought it would. As a sidenote to that, I'm pretty sure there is a problem with how I am reassigning the nodes after the "else:" line.
The other is the line
#node.Input(21).setInput(0)
I cannot for the life of me get the Reflection_kd_Mult to uncheck in the script. It worked fine for Reflection_lite_mult by giving it a 0.0 floating number. For what it's worth I ran a Type() command on the Reflection_kd_Mult and Poser returned "4", whatever that means. Oh, and I know it has a # in front, I just stuck that there so I could move on to other things for the time being.
Thread: Why do I need Gamma | Forum: Poser - OFFICIAL
Sorry I'm late to the thread and this won't contribute, but, I have been through all the gamma threads I have come across during my time here, and was able to understand and use GC so long as the contributing materials and textures weren't too messed up. However it did not fully click for me until I read this post and specifically this paragraph (bagginsbill, Posted Tue, Oct 18, 2011 3:22 am):
Quote - Now suppose you have a texture in which you have, using Photoshop, drawn a certain amount of red. As you made your drawing, you decided to use 89 red, because it looked right to you. Internally, you were making a decision to add more red until it looked right. What you were looking at was 10% red. What we want the renderer to use in its calculations involving this texture is that here it is 10% red. The way to do that is to "decode" the image. The image values are not linear. The value 89 means literally 10%. It does not mean 89/255 or 35% - it does not mean that at all. But if you ignore gamma, that's what you're using.
Thank you, bagginsbill.
Thread: Need help with simple material script | Forum: Poser Python Scripting
Thanks for the link, I need to go read those manuals again. I even tried using your set minshader script as a reference since it can recurse through everything, but no matter what I do I get either syntax errors or iteration errors. I'll go through the manuals and see if that doesn't set me straight, then report back.
Thread: Need help with simple material script | Forum: Poser Python Scripting
That's something that confused me. How do I assign/declare mat to be the material? Does Python know that
for mat in mats
means that "mat" means "whatever is lower in the tree from mats(defined)?"
I think I need a good flowchart of the hierarchy in order to get the recursive stuff sorted out. Or I may just be over thinking it, if my above assumption is correct.
Sorry about the indentation, when I did copy/paste it didn't keep the formatting. I'll be careful of that. The formatting was correct in my text editor, though.
Thread: Need help with simple material script | Forum: Poser Python Scripting
Lol yep, I did too. Now everything works.
I tried to add to the script to make it recurse through all figures and materials. Came up with this.
import poser
#declare variables
scene = poser.Scene()
allfigs = scene.Figures()
#set FOR loop to recurse through figures
for figure in allfigs:
#declare materials
mats = figure.Materials()
#FOR loop to recurse through materials
for material in mats:
#declare shader tree down to diffuse node
shaderTree = material.ShaderTree()
poserSurface = shaderTree.Node(0)
diffuseNode = poserSurface.InputByInternalName("Diffuse_Color")
#apply color
try:
mat.diffuseNode.SetColor(1.0,0.2,0.2)
except:
pass
#refresh scene
shaderTree.UpdatePreview()
scene.DrawAll()
print "Done"
at line 11, "for material in mats", I get the error
for material in mats:
^
SyntaxError: invalid syntax
What I am trying to do with that line is go through all materials for a figure and apply the color to each.
Thread: Need help with simple material script | Forum: Poser Python Scripting
Whew, thanks PhilC, that clears up a lot of confusion. Your script works fine, except that for me
scene.DrawAll()
causes an error. I even tried adding
scene = poser.Scene
after "import poser", but it didn't help. I'm still using Pro2010, if it matters.
Thread: Looking for a good destroyed city | Forum: Poser - OFFICIAL
I just got it. Love it, very well done. Thanks again guys!
BTW, do you know of a good skyline that will match that I can use for a background? Even low-rez or another format will work, I just need something that also looks destroyed to put behind it.
Thread: Looking for a good destroyed city | Forum: Poser - OFFICIAL
This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.
Thread: Mini Tutorial for Converting Clothes for V4-WM | Forum: Poser - OFFICIAL