Tue, Feb 4, 1:48 PM CST

Renderosity Forums / Poser Technical



Welcome to the Poser Technical Forum

Forum Moderators: Staff

Poser Technical F.A.Q (Last Updated: 2024 Dec 04 2:47 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.



Checkout the Renderosity MarketPlace - Your source for digital art content!



Subject: Siamese Twin Figures... weird idea...


_dodger ( ) posted Mon, 20 January 2003 at 6:51 AM · edited Wed, 27 November 2024 at 8:22 PM

Has anyone ever tried making a CR2 with two figures sharing one or more of the same actors and welded together to see what it does? For instance:

actor BODY:1 {
...
}
actor BODY:2 {
...
}
actor hip:1 {
...
}
actor neck:1 {
...
}
actor neck:2 {
...
}
actor head:1 {
...
}
actor head:2 {
...
}
actor abdomen:1 {
...
}
actor chest:1 {
...
}
actor lCollar:1 {
...
}
actor rCollar:2 {
...
}

figure lTwin
  {
  name leftTwin
  ...
  rootActor BODY:1
  addChild hip:1
         BODY:1
  addChild abdomen:1
         hip:1
  addChild chest:1
         abdomen:1
  addChild lCollar:1
         chest:1
  addChild neck:1
         chest:1
  addChild head:1
         neck:1
  ...
  weld abdomen:1
         hip:1
  weld chest:1
         abdomen:1
  weld lCollar:1
         chest:1
  weld neck:1
         chest:1
  weld neck:2
         chest:1
  weld head:1
         neck:1
  weld rCollar:2
         chest:1
  ...
}

figure rTwin
  {
  name rightTwin
  ...
  rootActor BODY:2
  addChild hip:1
         BODY:2
  addChild abdomen:1
         hip:1
  addChild chest:1
         abdomen:1
  addChild rCollar:2
         chest:1
  addChild neck:2
         chest:1
  addChild head:2
         neck:2
  ...
  weld head:2
         neck:2
}


hogwarden ( ) posted Tue, 21 January 2003 at 10:48 AM

_dodger, you're bonkers... ... have you tried it?!?!?


_dodger ( ) posted Tue, 21 January 2003 at 11:18 AM

NO, not yet. It's on my list of weird things to try. Right now I'm working on a Perl language module for parsing and manipulating Poser files. I thought of this whilst working on that and analysing Poser file syntax. Essentially, every element object in Poser 4 (a prop, actor, light, or camera) is built on the global level with a reference identifier optional. Thus you declare an object and read in geometry first (the figureResFile acts as a switch from what I can tell -- it's on the MAIN level as well). This geometry comes from one of four places: a geomResource, a geomCustom, an objFile, or, finally, the group from the current figureResFile who's name matches that of the group name defined in the setGeomHandler statement. This is why the actors and props and all appear first and then again, even if it's only a blank declaration like with cameras. Then once all the elements are declared the channels are set up and the heirarchy built. The heirarchy is built by defining objects parents (which is why you have to declare everything first). Once all the channels for a given figure's elements are defined, then you can go into figure mode and start defining something as a figure rather than simply a heirarchy-linked element. It's here you define th welds, too, and that you define materials for figures (though I get the impression you could define element materials with a useCustomGeom in the actor itself just as well). The doc block comes after all figures are finished and lets you add in all the lights, cameras, and props. Well, following this, as long as the actors are defined first, it should be possibly to define figures using those actors, possibly even more than once, but anyway regardless of :# identfier. At first I thought the :# identifier was necessary to make the actor part fo a figure, but I don't think so now.


zukeprime ( ) posted Tue, 21 January 2003 at 3:03 PM

Dodger...after reading your post, I figured out another way to do it, though it would only be the head and neck area. Basically, this works the same way as the multi-arm figures you can build in Poser without having to modify the geometry. Basically it would go like this: First Section of the CR2: actor BODY:7 { } actor hip:7 { storageOffset 0 0 0 geomHandlerGeom 13 hip } actor abdomen:7 { storageOffset 0 0 0 geomHandlerGeom 13 abdomen } actor chest:7 { storageOffset 0 0 0 geomHandlerGeom 13 chest } actor neck:7 { storageOffset 0 0 0 geomHandlerGeom 13 neck } actor upNeck:7 { storageOffset 0 0 0 geomHandlerGeom 13 upNeck } actor head:7 { storageOffset 0 0 0 geomHandlerGeom 13 head } actor neck2:7 { storageOffset 0 0 0 geomHandlerGeom 13 neck } actor upNeck2:7 { storageOffset 0 0 0 geomHandlerGeom 13 upNeck } actor head2:7 { storageOffset 0 0 0 geomHandlerGeom 13 head } actor leftEye:7 { storageOffset 0 0 0 geomHandlerGeom 13 leftEye } actor rightEye:7 { storageOffset 0 0 0 geomHandlerGeom 13 rightEye } actor leftEye2:7 { storageOffset 0 0 0 geomHandlerGeom 13 leftEye } actor rightEye2:7 { storageOffset 0 0 0 geomHandlerGeom 13 rightEye } . . . 2nd Section (the main body of the CR2) The main body of the CR2 would be here. All references to neck, upperneck, Head, leftEye, and rightEye would have to be copied and duplicated into the CR2 with appropriate name changes (i.e. neck2, upperneck2, head2, etc...) . . . addChild hip:7 BODY:7 addChild abdomen:7 hip:7 addChild chest:7 abdomen:7 addChild neck:7 chest:7 addChild upNeck:7 neck:7 addChild head:7 upNeck:7 addChild leftEye:7 head:7 addChild rightEye:7 head:7 . . . 3rd Section (the 'figure' section of the CR2) weld abdomen:7 hip:7 weld chest:7 abdomen:7 weld neck:7 chest:7 weld upNeck:7 neck:7 weld head:7 upNeck:7 weld leftEye:7 head:7 weld rightEye:7 head:7 weld neck2:7 chest:7 weld upNeck2:7 neck2:7 weld head2:7 upNeck2:7 weld leftEye2:7 head2:7 weld rightEye2:7 head2:7 ******************************************* The key is that the 2nd head elements have to place a call to the original .obj file in the first part of the CR2. Note that: actor head2:7 { storageOffset 0 0 0 geomHandlerGeom 13 head } places a call to element 'head' I attempted to build this and render a 2-headed Vicky, but CR2 Editor choked on the head part of the CR2. I guess all those morphs for facial features was more than it could handle unfortunately.

 


_dodger ( ) posted Wed, 22 January 2003 at 10:30 AM

Ahh, yeap, but the thing I was going for was not so much the building of a two-headed character bu just an illustration of the concept of siamesing the actors together... was more of a technical study of concept than anything. a poser file, in order: 1) reads in geometry from whatever source and declares elements 2) assigns those elements channels 3) builds figures using existing elements anything that is parented at the time of figure building that is not declared in a figure block is thus trated like a prop the :# naming scheme is used by Poser to allow the same definition file to change the name on load to a new number to allow multiple figures withthe same body parta to be loaded. the _# sceme for props does the same thing. It seems odd that they took two seperate approaches to this. I was more interested in getting expirimentation with how one goes about building figures and what elements one uses to do so. The goal was more to stimulate siamesing the figure blocks themselves than to build an actual siamese twin or two-headed figure.


zukeprime ( ) posted Wed, 22 January 2003 at 7:36 PM

Ahh...I see. Sorry dodger, I totally misunderstood your intent here. I'll examine your concept a little more carefully, the idea is interesting.

 


Privacy Notice

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.