Commit f4aa7b

2026-04-14 00:11:33 Anonymous: Initial commit
/dev/null .. vip docs/ue5 systems and blueprints.md
@@ 0,0 1,33 @@
+ # Vip Docs: UE5 Systems and Blueprints Table
+
+ | Blueprint Name | Category | Description |
+ | -------- | -------- | -------- |
+ | **GI_VipGameInstance** | Core System | The root of the game used to handle persistent global variables across level changes (e.g., moving from the main menu to therapy). Includes save directories, persistent references to runtime variables (client structs, game modes, therapy types), and a library of in-therapy "objectives." |
+ | **WB_CharacterSelector** | UI / Data Loading | Orchestrates client loading. Populates lists of `WB_PatientSelectButton` from the `VipSaveData` directory. On session start, it parses JSON data into a client struct and passes it to the Game Instance so the client is properly initialized on loading the therapy level. |
+ | **WB_PatientSelectButton** | UI / Selection | Sets the therapy type and current client reference. There are three variants: `WB_PatientSelectButton` (Open), `WB_PatientSelectButton1` (Structured), and `WB_PatientSelectButton2` (OneStep). |
+ | **WB_TreatmentRoomUI** | HUD / Input | The main gameplay HUD. Manages text input and tracks player note-taking. Notes are saved to the notebook (Note: Saving is currently exclusive to **Structured Mode**). |
+ | **WB_Feedback** | Logic / Analytics | Handles post-session processing. Displays AI-generated feedback, saves client memories, and updates gameplay stats (hours played, sessions completed). It also scores the client and assigns/saves performance ratings. |
+ | **WB_MainMenuUINew** | UI / Navigation | Logic for the main menu. Selecting different game mode cards sets the `GameMode` variable within **GI_VipGameInstance**. |
+ | **WB_CharacterCreator** | UI / Creation | Manages the creation of new clients. Critical for ensuring character data is formatted correctly for all downstream systems. |
+ | **Player_Controller** | Input / Streaming | Logic for user input and user-facing functionality: Voice capture (Pixel Streaming and local), Pixel Streaming config, input handling (browser/connection events), hashing usernames, and the pause menu. |
+ | **BP_ISNCharacter1** | Actor / Client | The main blueprint for clients. Acts as a lightweight nexus connecting the mesh, animation blueprints, and the **ISNAILink** component. Generally stable and rarely requires modification. |
+ | **BP_ISNAILink_Component** | AI / Integration | The bridge to the AI backend. Handles speech-to-speech requests, processes responses (Base64 to audio, subtitle extraction), and sends morph target weight matrices to the face animation blueprint. |
+ | **Face_AnimBPISN** | Animation | Controls the client's face. Updates morph target weights frame-by-frame based on data from **BP_ISNAILink_Component**. Includes idle behaviors like saccades and additive emotional layers. |
+ | **ABP_ISNCharacter3** | Animation | Controls client body animations. Driven by factors such as gender, body type, and emotion provided by the character blueprint and AI link component. |
+
+ # Vip Docs: UE5 Systems and Blueprints
+
+ Important blueprints
+
+ - GI_VipGameInstance - This blueprint is the root of the game and therefore is used to handel persistent global variables even as level change (e.g. moving from the main menu to therapy). Currently includes things such as: Directories such as save directory, Persistent referneces to important runtime game variables such as struct of the current client, current game mode, current therapy type etc., and a library of in-therapy "objectives".
+ - WB_CharacterSelector - What looks like another UI blueprint is actually extremely important. Loads clients from the VipSaveData Dir to populate lists of WB_PatientSelectButton('s) for each gamemode allowing to select which client. On clicking start session, all client information will be loaded from a JSON in a corresponding save directory based on which WB_PatientSelectButton is currently selected. This JSON data will be used to create a struct that hold all client information. It is pased to GI_VipGameInstance so that the client can be properly initialised on loadeing the therapy level.
+ - WB_PatientSelectButton - Selecting these sets the therapy type and the struct that serves as a reference to the current client. There is actually three of these, one for each gamemode: WB_PatientSelectButton for open, WB_PatientSelectButton1 for structured, and WB_PatientSelectButton2 for onestep.
+ - WB_TreatmentRoomUI - Manages text input and is the main HUD during gameplay in any therapy session. Also responsible for tracking player note taking, which gets saved as players add new notes to the notebook (ONLY SAVE IN STRUCTURED MODE)
+ - WB_Feedback - Another deceptively important blueprint. On the surface, this blueprint shows players AI - generated feedback based on their session. Under the hood, this blueprint does all the progress management handingling such as saving client memories, and updating gameplay stats for the player (like hours played, sessions completed, etc). Also scores the client and assigns / saves performance ratings.
+ - WB_MainMenuUINew - Logic for the main menu where you select which gamemode to play. Selecting different cards sets the gamemode var on the GI_VipGameInstance.
+ - WB_CharacterCreator - Blueprint that manages client creation. Very important this is right because if a character is not created properly they dont work as intended.
+ - Player_Contoler - Contains logic for most user input, and user facing or user related fucntionality, such as: Voice caputre (pixel streaming and local), pixel streaming config, pixel streaming input handeling (info from the browser, driving events from new connections or closed connections), hashing username from pixel stream, pause game.
+ - BP_ISNCharacter1 - The main blueprint for the clients. Very lightweight, mostly just a nexsus of all the things that make up the client including their mesh, animation blueprint, face animation blueprint, and ISNAILink component. Very stable and never needs to be touched except for big changes to anim or new clients.
+ - BP_ISNAILink_Component - This is the blueprint responsible for most of the calls to the AI backend, and is responsible for all AI driven interactions with the client. Handles all speech-to-speech request, processes responses from the ai backend (converts base64 to audio, extracts subtitles, and extracts morphtarget weight matrices to animation and sends to Face_AnimBPISN), update rapport requests, and check objective requests.
+ - Face_AnimBPISN - Controls the clients face. Speech animation is set each frame by taking a matrix of morph target weights given to it by BP_ISNAILink_Component. Also has idle face animation like saccades. Has weights for different emotions as well that allow emotional expressions to be set on top of other activate face animations.
+ - ABP_ISNCharacter3 - Controls the client animations. Irina is the master of this domain. Animations are driven by factors such as gender + bodytype + emotion which it gets from things like BP_ISNCharacter1 and BP_ISNAILink_Component.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9