The following can be learned from implementing Character Awareness in Assassin’s Creed: Origins: The code includes the location of a characters head, so I created my ray from the players head to the targets head and didn’t have to resort to a 2D solution like I did in Hippo. The stared at target is given a huge boost in the awareness system. This means that the character will become aware of you if you stare at them (limited to friends , doesn’t do anything to foes). The awareness system triggers dialog events. Dialog events include the ability to turn a characters head and eyes to look at a target, can trigger the character to walk to a target, and finally start conversations. The bad news is: these dialog events are designed in data, and they include a whole load of pre-requisite conditions. Limits: FOV limits: staring at the back of someone’s head does nothing Distance limits: staring at someone 10 yards away does nothing And a bunch of other limitations that may or may not be a problem Since these are defined in data, I cannot do anything about it. There are no other systems in the game that we can use. Also, do not use the -nosound flag on the command line. It will disable all conversations and dialog responses. All of them.
|Character awareness||bool||on / off||on||Let NPCs respond to eye contact|
This feature used to be called highlight at gaze
Highlight objects that you can pick up when you look at them. Requires that the object is within reach.
Alternative is ‘Sixth sense’ which works similarly but instead aims at disclosing information about objects in the scene that are outside reach or hard to see
|Highlight at gaze||checkbox||on / off||on||Highlight interactable objects when looking at them|
DO consider highlighting logo, keyboard or other LEDs.
DO highlight only “important” (story objects, artifacts, etc) objects.
DO NOT highlight too many objects on the scene to not distract the user. Consider only highlighting nearby objects.
DO NOT outline objects, use gradient highlighting or particle system instead.
DO consider projecting game objects to the screen plane or using tag buffer or excluding scene geometry in raycast.