Chris Pollett > Students >
Michelle Yuan

    ( Print View )

    [Bio]

    [CS297Proposal]

    [Del1]

    [Del2]

    [Del3]

    [CS297Report]

    [CS298Proposal]

    [CS298Presentation]

    [CS298Report]

                           

























Michelle Yuan-- Mark up language

FEGML 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>