What is it?
Look Alive is a plugin that adds two components to use on your actors. The first is the LookAliveComponent, a child class of skeletal mesh component used specifically for eyes, so they can be animated seperately from your character’s main skeleton. The second is the LookFocusComponent, a child of the BillboardComponent that is used to give the LookAliveComponent a place to look at.
How do I use it?
You need only add the components and tweak the properties to your liking. For example, on characters you could add a LAC and then parent a LFC to the LAC so that characters will make eye contact with each other. In the constructor you would add the LFC to the LAC’s IgnoreFocuses array, so it does not attempt to look at itself.
You can add LFCs to items and points of interest on the map as well. You could also and LACs to inanimate objects if you are going for a more cartoonish style.
What if my mesh already has eyes?
You have two options. Preferably, you can remove the eyes in a 3d modelling program. Alternatively, you could assign an invisible material to the eyes, assuming they use a separate material from the rest of the mesh. By invisible material, I mean a material set to ‘Opacity Masked’ and ‘Unlit’ with a value of zero plugged into the opacity mask.
Please comment if you have complaints, questions, or suggestions. Thank you.
LookAlive - inherits from SkeletalMeshComponent
IPD - float - controls distance between eyes
EyeRadius - float - controls size of individual eyes
Dilation(L/R) - float - 0 to 1 control of pupil dilation
StareTime - float - length in seconds of the animation’s stare cycle
WanderTime - float- length in seconds of the animation’s wandering eyes cycle
WanderSpped - float - how fast the eyes wander from point to point in the animation’s wander cycle, equal to 1/time between points
SightConeHalfAngle - float - angle in degrees deviation from its +X axis it can make eye contact
ManualFocus - bool - enabling will override eyes to focus on ManualFocusLocation
FocusTime - float - time between changing focus
IgnoreFocuses - array - list of LookFocuses that will be ignored when making eye contact
ManualFocusLocation - vector - world space location to make eye contact with
JiggleEyes - bool - enabling will make eyes physics driven
LookFocus - inherits from BillboardComponent
FocusPriority - float - 0 to 1 likelihood of being chosen as the focus of a LookAlive
FocusRadius - float - max distance beteen LookFocus and LookAlive that LookAlive can make eye contact
VisibilityAngle - float - max angle in degrees line from LookFocus to LookAlive can deviate from +X and allow eye contact
*Version 3.0 submitted. New eye model, new material, new appearance controls in the component!*https://youtube.com/watch?v=ErQR74OFJD8
Version 4.0 submitted with asymmetric eye settings
More eye models