Description of fix:
The BioPawn class has two functions that handle disabling and re-enabling of eye blink movements, DisableEyeBlinks and EnableEyeBlinks respectively. These functions are called, for example, in Action Stations where the pawn is supposed to be dead, or sometimes at the start and end of FaceFX Animations. These two functions work by disabling a specific AnimNode. The name of this AnimNode is configurable, in Coalesced (EyeNoiseNodeName in BIOGame.ini).
The problem is that there are two AnimNodes, not one, that need to be disabled for the eye movements to stop. Export 65 and 66 in BIOC_Materials. "AddEyeballNoise" and "AddEyeBlinkNoise". Coalesced only specifies the latter, so it is the only one that is disabled. To fix this, we have updated these two BioPawn methods so they no longer use the coalesced specified node, and disable two hard-coded nodes. These scripts are updated via merge mod. The updated text of both methods is below.
DisableEyeBlinks:
public final function DisableEyeBlinks()
{
local array<AnimNode> AnimNodes;
local AnimNode Node;
local AnimNodeAdditiveBlending AdditiveNode;
if (Mesh == None)
{
return;
}
DisableEyeBlinkRefCount++;
if (bEyeBlinkDisabled)
{
return;
}
AnimNodes = Mesh.AllAnimNodes(Class'AnimNodeAdditiveBlending');
foreach AnimNodes(Node, )
{
AdditiveNode = AnimNodeAdditiveBlending(Node);
if (AdditiveNode != None && (AdditiveNode.NodeName == 'AddEyeBlinkNoise' || AdditiveNode.NodeName == 'AddEyeballNoise'))
{
AdditiveNode.SetBlendTarget(0.0, 0.0);
}
}
bEyeBlinkDisabled = TRUE;
}
EnableEyeBlinks:
public final function EnableEyeBlinks()
{
local array<AnimNode> AnimNodes;
local AnimNode Node;
local AnimNodeAdditiveBlending AdditiveNode;
if (Mesh == None)
{
return;
}
DisableEyeBlinkRefCount--;
if (DisableEyeBlinkRefCount == 0)
{
AnimNodes = Mesh.AllAnimNodes(Class'AnimNodeAdditiveBlending');
foreach AnimNodes(Node, )
{
AdditiveNode = AnimNodeAdditiveBlending(Node);
if (AdditiveNode != None && (AdditiveNode.NodeName == 'AddEyeBlinkNoise' || AdditiveNode.NodeName == 'AddEyeballNoise'))
{
AdditiveNode.SetBlendTarget(1.0, 0.0);
}
}
bEyeBlinkDisabled = FALSE;
}
}
File: SFXGame.pcc
Needs fixed in localized file? No
Export ID/TLK Str Ref: 6112, 6117
Description of fix: The BioPawn class has two functions that handle disabling and re-enabling of eye blink movements, DisableEyeBlinks and EnableEyeBlinks respectively. These functions are called, for example, in Action Stations where the pawn is supposed to be dead, or sometimes at the start and end of FaceFX Animations. These two functions work by disabling a specific AnimNode. The name of this AnimNode is configurable, in Coalesced (EyeNoiseNodeName in BIOGame.ini).
The problem is that there are two AnimNodes, not one, that need to be disabled for the eye movements to stop. Export 65 and 66 in BIOC_Materials. "AddEyeballNoise" and "AddEyeBlinkNoise". Coalesced only specifies the latter, so it is the only one that is disabled. To fix this, we have updated these two BioPawn methods so they no longer use the coalesced specified node, and disable two hard-coded nodes. These scripts are updated via merge mod. The updated text of both methods is below.
DisableEyeBlinks:
EnableEyeBlinks: