Forum Moderators: Staff
Poser Technical F.A.Q (Last Updated: 2024 Nov 13 12:50 am)
Welcome to the Poser Technical Forum.
Where computer nerds can Pull out their slide rules and not get laughed at. Pocket protectors are not required. ;-)
This is the place you come to ask questions and share new ideas about using the internal file structure of Poser to push the program past it's normal limits.
New users are encouraged to read the FAQ sections here and on the Poser forum before asking questions.
marty,
This is something that bugged me for a long, long time. I found a fix, but it's a bit klunky.
What you have to do is add a dummy part to the figure's obj file. I used a square made in uvmapper (with enough sub-divisions to cover as many materials as you require). In uv mapper, I assigned a material to each section of the square, then I added it to the figure obj. It must be the 1st part listed in the obj, and you also need to check the order of the materials. Sometimes uv mapper lists them differently.
Then you have to edit the cr2 to make the dummy part invisible in poser. I lock it, scale it to 1%, hide it from the menu, etc, etc. Oh, and make sure the material order in the cr2 matches the obj.
Once you've done all that, the figure will open with thematerials in the order you set them. Here's the text of the blank.obj I use for this. If you copy/paste this and save it with an .obj extension, you can import it to poser as an obj or open it in uv mapper. You can change the materials names to suit yourself.
# file generated by UVMapper
# NumVerts/NumTVerts/NumVNormals/NumFacets 50/144/0/36
# NumGroups/NumMaterials/NumRegions 1/32/0
# x/y/color/ppu 900/675/0/50.00000000
mtllib blank.mtl
v 0.03452630 0.05409500 0.06975000
v 0.03460380 0.05409500 0.06975000
v 0.03452630 0.05417250 0.06975000
v 0.03468120 0.05417250 0.06975000
v 0.03468120 0.05409500 0.06975000
v 0.03475880 0.05409500 0.06975000
v 0.03483630 0.05409500 0.06975000
v 0.03491380 0.05409500 0.06975000
v 0.03491380 0.05417250 0.06975000
v 0.03483630 0.05417250 0.06975000
v 0.03499120 0.05409500 0.06975000
v 0.03506880 0.05409500 0.06975000
v 0.03506880 0.05417250 0.06975000
v 0.03514630 0.05417250 0.06975000
v 0.03514630 0.05409500 0.06975000
v 0.03522380 0.05409500 0.06975000
v 0.03522380 0.05417250 0.06975000
v 0.03460380 0.05417250 0.06975000
v 0.03460380 0.05425000 0.06975000
v 0.03452630 0.05425000 0.06975000
v 0.03468120 0.05425000 0.06975000
v 0.03475880 0.05417250 0.06975000
v 0.03483630 0.05425000 0.06975000
v 0.03499120 0.05425000 0.06975000
v 0.03499120 0.05417250 0.06975000
v 0.03506880 0.05425000 0.06975000
v 0.03452630 0.05432750 0.06975000
v 0.03460380 0.05432750 0.06975000
v 0.03475880 0.05425000 0.06975000
v 0.03468120 0.05432750 0.06975000
v 0.03475880 0.05432750 0.06975000
v 0.03491380 0.05425000 0.06975000
v 0.03514630 0.05425000 0.06975000
v 0.03522380 0.05425000 0.06975000
v 0.03460380 0.05440500 0.06975000
v 0.03452630 0.05440500 0.06975000
v 0.03475880 0.05440500 0.06975000
v 0.03468120 0.05440500 0.06975000
v 0.03483630 0.05440500 0.06975000
v 0.03483630 0.05432750 0.06975000
v 0.03491380 0.05432750 0.06975000
v 0.03491380 0.05440500 0.06975000
v 0.03499120 0.05432750 0.06975000
v 0.03506880 0.05440500 0.06975000
v 0.03499120 0.05440500 0.06975000
v 0.03506880 0.05432750 0.06975000
v 0.03514630 0.05432750 0.06975000
v 0.03514630 0.05440500 0.06975000
v 0.03522380 0.05432750 0.06975000
v 0.03522380 0.05440500 0.06975000
vt 0.02328721 0.78391212
vt 0.10230273 0.78391212
vt 0.10230273 0.97392398
vt 0.02328721 0.97392398
vt 0.12398745 0.78391212
vt 0.20300257 0.78391212
vt 0.20300257 0.97392398
vt 0.12398745 0.97392398
vt 0.22223330 0.78391212
vt 0.30124840 0.78391212
vt 0.30124840 0.97392398
vt 0.22223330 0.97392398
vt 0.32613826 0.78391212
vt 0.40515336 0.78391212
vt 0.40515336 0.97392398
vt 0.32613826 0.97392398
vt 0.43965861 0.78391212
vt 0.51867425 0.78391212
vt 0.51867425 0.97392398
vt 0.43965861 0.97392398
vt 0.55072606 0.78391212
vt 0.62974119 0.78391212
vt 0.62974119 0.97392398
vt 0.55072606 0.97392398
vt 0.66584897 0.78391212
vt 0.74486411 0.78391212
vt 0.74486411 0.97392398
vt 0.66584897 0.97392398
vt 0.02328721 0.50000000
vt 0.10230273 0.50000000
vt 0.10230273 0.69001186
vt 0.02328721 0.69001186
vt 0.12398745 0.50000000
vt 0.20300257 0.50000000
vt 0.20300257 0.69001186
vt 0.12398745 0.69001186
vt 0.22223330 0.50000000
vt 0.30124840 0.50000000
vt 0.30124840 0.69001186
vt 0.22223330 0.69001186
vt 0.32613826 0.50000000
vt 0.40515336 0.50000000
vt 0.40515336 0.69001186
vt 0.32613826 0.69001186
vt 0.43965861 0.50000000
vt 0.51867425 0.50000000
vt 0.51867425 0.69001186
vt 0.43965861 0.69001186
vt 0.55072606 0.50000000
vt 0.62974119 0.50000000
vt 0.62974119 0.69001186
vt 0.55072606 0.69001186
vt 0.66584897 0.50000000
vt 0.74486411 0.50000000
vt 0.74486411 0.69001186
vt 0.66584897 0.69001186
vt 0.02328721 0.02607648
vt 0.10230273 0.02607648
vt 0.10230273 0.21608800
vt 0.02328721 0.21608800
vt 0.12398745 0.02607648
vt 0.20300257 0.02607648
vt 0.20300257 0.21608800
vt 0.12398745 0.21608800
vt 0.22223330 0.02607648
vt 0.30124840 0.02607648
vt 0.30124840 0.21608800
vt 0.22223330 0.21608800
vt 0.32613826 0.02607648
vt 0.40515336 0.02607648
vt 0.40515336 0.21608800
vt 0.32613826 0.21608800
vt 0.43965861 0.02607648
vt 0.51867425 0.02607648
vt 0.51867425 0.21608800
vt 0.43965861 0.21608800
vt 0.55072606 0.02607648
vt 0.62974119 0.02607648
vt 0.62974119 0.21608800
vt 0.55072606 0.21608800
vt 0.66584897 0.02607648
vt 0.74486411 0.02607648
vt 0.74486411 0.21608800
vt 0.66584897 0.21608800
vt 0.02328721 0.24738806
vt 0.10230273 0.24738806
vt 0.10230273 0.43739986
vt 0.02328721 0.43739986
vt 0.12398745 0.24738806
vt 0.20300257 0.24738806
vt 0.20300257 0.43739986
vt 0.12398745 0.43739986
vt 0.22223330 0.24738806
vt 0.30124840 0.24738806
vt 0.30124840 0.43739986
vt 0.22223330 0.43739986
vt 0.32613826 0.24738806
vt 0.40515336 0.24738806
vt 0.40515336 0.43739986
vt 0.32613826 0.43739986
vt 0.43965861 0.24738806
vt 0.51867425 0.24738806
vt 0.51867425 0.43739986
vt 0.43965861 0.43739986
vt 0.55072606 0.24738806
vt 0.62974119 0.24738806
vt 0.62974119 0.43739986
vt 0.55072606 0.43739986
vt 0.66584897 0.24738806
vt 0.74486411 0.24738806
vt 0.74486411 0.43739986
vt 0.66584897 0.43739986
vt 0.78097188 0.24738806
vt 0.85998696 0.24738806
vt 0.85998696 0.43739986
vt 0.78097188 0.43739986
vt 0.89609474 0.24738806
vt 0.97510993 0.24738806
vt 0.97510993 0.43739986
vt 0.89609474 0.43739986
vt 0.78097188 0.02607648
vt 0.85998696 0.02607648
vt 0.85998696 0.21608800
vt 0.78097188 0.21608800
vt 0.89609474 0.02607648
vt 0.97510993 0.02607648
vt 0.97510993 0.21608800
vt 0.89609474 0.21608800
vt 0.78097188 0.50000000
vt 0.85998696 0.50000000
vt 0.85998696 0.69001186
vt 0.78097188 0.69001186
vt 0.89609474 0.50000000
vt 0.97510993 0.50000000
vt 0.97510993 0.69001186
vt 0.89609474 0.69001186
vt 0.78097188 0.78391212
vt 0.85998696 0.78391212
vt 0.85998696 0.97392398
vt 0.78097188 0.97392398
vt 0.89609474 0.78391212
vt 0.97510993 0.78391212
vt 0.97510993 0.97392398
vt 0.89609474 0.97392398
g Figure 1
usemtl center_wall
f 27/1 28/2 35/3 36/4
usemtl center_fill_1
f 28/5 30/6 38/7 35/8
usemtl center_fill_2
f 30/9 31/10 37/11 38/12
usemtl center_fill_3
f 31/13 40/14 39/15 37/16
usemtl center_fill_4
f 40/17 41/18 42/19 39/20
usemtl center_fill_5
f 41/21 43/22 45/23 42/24
usemtl center_outer
f 43/25 46/26 44/27 45/28
usemtl left_wall
f 20/29 19/30 28/31 27/32
usemtl left_fill_1
f 19/33 21/34 30/35 28/36
usemtl left_fill_2
f 21/37 29/38 31/39 30/40
usemtl left_fill_3
f 29/41 23/42 40/43 31/44
usemtl left_fill_4
f 23/45 32/46 41/47 40/48
usemtl left_fill_5
f 32/49 24/50 43/51 41/52
usemtl left_outer
f 24/53 26/54 46/55 43/56
usemtl front_wall
f 1/57 2/58 18/59 3/60
usemtl front_fill_1
f 2/61 5/62 4/63 18/64
usemtl front_fill_2
f 5/65 6/66 22/67 4/68
f 6/69 7/70 10/71 22/72
usemtl front_fill_4
f 7/73 8/74 9/75 10/76
usemtl front_fill_5
f 8/77 11/78 25/79 9/80
usemtl front_outer
f 11/81 12/82 13/83 25/84
usemtl right_wall
f 3/85 18/86 19/87 20/88
usemtl right_fill_1
f 18/89 4/90 21/91 19/92
usemtl right_fill_2
f 4/93 22/94 29/95 21/96
usemtl right_fill_3
f 22/97 10/98 23/99 29/100
usemtl right_fill_4
f 10/101 9/102 32/103 23/104
usemtl right_fill_5
f 9/105 25/106 24/107 32/108
usemtl right_outer
f 25/109 13/110 26/111 24/112
usemtl floor
f 13/113 14/114 33/115 26/116
usemtl floor_outer
f 14/117 17/118 34/119 33/120
usemtl ceiling
f 12/121 15/122 14/123 13/124
usemtl ceiling_outer
f 15/125 16/126 17/127 14/128
usemtl Preview
f 26/129 33/130 47/131 46/132
f 33/133 34/134 49/135 47/136
f 46/137 47/138 48/139 44/140
f 47/141 49/142 50/143 48/144
------------------------------------ If you need any more info, let me know.
mac
Here's the 'blank' body part from the cr2. You don't need any channels for it and everything is locked and hidden. It doesn't appear in the menu. The only place you'll see it is in the Hierarchy window.
actor blank:1
{
name blank
off
bend 0
dynamicsLock 1
hidden 1
addToMenu 0
castsShadow 0
includeInDepthCue 1
parent BODY:1
channels
{
}
endPoint 0 0 0
origin 0 0 0
orientation 0 0 0
displayOrigin 0
displayMode USEPARENT
customMaterial 0
locked 1
}
mac
Here are some things I do not understand... "What you have to do is add a dummy part to the figure's obj file. I used a square made in uvmapper (with enough sub-divisions to cover as many materials as you require)." I have never made a square in uvmapper or anyother object in uvmapper and I don't know how. In uv mapper, I assigned a material to each section of the square, then I added it to the figure obj. It must be the 1st part listed in the obj, and you also need to check the order of the materials. Sometimes uv mapper lists them differently. How do I make sure its the first thing listed in the obj? thank you marty
Another quick note. It's important to understand how poser works. When you make a cr2, poser reads the information in the geometry obj to find the list of body parts and materials. Each body part it finds has to correspond to the actor list in the cr2. As poser reads the body parts, it also makes a list of the materials. The 1st material it finds will be at the top of the list in Surface Materials, the 2nd in second place, and so on. So poser reads the materials in the order they're placed in the obj file. By adding a dummy part with materials, you're forcing poser to find that part first, and read the materials in the order you want them. mac PS Very important - If you try this, remember to delete the geometry .rsr first or poser won't find the new obj information.
Okay, I got it to work reasonably well by loading the obj you supplied into uvmapper. I then assigned each section a material in alphabetical order. I then loaded that square into poser and checked the material listing. It was very close to alphabetical order, except two materials that should be in the middle of the list, moved to the bottom. Thats funny, what are the rules that govern ordering these materials correctly anyway. Anyway with the square loadup on poser with a material listing greatly improved, I loaded up the Target Clothing Item. I then saved them together as one obj. Then I ran the cr2 that loads the Target Clothing Obj with the square added to it. What happened was the Clothing Figure loaded perfectly with the new (almost perfect list). The square on the other hand, because it was never assigned to any group that the cr2 recognizes, didn't load up at all. This was my first try and more of an experiement than anything, but I am happy with these results. I can not find any the square at all, its non exhistant as far is poser is concerned. I can't even find it in the hirechy list. In other words, I got it to work in a hap-hazzard way with out any changing in the cr2 whatsoever. Maybe, by chance I just simplified your method! Just one question though, I renamed all the materials in alphabetical order, how come a few materials did not go in order? Do you have any sugestions as to why? Anyway, its a big improvement! Thank you marty
Attached Link: http://groups.yahoo.com/group/PoserTECH/
OK, marty. You're doing fine so far. A lot faster than I did it the first time.First problem, The material order. I don't quite know why this happens. If you order the squares in uv mapper, going from left to right and top to bottom, they should (in theory) be in order, But it doesn't always happen that way. I often have to re-order them manually inside the dummy obj file with notepad. But it's not a problem. You can either re-type them or copy/paste them, moving the 'usemtl' lines around to get it right. What governs the materials is the facet order of the box and I haven't quite worked that out yet.
The second problem is that the dummy obj needs to be a part of figure obj. The normal way to do that would be to import each piece into poser one by one, always importing the dummy obj first, so it appears in the final obj first. Now, you already have the figure built, so you have 2 choices. You can either re-build it (remembering to import the dummy before anything), export all the pieces as your final obj, and move it to your Geometries folder. Now you can either make a new cr2 or try adding the new part yourself.
If you use the old cr2, you need to add a dummy actor and body part. This is pretty easy. Post #3 above has the full body part for a dummy, and in poser the part will be hidden and locked, and won't appear in the menu, so there are no distractions. You can copy/paste it as it is and add it to the cr2 as the 1st body part. That means it goes in between BODY and whatever your 1st body part is. One thing to note is that I call my dummy 'blank', so you'd need to change the line
actor blank:1 to actor mydummyname:1
That is, the name you use when you import it to poser - 'dummy' or whatever.
You also have to add the dummy actor in the first section of the cr2. Here's what it looks like.
{
version
{
number 4.01
}
figureResFile :Runtime:Geometries:room creator:01main room.obj
actor BODY:1
{
}
actor blank:1
{
storageOffset 0 0 0
geomHandlerGeom 13 blank
}
actor back_wall:1
{
storageOffset 0 0 0
geomHandlerGeom 13 back_wall
}
actor back_1:1
{
storageOffset 0 0 0
geomHandlerGeom 13 back_1
}
more body parts, etc, etc
What you have to do is insert the lines
ADD THESE LINES----------------
actor blank:1 <<<<< INSERT YOUR DUMMY NAME
{
storageOffset 0 0 0
geomHandlerGeom 13 blank <<<<< INSERT YOUR DUMMY NAME
}
------------------------------------ Add them immediately after the BODY statement
actor BODY:1
{
}
Again, you have to change 'blank' to your name (where I've indicated).
The other way to do it is to add the dummy obj information to your own figure obj as the first group. I'm not sure on this method, because there's no way of adding the actual geometry, just the materials, so I can't guarantee what will happen. What you'd have to do is open the dummy obj and cut out the material information. It starts with the line 'g Figure1' (It's easy to search obj files with either 'gSPACEBAR' or 'usemtl'). Cut out from g Figure1 to the end, then paste it into your figure obj ABOVE the first g line (g is for 'group'). The dummy obj materials are now the first body part in your obj. You must change the g line 'Figure1' to whatever you're calling the dummy actor in the cr2.
I hope this helps. As I say, it all sounds ridiculusly complicated, but it's easy when you're doing it from the start with a figure. You have your figure built, so you're having to backtrack.
Yell if you need more.
mac
Things to remember
Always delete the geometry .rsr before opening the new figure in poser.
Remember to check that the cr2 materials are in the same order as the obj before you open the figure in poser
If you don't have cr2Editor, I recommend strongly getting it. Get v1.51, NOT 1.52, as it was buggy. It may be in Freestuff here, if not you can get it at the link above, but you have to join the Yahoo group. No big deal. It's a good place to get tech info.
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.
I have just built a clothing piece for poser with a lot of material zones. The materials are all out of order when I look at them in poser. I would like to see them listed alphabeticaly. Can anyone help? thank you marty