Depending on your story engine there will likely be an embedded tagging system to signal instructions to the game engine via the script. The general idea is that you'd use a consistent tag followed by short commands that are parsed from the script before the words are printed to the screen, for example:
@BOY(LAUGH) Sounds like someone's angry.
@GIRL(EYEROLL) Noooooo! How could you tell?
The game engine parses each line as it comes out of the story engine. It sees the @ and reads the letters that follow to learn the character who is speaking, and their facial gesture that goes with that line.
There might also be tags for @AUDIO, @SCENE, @BKG @INCLUDES, etc. If you are not the one programming the game engine, you just need to keep your tags consistent and simple so they can be edited by the programmer with SEARCH/REPLACE.
The general idea is that there will be a limited number of facial gestures (typically 6-8). Your expression tags will be edited by the programmer to match the facial gestures that are available. In dynamic stories, characters will be swapped by the story engine but their face gestures will have the same names – ergo it won't matter if Linda or Bill says a certain line, the script will still provide them with the correct expression.
The story engine script will probably assemble parts of the story dynamically, so the actual script will be replaced by variables and function calls. Let's say a scene might have Linda or Bill as the friend who reacts. Bill also thinks it's funny and responds with sarcasm. Linda however knows who is yelling and her reaction is different. The story engine script will look something like:
@AUDIO("ManShouts.WAV")
@WAIT(5)
@{NPC1(LAUGH)} Sounds like someone's angry.
@{FRIEND(DO_REACTION)} {FRIEND(GET_REPLY)}
The story engine dynamically updates the script variables, filling in the character's names, gestures, and replies. The game engine parses the directions from the script and displays the appropriate sound and graphics, in this case the variable FRIEND is replaced by either Bill or Linda and the game engine sees:
@LINDA(UPSET) I'll see you later.
The more you learn about the underlying story and game engine, the more dynamic your narrative can become, but there will always be this bottleneck between the story engine and the game engine where simple directions are parsed from the script itself. Have a conversation with the programer and artist so everyone can be on the same page with what is possible.