Lip Sync



  • Trying to create lip sync for my Victoria 4 and Michael 4 characters. The talk designers requires an XML file for the figure. Where would I get an viseme map XML file for my V4 and M4 characters?



  • Save this as "Victoria4VisemeMap.xml" in your Runtime:LipSync folder:

    <?xml version="1.0"?>
    <VisemesMap figureName="Victoria 4" version="1.0" language="English" subLanguage="US">
        <Head internalName="head" />
        <LeftEye internalName="lEye" />
        <RightEye internalName="rEye" />
        <Viseme phoneme="c" morph="VSM_K" />
        <Viseme phoneme="a" morph="VSM_EH" />
        <Viseme phoneme="^" morph="VSM_AA" />
        <Viseme phoneme="C" morph="VSM_K" />
        <Viseme phoneme="W" morph="VSM_W" />
        <Viseme phoneme="!" morph="VSM_AA" />
        <Viseme phoneme="I" morph="VSM_EH" />
        <Viseme phoneme="b" morph="VSM_M" />
        <Viseme phoneme="J" morph="VSM_TH" />
        <Viseme phoneme="d" morph="VSM_TH" />
        <Viseme phoneme="D" morph="VSM_TH" />
        <Viseme phoneme="e" morph="VSM_IY" />
        <Viseme phoneme="r" morph="VSM_ER" />
        <Viseme phoneme="A" morph="VSM_IY" />
        <Viseme phoneme="F" morph="VSM_F" />
        <Viseme phoneme="G" morph="VSM_K" />
        <Viseme phoneme="H" morph="VSM_TH" />
        <Viseme phoneme="i" morph="VSM_IH" />
        <Viseme phoneme="E" morph="VSM_IY" />
        <Viseme phoneme="j" morph="VSM_TH" />
        <Viseme phoneme="k" morph="VSM_K" />
        <Viseme phoneme="l" morph="VSM_K" />
        <Viseme phoneme="m" morph="VSM_M" />
        <Viseme phoneme="n" morph="VSM_K" />
        <Viseme phoneme="N" morph="VSM_L" />
        <Viseme phoneme="O" morph="VSM_OW" />
        <Viseme phoneme="o" morph="VSM_OW" />
        <Viseme phoneme="p" morph="VSM_M" />
        <Viseme phoneme="R" morph="VSM_L" />
        <Viseme phoneme="s" morph="VSM_S"  />
        <Viseme phoneme="S" morph="VSM_S" />
        <Viseme phoneme="t" morph="VSM_T" />
        <Viseme phoneme="T" morph="VSM_T" />
        <Viseme phoneme="u" morph="VSM_UW" />
        <Viseme phoneme="U" morph="VSM_UW" />
        <Viseme phoneme="v" morph="VSM_F" />
        <Viseme phoneme="w" morph="VSM_W" /> 
        <Viseme phoneme="y" morph="VSM_K" />
        <Viseme phoneme="z" morph="VSM_TH" />
        <Viseme phoneme="Z" morph="VSM_TH" />
        <Viseme phoneme="X" morph="VSM_L" />
        
        <Interpolation  spline="1" dropOffTime="0.16" />
        <Blink  morph="PHMEyesOpen-Close" openValue="0.0" closeValue="-0.5" closingTime="0.167" closedTime="0.034" openingTime="0.134" />
        <HeadBendParm  parmName="Bend" maxValue="-0.5" minValue="1.0" energyThreshold="7" minimumInterval="0.12"/>
        <HeadSideParm  parmName="Side-Side" maxValue="-0.3" minValue="0.3" interval="0.07" />
        <EyeSideParm  parmName="Side-Side" maxValue="5.0" minValue="-1.0" forerun="0.1" minimumInterval="0.8" toSideTime="0.1" staySideTime="0.7" backToNeutralTime="0.1"/>
        <EyeUpDownParm  parmName="Up-Down" maxValue="5.0" minValue="-5.0" forerun="0.01" />
        <EyebrowParm  morph="BrowUp-Down" maxValue="0.4" minValue="-0.2" />
    
        <Emotion name="Anger" file=":Runtime:LipSync:Face:Victoria 4:Victoria Anger.fc2"/>
        <Emotion name="Disgust" file=":Runtime:LipSync:Face:Victoria 4:Victoria Disgust.fc2"/>
        <Emotion name="Fear" file=":Runtime:LipSync:Face:Victoria 4:Victoria Fear.fc2"/>
        <Emotion name="Joy" file=":Runtime:LipSync:Face:Victoria 4:Victoria Joy.fc2"/>
        <Emotion name="Sadness" file=":Runtime:Lipsync:Face:Victoria 4:Victoria Sad.fc2"/>
        <Emotion name="Surprise" file=":Runtime:LipSync:Face:Victoria 4:Victoria Surprised.fc2"/>
    </VisemesMap>
    

    The data is derived from one of the other bundled Poser figures and modified to suit V4's standard Visemes. I'm sorry, I haven't done one for M4, but it should be relatively easy to derive it from the V4 one.

    There are some additional referenced face pose files which you can see from the XML live in :Runtime:LipSync:Face:Victoria 4:.
    Just create that folder and place this file in it, called "Victoria Surprised.fc2", containing:

    {
    version
    	{
    	number 11
    	build 33735
    	}
    	{
    	// This file consists of a partial expression pose for the channnels of the 'head' actor, for the 'ps_pe070_DAZ' product
    	}
    
    actor head:1
    	{
    	channels
    		{
    		targetGeom PHMHappy
    			{
    			keys
    				{
    				k  0  0
    				}
    			}
    		targetGeom PHMSad
    			{
    			keys
    				{
    				k  0  0
    				}
    			}
    		targetGeom PHMAfraid
    			{
    			keys
    				{
    				k  0  0
    				}
    			}
    		targetGeom PHMDisgusted
    			{
    			keys
    				{
    				k  0  0
    				}
    			}
    		targetGeom PHMAngry
    			{
    			keys
    				{
    				k  0  0
    				}
    			}
    		targetGeom PHMSurprised
    			{
    			keys
    				{
    				k  0  1
    				}
    			}
    		}
    	}
    }
    

    The other files are named as shown in the XML, and simply have a 1, instead of a 0 at the relevantly named targetGeom keyframe. All other parameters should be zero, and only one has a 1 in each file.

    I believe this information and the process to generate files for any new character was discussed on one of the forums many, many years ago, so I can't remember if it was Renderosity or RuntimeDNA.

    Let us know if you have success with M4, as others might wish to get him talking, too. :-)



  • It was RDNA. I posted files for M4, V4, Dawn, and a few others along with the method of making them for anyone. Did the same as you using Alyson as the file structure. I posted a tutorial on how to make anything talk in Poser back in the PP2010 days there. The files structure is pretty self explanatory.