Skip to content

2021.1102.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@sr229 sr229 released this 02 Nov 02:38
62e26f4
Implement Tracking (#254)

* create `MediapipeGraphStore`, `TrackingComponent` and `AvatarController`

* fix graph encoding

* get landmarks

* update Akihabara to latest version

* check if camera is ready

* Revert "check if camera is ready"

This reverts commit 5e8f82ae8086534b7fcd3cea71689be6a885e4c2.

* use bitmap instead

* null check

* fix annoying crash -yet again-

* install linux package and begin BGR24 to BGRA32 conversion

* convert pixel format

* full encoding

* Improved vscode launch and tasks

* Fix color encoding

* upgrade akihabara windows runtime

* remove debugging code

* Improve image encoding speed by 30x

* check if Mat is empty

* Ignore empty mat

* Remove duplicate if

* add TryGetRawFrame

* cleanup useless garbage

* Ignore mediapipe folder for VSCode testing

* Adding a FaceControlPoints class

* Enclose it in correct namespace

* Math.

* Adding a FaceControlPoints to the TrackingComponent

* refactor and use `FaceData`

* Keep memory under control and check for mediapipe errors

* add custom timestamp counter

* make image conversion better

* check if it's byte array

* Add CONSTANT_CASE parameters for other avatars

* Fix "data cannot be null" bug

* fix memory leak

* remove because i forgor

* Use exceptions instead of booleans

* Improve TryGetRawFrame()

* Add an OutputFrame to facilitate camera preview

* Do not expose the ImageFrame to avoid AccessViolation

* update camera preview to show tracking

* fix colors and stuff poggers

* properly dispose image

* Add a ConvertRaw util function

* Remove conversion

* Remove unnecessary code and use ConvertRaw util function

* Bloating FaceData with names

* First implementation of 3d angles

* improve gitignore ffs

* Refactor distance functions

* Re-refactor distance functions

* Add angle movement

* Bypass compositor on Linux while debugging

* Refactor angle formulas

* Refactor AvatarController

* OPEN THE EYES

* Flip X angle

* move away from update thread and only send data to mediapipe when a camera has a new frame

* - add hardcoded model
- add disclaimer
- send frame to mediapipe every camera tick
- refactor `TrackingComponent`

* Nitrous forgor 💀

* Figured out the math for additive breathing

* Fixed CubismBreathController

* Add body angle control

* Make the breath controller absolute instead of additive

We'll implement a safe way to combine them at some point.

* Set default arm opacity

* Apply smoothing

* Add Calibrate feature

* Remove hard-coded offset

* use an easeInOutQuint function for the eyes

Seems slightly better, but still janky.

* fix tracker not running on camera tick and remove camera preview (for now)

* final steps!
- move Calibrate to `RecognitionSection` and add hint text
- prevent movement jittering

Co-authored-by: Nathan Alo <[email protected]>
Co-authored-by: Adryzz <[email protected]>
Co-authored-by: Speykious <[email protected]>