Nance opened this issue on Jul 01, 2004 ยท 17 posts
Nance posted Thu, 01 July 2004 at 1:27 PM
Help! -- I need a refresher course on Morph Channel Crosstalk.
(& please do clue me in if Ive made any mistaken assumptions here.)
My problem arises from morph channel crosstalk when using multiple characters that were created by using Full Body Morphs.
While using the various Null characters will eliminate the crosstalk, however this also disables all the FBMs in the second character (or, have I already made some error in this regard?).
So, to be able to use two such characters in a scene, I assume I must convert some characters FBMs back to individual MTs , but really not looking forward to taking on the zillion of individual dial changes this would require.
So, with all the experimenting with this phenomenon, have I overlooked or forgotten some easier method of accomplishing this type of reversion?
Or, was there altogether some other way to eliminate all the crosstalk while retaining the FBMs in the second character (like renaming a second base geometry .obj, or editing the .CR2 to rename the FBM channels, or some such?)
(re: P4 w/ V2)
Migal posted Thu, 01 July 2004 at 2:20 PM
It should work. Put a null character in the scene. Select the null character. Put V2 in the scene. Select V2. Put a second null character in the scene. Select the second null character. Put a second V2 in the scene. The V2s should have functional BODY dials and not crosstalk.
lesbentley posted Thu, 01 July 2004 at 3:23 PM
What Migal says is right, however:
If you wnant to Remove the ERC slaving (the bit that suffers from crosstalk) from a cr2, it's easy if you have a good text editor that can search and replace blocks of text (I use EditPad Lite).
Open the cr2(s) in a text editor.
Search for the string "valueOpDeltaAdd" this will find the first slaved channel, the slaving code that you want to remove will consist of 5 lines, it will look something like this:
valueOpDeltaAdd<br></br> Figure 2<br></br> BODY:2<br></br><br></br> deltaAddDelta 1.000000
The part in red is the name of the master FBM channel.
Select the whole 5 lines of slaving code as a Search string and have nothing as a Replace string, execute the search and repalce.
Repeat steps 1 through 3. You will have to do this as many times as there are master channels in the cr2.
There may be an easier way, though I haven't tested it. Open the cr2(s) in a text editor. Set the search string to "valueParm " (note the space at the end), set the replace string to "valueParm X", execute the search and replace. renaming the master channels should mean that the slaves can't find any channel to talk to, hence on crosstalk.
With this last method it would also be easy to turn the FBMs back on, just use a search string of "valueParm X", and a replace string of "valueParm ". Message edited on: 07/01/2004 15:28
Message edited on: 07/01/2004 15:33
Message edited on: 07/01/2004 15:38
Nance posted Thu, 01 July 2004 at 6:55 PM
Sheesh! Kick me back into a nubie forum!
Thanks for the step-by-step Migal. Helped me to spot that I had been trying to use the nulls without adding one prior to the first character load. I just been adding them before the subsequent character loads. That seems to have been the only problem as they are working as advertised now. DOOH!
And thanks for the info on temporarily killing/hiding the ERC calls Les. From what you said, it sounds like the values for the original individual dial settings are in the CR2 and could be used to reverse engineer an FBM back to the individual dials... yes?
(btw - DL'd your new ERC light set and looking forward to seeing what you've done there -- thanks!)
nomuse posted Fri, 02 July 2004 at 2:37 AM
Yah...all the body part dials are always there, regardless of whether an FBM is involved. All the FBM does is add a master dial that turns all the little individual dials for you.
lesbentley posted Fri, 02 July 2004 at 4:05 PM
Nomuse said it all. An FBM has two parts, a master channel that will affect any channels that are pointed towards it, and slaving code in the individual channels that point them to the master. Any channel can be a master, and any channel can be a slave, but the master must be no more than one step below the slave in the hierachie, other wise youn must use cascading ERC to link them.
shadownet posted Fri, 02 July 2004 at 4:28 PM
I have not full tested this method, but the few times I have tried it in Poser files to "deactive" ERC seems to have worked - with out apparant cross talk. Change the following line (as seen in Les example above) deltaAddDelta 1.000000 to deltaAddDelta 0.000000 Not saying this is the best way over those ways already mentioned. Merely tossing it out as a "potentail" option that seems to have worked on occasion for me.
lesbentley posted Sat, 03 July 2004 at 5:14 AM
I like shadownet's method, you could do a search and replace of "deltaAddDelta 1.000000" with "deltaAddDelta 0.000000" in the cr2, this method would fail if any of the deltaAddDelta lines contained a string other than "1.000000". However the really nice thing about shadownet's method it that it would be very easy to to create a pose file to apply it. If you used a pose file then it would not matter what value the deltaAddDelta lines in the cr2 had. Another point to note would be that this method would also catch things like joint controled morphs and joint controled joints (my method of renaming the valueParm channels would not). Here is one method to create the pose file. Start with all the morphs in the cr2 zeroed, then zero the figure in the joint editor. Save a pose including morphs. Open the resulting pz2 in a text editor capable of searching and replacing blocks of text. Set the search string to;
keys
{
k 0 0
}
and the replace string to; deltaAddDelta 0.000000
Execute a replace all. Check the BODY, hip, and specialy the feet (the only ones likly to have none zero key values), for any translate channels that have not been caught by the replace, if found delete them. Resave the pz2. The resulting pz2 would contain a lot of useless data, as every rotate and translate channel would contain a "deltaAddDelta 0.000000" statement, but this would do no harm, and a cr2 saved back to the pallet only contain these statements in channels that actually contained ERC slaving. The beauty of all this is that you would not need to maintain two versions of of the cr2, one with and one without slaving.
shadownet posted Sat, 03 July 2004 at 8:01 AM
As Les points out, yes this can be done using a Pose file. That is what I meant to say above where I wrote "I have tried it in my Poser files". LOL! One of the few times a typo made some sense. Using a pose file you can activate or deactive the channel as desire. Again, I still have not fully tested the method but it does appear to work - and makes I guess should since with the deltaAddDelta at zero cross talk actually is still there it is just ignores the 0.000000 values So, if anyone does find a prob doing it like this, please let us know. :O)
lesbentley posted Sun, 04 July 2004 at 8:27 AM
Well actually there is one situation where it would fail, not all ERC slaving uses a deltaAddDelta line. There are some special types of slaving that use things like "valueOpMinus" and "valueOpTimes" etc, these do not use a deltaAddDelta statement, but you are unlikly to run into them in normal circumstances. VK, has a thread about them somewhere in the Poser Technical Forum.
A more serious problem for the method is if you want to restor the ERC functionallity. I had a look in the Victoria2 cr2, and some of the deltaAddDelta lines have diffrent values, they are not all "1.000000", so to make a restore pose could be quite a lot of work extracting all the values and puting them into a pz2, but for anyone willing to do that work this seems like the ideal method for turning ERC off and on. In any case if someone wants to turn ERC off in a document it is unlikly they would change their mind and want to turn it back on again in the same document, so a pose to turn ERC off should be all that's required in most cases, and that's easy to make.
I have attached the text of a no ERC pz2, for the standard Victoria2, to this post for anyone who wants to try it.
Message edited on: 07/04/2004 08:35
shadownet posted Sun, 04 July 2004 at 10:27 AM
Hi Les, thanks for the info and the follow up work you did on this. It will be very useful I am sure. I came up with the method mainly because I wanted to set up a master dail in the head for V3 so that I could control both eyes. That was easy enough to do making an injection pose to load the ERC lines needed in V3 head. I then found where it might be good to be able to deactivate the ERC (for the master eye dials I had added) if cross talk became an issue in some scene. Thus I tried and found it worked to zero the deltaAddDelta line. It was also the easier line to edit via a pose file. Making a figure wide pose file to deactive the deltaAddDelta channels as you point out should be easy, since these need only be zeroed. To reactivate them. Hmm, I am wondering if maybe just loading the original Cr2 as a stripped down pose file as being the easiest method, since those default settings are already there anyhow. Depending on how much time you are willing to spend making the pose, the more unneeded stuff you can strip out, will determine the amount of work needed to make the pose. Ideally, you would want to keep only those deltaAddDelta lines, and get rid of the rest but that is not absolutely necessary to get the file that clean. And, since you are going to have to make the deactivate pose file anyhow, with those lines in it, why not start by making the "reactive" pose file first and keeping the default settings as you strip down the cr2. Then zero out the lines to make the "deactive" pose file from it. It would be a bit of work, but I generally make most my pose files that way anyhow - starting with a cr2 and stripping it down using Cr2Builder and/or Morphmanger to cull most the stuff not needed fairly quickly, and then tyding up the rest in Edit pad Lite. I would also like to say that I would be totally clueless about such niffty things as this, if it had not been for people like you, Ockham, and so many others who have spent so much of their own time sharing these little findings with others. Big thanks.
shadownet posted Sun, 04 July 2004 at 10:30 AM
Oh, on those other instances of ERC you mentioned, is this how the hands grasp and spread dials work? I have looked at that and as yet have not figure out how the fingers are linked to the grasp and spread dials. Either I overlooked the standard ERC set up or else somethings else is being done - perhaps interally in Poser. Just wondering.
nomuse posted Sun, 04 July 2004 at 1:55 PM
Yes...the hand grasp is a sort of "hard-wired ERC" built into the Poser application. If you have correctly named finger parts, and a dial named "grasp," it will function automatically.
shadownet posted Sun, 04 July 2004 at 2:09 PM
Thanks nomuse.
lesbentley posted Wed, 07 July 2004 at 5:11 PM
Interesting bit of trivia. If you put a Grasp channel in the BODY actor (or probably any central actor) it will make both hands grasp at once.
lesbentley posted Wed, 07 July 2004 at 7:15 PM
Attached Link: Tip. Move both eyes at once, NO CROSSTALK!
Oh yes, another interesting bit of trivia. Moving both eyes at once WITHOUT CROSSTALK! I thought this should be shared with a wider audence than is likely to visit this thread, so I posted it as a tip in the Poser Technical Forum.shadownet posted Wed, 07 July 2004 at 7:38 PM
Hi Les, thanks for sharing this. I will definitely play around with it. Also, kudos to bloodsong (where ever she may be these days) for hitting on this. Hi blood, you be missed!