Tintifax opened this issue on Jan 16, 2004 ยท 26 posts
Tintifax posted Fri, 16 January 2004 at 4:50 AM
All this elements use external geometry, but the morphs make the *.cr2 files a bit heavy (up to 4MByte). If you want to make a larger hall, this may cause problems.
What do you think is the best solution?
Leave it the way it is.
Use a morph injection concept to lower the *.cr2 size.
Make seperate *.cr2 files for specific combination of morphs and thus delete the morphs from the *.cr2. This will increase the number of the actual 4 major elements to more than 25.
In general: Do you think doing these elements as *.cr2 instead of props is a good idea? It allows applying MATs very easily.
The picture shows one element of Claw Hall and some major morph options. I really appriciate a discussion here, because this will be a base pack with a lot of extensions planned and I want to take the right direction.
Thanks
hauksdottir posted Fri, 16 January 2004 at 9:39 PM
I don't like MATS and I don't like injecting anything. (I have a mental image of a naked Vicki with a hotglue gun trying to keep the ceiling from falling down on her.) It bloats a system. Why not just provide props which we can place where we want them? Why complicate things?
Tintifax posted Sat, 17 January 2004 at 3:09 AM
I had the feeling that people here wanted to have MATs to easily change the materials on an element. The element shown on the picture above has about 15 morphs. If I use the most popular combinations, I will exceed 25 different props. If I make a prop for the 2 actual material sets this just doubles the number of props to more than 50. I'm not sure if it is a good idea to ptovide more than 50 entries in the prop directory instead of having 1 character and making 2 MAT files and providing about 10 Morph INJ/REM pairs for it. But I'm very interested in all your opinions. It's a question of useability and I'm also ready to provide different packs for different group of users. Thanks for your comment hauksdottir. It is very welcome - Walter
PhilC posted Sat, 17 January 2004 at 4:21 AM
Oh seriously good stuff :)
OK this is what I would do.... create a single CR2 with all the morphs in it. Very flexible and no messing around with injection poses. 4Mb aint so bad. Now in your readme ... right at the top... in VERY big letters tell folks to- Load the column figure into a scene and get it just the way they want it.
You now have the advantage of flexibility without the overhead of many large column.cr2 files in the scene, or a confusing number of files in the figure library.
Hope this helps 'cos this project looks exceptionally good :)
randym77 posted Sat, 17 January 2004 at 6:09 AM
I like MATS, but I think Carolly has a point. OTOH, 50 props is a lot. Maybe you could break up the set somehow? Sell the other texture set separately, or offer it as a freebie to customers who write a review, as some merchants are doing. Phil, I love you, and I love your stuff, but I think you're expecting too much of the average user. The average customer, who needs MAT files to apply textures, is not going to be happy about having to export OBJs and such. And I think that's going to affect the product feedback. I dunno, this is a tough one. Maybe leave it as it is, with optional tips (such as Phil suggests) for less powerful systems/very large halls.
Tintifax posted Sat, 17 January 2004 at 9:47 AM
Thanks for your reply. You really inspired me, so I had another idea.
Most of my morphs help to hide parts of the geometry. Breaking up the geometry in groups may help. I could simply switch off the unwanted groups to get different looks or resize and thus hide them behind other polygons.
Thus I would only need only 1 or 2 morphs and a little bit more vertices (have to redo the geometry). Switching on and off of parts could be done by pose files.
This would lower the size of the *.cr2 significantly and leave the flexibility in. Have to make some tests though (never done this before).
Thanks for your inspiration
lesbentley posted Sat, 17 January 2004 at 11:00 AM
I would think delta (morph) injection is probably a good way to go. An alternative would be geometry injection where you inject a reference to an obj file rather than deltas, this is only a good idea if the item is modular and uses a seperate objFileGeom file for each body part, for example the declarations in your cr2 might look like this:
{
version
{
number
}
actor BODY:1
{
}
actor Part_1:1
{
storageOffset 0 0.3487 0
objFileGeom 0 0 :Runtime:Geometries:props:BOX.OBJ
}
actor Part_2:1
{
storageOffset 0 0.3487 0
objFileGeom 0 0 :Runtime:Geometries:props:CONE.OBJ
}
actor Part_3:1
{
storageOffset 0 0.3487 0
objFileGeom 0 0 :Runtime:Geometries:props:BALL.OBJ
}
prop Prop_1:1
{
storageOffset 0 0.3487 0
objFileGeom 0 0 :Runtime:Geometries:props:BALL.OBJ
}
You could then use a pz2 to substitute geometries rather than adding morphs, the pz2 might look like this: { actor Part_1:1 { storageOffset 0 0.3487 0 objFileGeom 0 0 :Runtime:Geometries:props:torusThin.obj } actor Part_2:1 { storageOffset 0 0.3487 0 objFileGeom 0 0 :Runtime:Geometries:props:cylTex.obj } actor Part_3:1 { storageOffset 0 0.3487 0 objFileGeom 0 0 :Runtime:Geometries:props:SQUARE.OBJ } prop Prop_1:1 { storageOffset 0 0.3487 0 objFileGeom 0 0 :Runtime:Geometries:props:CONE.OBJ } }
If you only need to switch a part off then I guess you could use an empty obj file. !!! WARNING !!! this approach may cause problems in Poser 4 if you try to inject geometry for an actor into a figure that uses a single figureResFile as opposed to individual objFileGeom's for each actor. The same technique can also be used with internal geometry in a geomCustom, in that case the whole geomCustom would be injected into the declaration. You can mix and match, it doesn't matter if the original declaration was an obj or geomCustom, either can be injected into the declaration. Another option rather than injection would be geom swaping via geomCustom, as per the hands in the Skeleton Woman.
maclean posted Sat, 17 January 2004 at 4:23 PM
Tintifax, I mainly make furniture products myself and I can tell you right now that props are nothing but a pain. For the average user, cr2 figures give much more flexibilty and MATs can be used to do just about everything with them. If you're using props, MATs are a pain, expecially in a setup like this where it looks as though the user would probably use multiple instances of an item. That pretty much rules out props/MATs completely. Here's what I would do. Stick with cr2s. 4Mb isn't that bad. But DON'T use morphs to switch off geometry. Split the geometry up into body parts and, if necessary use SET files (a form of MAT) to configure the more complicated ones. Remember that when you make a morph, the more complicated the body part geometry is, the bigger the morph will be. So, try to break the figures down as much as you can. Secondly, take a close look at the original geometry to see if you can lower the poly count anywhere. You may be able to knock it down by a fair bit. Are you saving the obj file without normals? If not, then do it. That'll knock off 20-30% in the size of the obj. It looks like a cool project. My advice would be to spend the time on it and get it right. Even if you have to start from scratch, I reckon it's worth doing really well. mac PS If you want a sample of a SET file to switch body parts on/off or to set morph values, let me know and I'll post it. You can even use them to set joint parameters too.
Tintifax posted Sat, 17 January 2004 at 5:47 PM
Thanks for all your advice. I did completely rework this first element. It has multiple parts now (it consists of a monolithic core part and separate objects for the banners, arcs and ceiling parts). Next I thought about doing a single object file with several groups and materials, but geometry injection seems to be an interesting solution. Thanks for this sample, lesbentley On the other hand, I'm not worried about the obj size. It's well below 500kByte, which should be no problem. I always use UVMapper to get rid of the normals and keep the file size low. My concerns were mainly the morphs in the *.cr2. Switching on/off body parts would be a good solution too and allow a single obj. I'm very interested in these SET files, maclean. The goal is easy to handle (MAT files help a lot) AND versatile elements. I think I'm going into the right direction with your help. This will be very interesting. Thanks a lot - Walter
maclean posted Sat, 17 January 2004 at 8:00 PM
hi walter,
Well, it all seems to be working out OK. I sometimes find it helps to rethink a project several times before I actually nail it down. The obj size is pretty low, so no problems there either.
There's no big secret to SET files. They're just Pose files which don't change the materials. I call them SETs because they 'set' values. Some people call them 'placement' files or other odd names. They're very easy to construct. Here's one which switches 2 roller-blind body parts ON and sets their morph value to 1.00
{
version
{
number 4.01
}
actor roller_blindL:1
{
on
channels
{
targetGeom raise blind
{
keys
{
k 0 1
}
}
}
}
actor roller_blindR:1
{
on
channels
{
targetGeom raise blind
{
keys
{
k 0 1
}
}
}
To switch a body part OFF, just name the body part and change the on line to off. Like so
{
version
{
number 4.01
}
actor roller_blindL:1
{
off
}
actor roller_blindR:1
{
off
}
}
Here's one which repositions a window's joint parameters so it can open outwards. It also sets the correct rotation values and limits.
{
version
{
number 4.01
}
actor 1window:1
{
channels
{
rotateY yrot
{
min 0
max 150
keys
{
k 0 0
}
}
}
origin -0.582 0.54 0.014
}
}
This one moves a BODY and switches one body part ON and another OFF.
{
version
{
number 4.01
}
actor BODY:1
{
channels
{
translateX xtran
{
keys
{
k 0 -1.395
}
}
}
}
actor fill_1:1
{
on
}
actor fill_2:1
{
off
{
}
}
These are just a few examples, but as you can see, pretty much anything that's in a cr2 can be put into a SET file and used for easy configuration of figures. You can also combine SETs and MATs so one file will configure and texture all at once. One thing that's useful is to always use BODY:1 in a SET file (like the one above). It doesn't matter how many figures you have open in poser, whichever one you select, a BODY:1 SET will always work. If you have preset positions you want to move figures to, you can make one SET file for all the figures, instead of several different ones which name different body parts.
If you have any questions, just yell.
mac
Tintifax posted Sun, 18 January 2004 at 4:40 AM
Thanks a lot, this was very helpful. Didn't play with *.cr2 files a lot until yet, but it seems you can do a lot of fine things with them. I think at the moment I stick to this, but there may be more complicated elements in the future, where geometry swapping might come in quite handy. Thanks for all your help, I'll keep you posted about my progress. - Walter
FishNose posted Sun, 18 January 2004 at 12:38 PM
Definitely stick with cr2. The MATs are worth it. :] Fish
Tintifax posted Mon, 19 January 2004 at 4:03 AM
I did a lot of rework, but I do have now what I want. An obj with different groups and materials and a *.cr2 created with a hier file (by using PHI builder). The obj raised from 402kByte to 460kByte. The *.cr2 went from 4MByte to 143kByte without losing functionality. I love it. Still have to get rid of all unwanted parts in the .cr2. Any idea where I can get infos about '.cr2 inside' Next are the Pose files for switching on/off parts and the MAT files. - Walter
maclean posted Mon, 19 January 2004 at 3:15 PM
Attached Link: http://groups.yahoo.com/group/PoserTECH/
Walter, Well done. That sounds good. Do you have John Stalling's cr2Editor? If not, you should definitely get it. It's a free program for cr2 editing and it's excellent. The only place you can get it from is the Yahoo Poser Tech Group at the link above. You need to register with the group, but it's worth it as you'll find a lot of good information there too. You MUST get version 1.51, NOT 1.52 because it was a bit buggy. I use it to edit cr2s and also make MATs and SETs. I normally have a basic template with the different body parts or materials of a figure and use that to make whatever I need. A couple of things you might not know about. First, remember to switch off the 'bend' option for all body parts in non-human figures as it can distort them badly when they're moved around. Also, when you're not using bend, you can eliminate a lot of channels from the cr2 - all the ones for smoothing and bending. These are JointX / JointZ / TwistY + any SmoothScale channels. They're no use to you and they increase the file size. You may also want to check the rotation order of your body parts. If you accepted the default PHI Builder order, it will probably be XYZ. A better order is YXZ for non-human figures. You can correct this in 2 ways. One is to drag the channel order around in cr2Editor, the other is to re-import a new PHI file into poser. Open the old PHI file in notepad and replace 'xyz' with 'yxz' and save it again. (This is the way I usually do it - I accept the default order, then edit the PHI file). The rotation order is important because it will determine how the body parts are affected by the poser tools, especially the Rotate Tool. Rotate affects the first 2 channels, and if they are XY, the rotations will be weird. YX is much better. If you need any more information, let me know. mac PS I see we're (almost) neighbors. I'm in the italian alps and you're in austria. LOL.maclean posted Mon, 19 January 2004 at 3:26 PM
Attached Link: http://www.silverleifstudios.com/MATTut.htm
Additional explanations Bend option - You can switch this off in poser by selecting the body parts one by one and clicking ctrl-i for properties and unchecking 'bend'. Or you can do it in cr2Editor by using 'Search and replace'. Type in 'bend 1' and replace with 'bend 0'. Deleting channels - Do this in cr2Editor by selecting the channel and pressing the Delete key. YXZ rotation order - The reason this is better is that you can rotate your columns on their Y-axis (the vertical one) instead of the X-axis (horizontal one). I've added a link to a tute on MAT files, but it's mostly concerned with materials, not body parts. Still, it's one of the best materials tutes I've found. I can't find any links to cr2 tutes unfortunately, but you could try DAZ Arcana. Maybe they have something. macTintifax posted Wed, 21 January 2004 at 2:04 AM
Hi maclean, Thanks a lot. I found the hint to switch off the bend option in SAMS3D's chest tutorial. The information about JointX / JointZ / TwistY + any SmoothScale channels is very interesting to know. I always thought you need them to set the Joint parameters as origin for a body part. The thing with the order of the axis is also a valuable information. I already have CR2Edit 1.52 by John Stallings, but after removing the translate channels I get an additional offset. Doing it with an editor does not have this effect. Seems to be a bug, so I used notepad for further editing. I'm very happy about the progress of this project and with your help it's gettin' better and better. Hope I can finish it until the weekend to send it to the testers. Thanks neighbour ;-) - Walter
maclean posted Wed, 21 January 2004 at 2:20 PM
walter, I strongly reccommend you get cr2Editor 1.51. 1.52 has been known to CORRUPT cr2s and John himself says it is buggy. The JointX and smoothing channels are only required for human figures (or any figure which uses the bend option). They don't affect joint parameters. JPs depend on the Offset channels, which is why I said you should never delete the Offsets. Happy editing! mac
Tintifax posted Thu, 22 January 2004 at 8:46 AM
Thanks maclean, I have 1.51 now. That's better... OK, here are the actual results for the elements shown above... 1 *.obj with different groups and material zones (455kByte) 1 *.cr2 with one morph channel for the Claw Size and 5 customizable channels (stripped to 54kByte) 19 *.pz2 SET-Files to switch on/off body parts as you like (<1kByte each) 1 Delta.Inj/Rem pair for a morph to change the Claw Size (257kByte). Setting to -1.000 removes them. ToDo: MAT files, 3 more or less complex elements and 2 simple elements. Oh boy I learned a lot this time thanks to your help guys. I can only reward your efforts with a detailed tutorial about how I build this element (including texture mapping, grouping, *cr2 stripping, Injection files and so on). Maclean I owe you a special thank you. If you like this Claw Hall, you can have it for free. Just let me know. Thanks again, I'll keep you posted... - Walter
Tintifax posted Thu, 22 January 2004 at 10:30 AM
Hope you like it...
maclean posted Thu, 22 January 2004 at 2:24 PM
That looks great, walter. Very good indeed. And the total size is now about 20% of what it was. One thing to remember is that you (or the user) can save multiple cr2s in the library. So, if you open 8 figures and build something like the image above, you can parent all the figures to one main one and save it as a group. mac
maclean posted Thu, 22 January 2004 at 2:27 PM
PS One more thing. When building anything like this (columns), I always set the joint parameters so they're at the bottom of the column, (usually 0). This is so you can use the Y-scale to scale them from the floor UP, not from the middle UP and DOWN. The base of a column is always on the floor, so this makes more sense. mac
Tintifax posted Fri, 23 January 2004 at 8:30 AM
Yes, that's exactly what I did (setting the joint parameters to the floor in the middle of the column). Grouping is a good suggestion. Do you mean parenting with the Hierachy Editor? - Walter
maclean posted Fri, 23 January 2004 at 2:30 PM
By multiple groups, I mean saving more than one figure to the library. If you have 8 figures in poser and 7 of them are parented to 1 main figure, when you save the main figure, the other 7 will also save with it. So you can build a structure where everything is parented and save it as one file. The command is in Menu>Figure>Set Figure Parent mac
Tintifax posted Sat, 24 January 2004 at 3:51 AM
Good to know. Have to read the manual completely one day ;-) Thanks, for your valuable help you can get that base set for free, if you like - Walter
lesbentley posted Sat, 20 March 2004 at 10:06 PM
Attached Link: geominj.zip
Here are some files to demonstrate geometry injection as mentioned in post #7.Tintifax posted Sun, 21 March 2004 at 12:37 AM
Thanks les, I'll look into it. - Walter