Chris Pollett >
Students > [Bio] [Del1] [Del2] [Del3] |
Michelle Yuan-- Mark up languageFEGML DTD: <!-- ############################################################### # Facial emotion and gusture avator DTD, # # Usage: <!DOCTYPE FEGML SYSTEM FEGML.dtd> # # FileName: FEGML.dtd # # Students: Jing Yuan # # Date: 03/21/2002 HW#3 # ############################################################### --> <!-- **** -- Some ENTITIES for an abstracter view -- **** New facialAnimation, facialEmotion, and Guesture elements are added here and specified below. All actions have duration, intensity, and wait attribute. --> <!-- ************************************************************************************ **** ----- Elements in facialAnimation ----- * * <look-left> <look-right> <look-up> <look-down> * * Turns both the eyes and head to look left, right, up, and down. * * * **** <eyes-left> <eyes-right> <eyes-up> <eyes-down> * * The eyes trun left, right, up, and down while the head remains in its position. * * * **** <head-right> <head-left> <head-up> <head-down> * * Head trun right, left, up, and down while eyes remain in its position. * * * * * **** <head-roll-right> <head-roll-left> * * Head rolls to the left or right in the axial plane for adding * * realism to the player such as agree or disagree with head movements. * * * **** <eyebrow-up> <eyebrow-down> * * Vertical movement upwards with the whole eyebrow. * * * **** <eye-blink> * * Animates a blink with both eyes. Both the upper and lower eyelids are affected. * * The intensity value specifies how much of the eyes that should be closed. * * * **** <wink> * * Animates a wink of one eye. * * * **** <open-jaw> <close-jaw> * * Opens or closes the jaw on a Virtual Human. * ************************************************************************************ --> <!ENTITY % facialAnimation "look-left | look-right | look-up |look-down | eyes-left | eyes-right |eyes-up | eyes-down | head-left | head-right |head-up | head-down | head-roll-right | head-roll-left |eyebrow-up | eyebrow-down | eye-blink | wink | open-jaw | close-jaw" > <!-- ************************************************************************ **** --> Elements in facialEmotion <-- **** **** <afraid> <angry> <confused> <dazed> <disgusted> **** **** <happy> <neutral> <sad> <surprised> <default-emotion> **** ************************************************************************ --> <!ENTITY % facialEmotion "afraid | angry | confused | dazed | disgusted | happy | neutral | sad | surprised | default-emotion" > <!-- ************************************************************************ **** --> Elements in Guesture <-- **** **** <agree> <disagree> <concentrate> <emphasis> <smile> **** **** <sigh> <shrug>: Mimics the facial "I don't know". **** ************************************************************************ --> <!ENTITY % guesture "agree | disagree | concentrate | emphasis | sigh | smile | shrug" > <!-- **** Define attributes *** --> <!ENTITY % emotionAttributes "duration %secs-or-msecs; #IMPLIED intensity %intensityvalue; 'medium' wait %secs-or-msecs; #IMPLIED" > <!ENTITY % facialAnimationAttributes "%emotionAttributes;"> <!ENTITY % gustureAttributes "%emotionAttributes;"> <!ENTITY % inlines "( %facialAnimation | %facialEmotion | %gusture; )*"> <!-- **** Define variable **** --> <!ENTITY % intensityvalue "CDATA"> <!ENTITY % secs-or-msecs "CDATA" > <!-- **************************************** * Element in FEGML * **************************************** --> <!-- Root element can only occur once. --> <!ELEMENT FEGML (game)+ > <!ATTLIST FEGL xml:lang NMTOKEN #IMPLIED> > <!-- **************************************** * Element in game * **************************************** --> <!ELEMENT game (player, player)+ > <!-- attributes of game may add later as needed --> <!ATTLIST game > <!-- **************************************** * Element of player * **************************************** --> <!ELEMENT player %inlines; > <!ATTLIST player name CDATA #REQUIRED position CDATA #REQUIRED %emotionAttributes > <!-- **************************************** * Element in facialAnimation * **************************************** --> <!ELEMENT look-left %inlines; > <!ATTLIST look-left %facialAnimationAttributes; > <!ELEMENT look-right %inlines;> <!ATTLIST look-right %facialAnimationAttributes; > <!ELEMENT look-up %inlines;> <!ATTLIST look-up %facialAnimationAttributes; > <!ELEMENT look-down %inlines;> <!ATTLIST look-down %facialAnimationAttributes; > <!ELEMENT eyes-left %inlines;> <!ATTLIST eyes-left %facialAnimationAttributes; > <!ELEMENT eyes-right %inlines;> <!ATTLIST eyes-right %facialAnimationAttributes; > <!ELEMENT eyes-up %inlines;> <!ATTLIST eyes-up %facialAnimationAttributes; > <!ELEMENT eyes-down %inlines;> <!ATTLIST eyes-down %facialAnimationAttributes; > <!ELEMENT head-right %inlines;> <!ATTLIST head-right %facialAnimationAttributes; > <!ELEMENT head-left %inlines;> <!ATTLIST head-left %facialAnimationAttributes; > <!ELEMENT head-up %inlines;> <!ATTLIST head-up %facialAnimationAttributes; > <!ELEMENT head-down %inlines;> <!ATTLIST head-down d %facialAnimationAttributes; > <!ELEMENT head-roll-right %inlines;> <!ATTLIST head-roll-right %facialAnimationAttributes; > <!ELEMENT head-roll-left %inlines;> <!ATTLIST head-roll-left %facialAnimationAttributes; > <!ELEMENT eyebrow-up %inlines;> <!ATTLIST eyebrow-up %facialAnimationAttributes; which (both | left | right) 'both' > <!ELEMENT eyebrow-down %inlines;> <!ATTLIST eyebrow-down %facialAnimationAttributes; which (both | left | right) 'both' > <!ELEMENT eye-blink %inlines;> <!ATTLIST eye-blink %facialAnimationAttributes; repeat %integer; '1' > <!ELEMENT wink %inlines;> <!ATTLIST wink %facialAnimationAttributes; which (both | left | right) 'both' repeat %integer; '1' > <!ELEMENT open-jaw %inlines;> <!ATTLIST open-jaw %facialAnimationAttributes; > <!ELEMENT close-jaw %inlines;> <!ATTLIST close-jaw %facialAnimationAttributes; > <!-- **************************************** * Element in gusture * **************************************** --> <!ELEMENT agree %inlines; > <!ATTLIST agree %gustureAttributes; repeat %integer; '1'> <!ELEMENT disagree %inlines; > <!ATTLIST disagree %gustureAttributes; repeat %integer; '1'> <!ELEMENT concentrate %inlines; > <!ATTLIST concentrate %gustureAttributes; > <!ELEMENT emphasis %inlines; > <!ATTLIST emphasis %gustureAttributes; > <!ELEMENT sigh %inlines; > <!ATTLIST sigh %gustureAttributes; > <!ELEMENT smile %inlines; > <!ATTLIST smile %gustureAttributes; > <!ELEMENT shrug %inlines; > <!ATTLIST shrug %gustureAttributes; repeat %integer; '1'> <!-- **************************************** * Element in emotion * **************************************** --> <!ELEMENT afraid %inlines; > <!ATTLIST afraid %emotionAttributes; > <!ELEMENT angry %inlines; > <!ATTLIST angry %emotionAttributes; > <!ELEMENT confused %inlines; > <!ATTLIST confused %emotion-attributes; > <!ELEMENT dazed %inlines; > <!ATTLIST dazed %emotionAttributes; > <!ELEMENT disgusted %inlines; > <!ATTLIST disgusted %emotionAttributes; > <!ELEMENT happy %inlines; > <!ATTLIST happy %emotionAttributes; > <!ELEMENT neutral %inlines; > <!ATTLIST neutral %emotionAttributes; > <!ELEMENT sad %inlines; > <!ATTLIST sad %emotionAttributes; > <!ELEMENT surprised %inlines; > <!ATTLIST surprised %emotionAttributes; > <!ELEMENT default-emotion %inlines; > <!ATTLIST default-emotion %emotionAttributes; > An example XML file: <?xml version="1.0" standalone="yes"?> <!DOCTYPE FEGML SYSTEM "FEGML.dtd"> <?xml-stylesheet type="text/xsl" href="FEGML.xsl"?> <!-- ################################################################## # Virtual Game with Facial animation, emotion, and guesture XML. # # FileName: FEGML.xml # # Student: Jing Yuan # # Date: 03/19/2002 HW#3 # ################################################################## --> <!-- **************************************** * F stands for Facial. * * E stands for Emotion. * * G stands for Guesture. * **************************************** --> <FEGML> <game> <player name="Jone" position="1"> <angry duration="6s"> <eye-brow-up duration="3s" /> <confused duration="4s" intensity="low" wait="4s" /> <disagree intensity="30"> <head-roll-left /> <head-roll-right /> </disagree> </angry> <happy> <smile> <agree> <head-down /> <head-up /> </agree> </smile> </happy> </player> <player name="Alex" position="2"> <neutral> <disgusted> <wink> </wink> <open-jaw> </open-jaw> <close-jaw> </close-jaw> </disgusted> <concentrate wait="400ms"> </concentrate> <agree> <emphasis> </emphasis> </agree> </neutral> </player> <player name="Mark" position="3"> <default-emotion> <afraid intensity="40"> <look-down duration="10s" /> <sigh> </sigh> </afraid> </default-emotion> </player> <player name="Smith" position="4"> <default-emotion> <look-up> </look-up> <look-down> </look-down> <disagree> <shrug duration="10000"> </shrug> </disagree> </default-emotion> </player> <player /> <player /> <player /> </game> </FEGML> |