Forum: Poser 13


Subject: Creating a viseme map for a different kind of 3rd party figure

chimera46 opened this issue on Nov 27, 2024 ยท 7 posts


chimera46 posted Wed, 27 November 2024 at 9:32 PM

Question for the gurus here: Is it possible to create a talk designer viseme map that calls on morphs placed elsewhere than the head?

I am looking to create a viseme map for the Project Evolution figure but having some trouble with it. Adjusting an existing viseme map (from LaFemme) by replacing relevant figure and morph names doesn't seem to be working. Also, some parts of the mouth seem to be controlled by a lower jaw bone (to open the mouth) or separate control chips around the lips. I am not sure how to call on these other body parts in the xml doc (I am a coding noob).

That said, even when I call upon existing head morphs there is only one (a smile morph) that seems to work with the talk designer.

I have managed to create some rough Phoneme face poses but to use them I am reduced to setting each pose syllable by syllable in the timeline.

Also, I am working off of Poser 12 viseme maps. I understand that in Poser 13 the talk designer system was changed somewhat? Is there a different kind of viseme map xml I should be using now?

I'd love to be able to save some time here and get the talk designer working with Project Evolution. Any help would be appreciated and I am willing to explore a paid commission if that's what it takes.

Thanks for your time.

The strong do as they can while the weak do as they must.


nerd posted Thu, 28 November 2024 at 2:37 AM Forum Moderator

If you have the last update for P12 you have the new Rhubarb talk engine. P13 has had it for the last several builds.

Talk designer can only control morphs in the head of the figure. You will need a phoneme morph for each of the Rhubarb visemes. There are 8 required morphs.

First here's the support site for the engine that Poser uses. https://github.com/DanielSWolf/rhubarb-lip-sync

The way Rhubarb names the visemes is suuuuuuper confusing. The shapes are named A-H ... BUT  ... "A" is the Mouth P shape. So A is P. B is Th. C is A is Eee. Only when you get to D do you finally find mouthA. Confused yet? I know I was. Fortunately their website has pictures for each of the shapes.

Also Rhubarb is only 8 visemes so it's way easier to setup the morphs. You don't need the 20 plus required for the old system.

The heart of your map file will look something like this:

    <Rhubarb phoneme="A" morph="MouthP" />
    <Rhubarb phoneme="B" morph="MouthTH" />
    <Rhubarb phoneme="C" morph="MouthE" />
    <Rhubarb phoneme="D" morph="MouthA" />
    <Rhubarb phoneme="E" morph="MouthO" />
    <Rhubarb phoneme="F" morph="MouthU" />
    <Rhubarb phoneme="G" morph="MouthF" />
    <Rhubarb phoneme="H" morph="TongueL" />
    <Rhubarb phoneme="X" morph="" />
"X" is the no morph resting state.

You can save your sanity by just using these same morph names as lHomme2 and just copying his VisemeMap XML

P.S. I got so confused by the goofy naming when making LH2 I had to add comments to his XML file to preserve my sanity. I believe they are still in the release version.


chimera46 posted Thu, 28 November 2024 at 12:03 PM

nerd posted at 2:37 AM Thu, 28 November 2024 - #4491701

If you have the last update for P12 you have the new Rhubarb talk engine. P13 has had it for the last several builds.

Talk designer can only control morphs in the head of the figure. You will need a phoneme morph for each of the Rhubarb visemes. There are 8 required morphs.

First here's the support site for the engine that Poser uses. https://github.com/DanielSWolf/rhubarb-lip-sync

The way Rhubarb names the visemes is suuuuuuper confusing. The shapes are named A-H ... BUT  ... "A" is the Mouth P shape. So A is P. B is Th. C is A is Eee. Only when you get to D do you finally find mouthA. Confused yet? I know I was. Fortunately their website has pictures for each of the shapes.

Also Rhubarb is only 8 visemes so it's way easier to setup the morphs. You don't need the 20 plus required for the old system.

The heart of your map file will look something like this:

    <Rhubarb phoneme="A" morph="MouthP" />
    <Rhubarb phoneme="B" morph="MouthTH" />
    <Rhubarb phoneme="C" morph="MouthE" />
    <Rhubarb phoneme="D" morph="MouthA" />
    <Rhubarb phoneme="E" morph="MouthO" />
    <Rhubarb phoneme="F" morph="MouthU" />
    <Rhubarb phoneme="G" morph="MouthF" />
    <Rhubarb phoneme="H" morph="TongueL" />
    <Rhubarb phoneme="X" morph="" />
"X" is the no morph resting state.

You can save your sanity by just using these same morph names as lHomme2 and just copying his VisemeMap XML

P.S. I got so confused by the goofy naming when making LH2 I had to add comments to his XML file to preserve my sanity. I believe they are still in the release version.


Thanks for this I appreciate it and I will give it a shot. I spent the better part of 4 hours last night keyframing about a minute of dialogue syllable by syllable. So, automating that would be a help.

I recall under the older system there was a specific kind of morph that you needed (something about how the morph was created) for it to work in the talk designer. Is that still the case under the new system?

The strong do as they can while the weak do as they must.


nerd posted Thu, 28 November 2024 at 2:34 PM Forum Moderator

Yes it must be a morph. It has to be a targetGeom, not a valueParm or a rotation. ValueParm is a master dial that runs other morphs but isn't it's self a morph.


chimera46 posted Sat, 30 November 2024 at 4:31 PM

nerd posted at 2:34 PM Thu, 28 November 2024 - #4491714

Yes it must be a morph. It has to be a targetGeom, not a valueParm or a rotation. ValueParm is a master dial that runs other morphs but isn't it's self a morph.

Hmm, that's probably where I am getting messed up, as it seems many of the dials that run the mouth movement morphs aren't actually on the head.

So, what if I attempt a workaround by creating a morph on the head with the morphing tool and then using that to run the mouth movement off the head by training dependencies or whatever it is??

The strong do as they can while the weak do as they must.


nerd posted Sat, 30 November 2024 at 5:07 PM Forum Moderator

 Yes creating a morph and then adding dependencies to add on jaw rotations to the morph will work. If you need help setting up dependencies let me know.


chimera46 posted Wed, 04 December 2024 at 12:49 PM

nerd posted at 5:07 PM Sat, 30 November 2024 - #4491779

 Yes creating a morph and then adding dependencies to add on jaw rotations to the morph will work. If you need help setting up dependencies let me know.

Thanks I appreciate it! I looked up the help stuff/tutorials on dependencies and figured it out, made some morphs, injections and revised the viseme map. The result is a (mostly) workable viseme map for Project Evolution. The automated eye movement may work, or may not, or may crash poser to the desktop. That said, for my purposes it will work. You can see the results here:

https://mega.nz/file/tfw2kBJB#wUCWT5ZQYr_oGS0UwBjk5XEkMoONWGLf2jCCB8_Oq7A

Thanks for all your advice by the way, it helped to get me over the hump and this will certainly save me time going forward.

I should note: I made both an old style viseme map based on LaFemme and a newer Rhubarb one based on LaHomme. I think I'll stick with the older one as it has room for more phonemes. Rhubarb only has 8 or so and seems better suited for say, more cartoony figures.

The strong do as they can while the weak do as they must.