diff --git a/workflow.md b/workflow.md new file mode 100644 index 0000000000000000000000000000000000000000..c44ab001b397fec18771c275b41cd11eac183681 --- /dev/null +++ b/workflow.md @@ -0,0 +1,50 @@ +# Workflow of AvatarRA +## File Tree + + __Scripts__ + ├─ [__Camera__](#camera-scripts) + │ ├─ ArucoCalibrateCameraShortcuts.cs + │ ├─ CameraCropOffSet.cs + │ ├─ WebcamCalibration.cs + │ └─ WebcamVisionTexture.cs + ├─ [__FinalIK__](#finalik-scripts) + │ ├─ AutoscaleAvatar.cs + │ ├─ BonesManager.cs + │ ├─ FinalIKHeadLink.cs + │ ├─ FinalIKOptiTrackLink.cs + │ ├─ FinalIKRotationFix.cs + │ └─ FinalIKShoulderFix.cs + ├─ [__OptiTrack__](#optitrack-scripts) + │ ├─ DisplaySkeleton.cs + │ ├─ OptiTrackAvatarPos.cs + │ └─ SceneCalibrator.cs + └─ [__UI__](#ui-scripts) + ├─ FullscreenEditorMode.cs + └─ ModesManager.cs + +## Camera Scripts +- __ArucoCalibrateCameraShortcuts__: Permet de calibrer la webcam pour Aruco avec des raccourcis clavier. Ce script est utilisé dans la scène CalibrateCamera d'Aruco. + +- __CameraCropOffset__ (`Root > Camera Point > Main Camera`): Réajuste le cône de la caméra d'affichage pour simuler le point de vue de l'utilisateur à travers la télé. Inverse aussi l'image pour l'effet miroir. +- __WebcamCalibration__ (`Root > Main`): Gère complètement l'affichage, la prise de mesure, les calculs et l'enregistrement des données de la calibration de la caméra. Ce script permet d'orienter et de corriger le FOV de la webcam. +- __WebcamVisionTexture__ (`Root > OptitrackClient > Webcam Point > Webcam > BackgroundScreen`): Contient toute la partie OpenCV de l'application. Il sert à générer le fond à partir des images fournies et à séparer la personne de l'arrière plan de la webcam. + +## FinalIK Scripts +- __AutoscaleAvatar__ (`Root > Avatar`): Modifie les bones de l'avatar pour l'ajuster à la morphologie de la personne. Affiche aussi les mesures utilisées pour rescale l'avatar. Utilise BonesManager pour obtenir les transforms de l'avatar et de l'optitrack. Une partie du rescaling se fait avec FinalIKShoulderFix. + +- __BonesManager__ (`Root > Avatar`): Récupère semi-manuellement les références des transforms de l'avatar et d'optitrack pour que les autres scripts les utilisent. +- __FinalIKHeadLink__ (`Root > OptitrackClient > Optitrack Head Effector`): Gère le gameobject et le script qui modifie la position et la rotation de la tête de l'avatar. +- __FinalIKOptitrackLink__ (`Root > Avatar`): Assigne les bons transforms, avec correction des rotations, aux bons effectors du script Full Body Biped de FinalIK. +- __FinalIKRotationFix__ (`Root > Avatar > 'avatar en utilisation'`): Fournit les rotations des membres pour corriger les effectors de FinalIK. Lié à un avatar spécifique. +- __FinalIKShoulderFix__ (`Root > Avatar`) : Modifie le script Full Body Biped IK pour corriger la rotation des épaules, ainsi que les déplacer pour faire correspondre la hauteur et la largeur. + +## Optitrack Scripts +- __DisplaySkeleton__ (`Root > OptiTrackClient`): Génère des sphères visibles dans l'application au niveau des bones de l'avatar et d'optitrack, pour débugger. Rouge pour optitrack, bleue pour l'avatar. + +- __OptiTrackAvatarPos__ (`Root > OptiTrackClient`): Code extrait et modifié d'optitrack, qui permet de générer une hiérarchie de gameobjects vides, correspondant aux bones de la personne trackée. +- __SceneCalibrator__ (`Root > Main`): Place tous les objets de la scène, notamment ceux trackés par optitrack (coins de la télé, webcam, fond réel, avatar). + +## UI Scripts +- __FullscreenEditorMode__: Script trouvé en ligne, qui permet de lancer l'application en fullscreen, depuis le mode éditeur. Pas besoin d'instancier le script. On peut y modifier les paramètres pour changer la résolution et la position du fullscreen. + +- __ModesManager__ (`Root > Mode Controller`): Gère l'interface qui permet de changer de mode d'affichage. Affiche aussi le status de l'application.