vilian opened this issue on Mar 06, 2006 ยท 36 posts
lesbentley posted Mon, 27 March 2006 at 3:22 PM
Nerd,
I don't have the original Koroko figure, but I am quite confident that I know what has changed. We can see from Vilian's post #21 that in the slaving code is:
valueOpDeltaAdd
Figure 2
BODY:2
PBM-Ball
deltaAddDelta 1.000000
Note the "Figure 2" and "BODY:2". It's a good bet that the actor number throughout the whole file is also ":2". Resaving Koroko to a pallet when it was the only figure in the scene reset all these numbers to "1".
It seems (admitidly at first sight, and without a thourough investigation) that you will get this crosstalk problem either with a Rob The Whiz type NULL Figure, or a Nerd type Shield Figure, when the actor number (:#) in the character cr2 you are loading is not ":1"!
I did the following experiment. Created a figure with an actor number of ":4". Made an FBM where the slaving code was:
valueOpDeltaAdd<br></br> Figure 4<br></br> BODY:4<br></br> FBM-01<br></br> deltaAddDelta 1.000000
Loaded NULL > character > NULL > character > NULL > character. Saved a pz3.
On examining the pz3:
In the first character (actor number :2), the slaving code was correct. In the second character (actor number :4) the slaving code pointed to ":2". In the third character (actor number :6) the slaving pointed to ":4". Make of this what you will. The only thing I can say for certain at the moment is that the second and third characters are crosstalking, and that the NULL did not do it's job. When the character cr2 is edited to use ":1" and "Figure 1" throuhgout' the NULL works fine and I can load as many instances of the character as I like without crosstalk.
From the above experiment, it looks to me like there is a serious limitation in the NULL/Shield approach to preventing crosstalk. I am looking for a solution, but fear I may be on a wilde goose chase, or that the solution may be so complex as to impractical.
Add to all this the complication that if you load three instances of posette and resave the third instance to a pallet the actor number will be ":3", but the slaving code will still point to "Figure 1" and "BODY:1".
There does seem to one almost bullit proofe solution to crosstalk. Inject the slaving code after the character is loaded, in the format:
valueOpDeltaAdd<br></br> _NO_FIG_<br></br> BODY<br></br> Morph<br></br> deltaAddDelta 1.000000
However there are some drawbacks to this method, loading the character becomes a two step process, load the cr2 then the pz2, even if you only want one instance of the character in the scene, another drawback is that the character must be created (or edited) with this in mind, yet another is the extra work in implimenting this, and a final one is that if you save this character back to a pallet from the Poser interface you are back to square one.
Of course all this only relates to P4/PP, in P5 and up the crosstalk problem seems to be solved.