xuan25 / VTube-IFacial-Link-Sharp

A Vtube Studio plugin that bridging facial capture from iFacialMocap (IOS).
MIT License
3 stars 0 forks source link

Adding Meowface app compatibility (Android) #1

Open Railline opened 1 month ago

Railline commented 1 month ago

Hey i have found your beautiful software, and i think it can be used with a android too, a software dev by a streamer named meowface use ifacialmocap on android and the only thing necessary it adapte variable name

image

do you think you can add the option ?

this is a trame from meowface caputred on my network

0000 d8 bb c1 fb 35 80 30 ab 6a 9e 2a be 08 00 45 00 ....5.0.j.*...E. 0010 03 bb 85 dd 40 00 40 11 2d bd c0 a8 01 43 c0 a8 ....@.@.-....C.. 0020 01 04 68 2c c3 3f 03 a7 b0 9c 6a 61 77 4f 70 65 ..h,.?....jawOpe 0030 6e 20 26 20 31 38 7c 65 79 65 4c 6f 6f 6b 4f 75 n & 18|eyeLookOu 0040 74 5f 52 20 26 20 31 36 7c 65 79 65 4c 6f 6f 6b t_R & 16|eyeLook 0050 44 6f 77 6e 5f 52 20 26 20 34 7c 6e 6f 73 65 53 Down_R & 4|noseS 0060 6e 65 65 72 5f 4c 20 26 20 32 7c 65 79 65 4c 6f neer_L & 2|eyeLo 0070 6f 6b 4f 75 74 5f 4c 20 26 20 31 34 7c 6e 6f 73 okOut_L & 14|nos 0080 65 53 6e 65 65 72 5f 52 20 26 20 32 7c 6d 6f 75 eSneer_R & 2|mou 0090 74 68 4c 65 66 74 20 26 20 30 7c 68 65 61 64 52 thLeft & 0|headR 00a0 69 67 68 74 20 26 20 30 7c 65 79 65 4c 6f 6f 6b ight & 0|eyeLook 00b0 55 70 5f 4c 20 26 20 35 7c 65 79 65 4c 6f 6f 6b Up_L & 5|eyeLook 00c0 55 70 5f 52 20 26 20 35 7c 68 65 61 64 55 70 20 Up_R & 5|headUp 00d0 26 20 33 7c 6d 6f 75 74 68 52 6f 6c 6c 4c 6f 77 & 3|mouthRollLow 00e0 65 72 20 26 20 32 7c 63 68 65 65 6b 50 75 66 66 er & 2|cheekPuff 00f0 20 26 20 31 7c 62 72 6f 77 4f 75 74 65 72 55 70 & 1|browOuterUp 0100 5f 52 20 26 20 32 36 7c 65 79 65 4c 6f 6f 6b 49 _R & 26|eyeLookI 0110 6e 5f 52 20 26 20 31 30 7c 6d 6f 75 74 68 55 70 n_R & 10|mouthUp 0120 70 65 72 55 70 5f 4c 20 26 20 30 7c 62 72 6f 77 perUp_L & 0|brow 0130 49 6e 6e 65 72 55 70 5f 52 20 26 20 33 7c 68 65 InnerUp_R & 3|he 0140 61 64 52 6f 6c 6c 52 69 67 68 74 20 26 20 30 7c adRollRight & 0| 0150 65 79 65 4c 6f 6f 6b 49 6e 5f 4c 20 26 20 36 7c eyeLookIn_L & 6| 0160 6a 61 77 4c 65 66 74 20 26 20 31 32 7c 62 72 6f jawLeft & 12|bro 0170 77 49 6e 6e 65 72 55 70 5f 4c 20 26 20 33 7c 6d wInnerUp_L & 3|m 0180 6f 75 74 68 55 70 70 65 72 55 70 5f 52 20 26 20 outhUpperUp_R & 0190 30 7c 6d 6f 75 74 68 52 69 67 68 74 20 26 20 30 0|mouthRight & 0 01a0 7c 62 72 6f 77 44 6f 77 6e 5f 52 20 26 20 31 31 |browDown_R & 11 01b0 7c 68 65 61 64 44 6f 77 6e 20 26 20 30 7c 65 79 |headDown & 0|ey 01c0 65 57 69 64 65 5f 52 20 26 20 35 7c 62 72 6f 77 eWide_R & 5|brow 01d0 44 6f 77 6e 5f 4c 20 26 20 31 32 7c 6d 6f 75 74 Down_L & 12|mout 01e0 68 53 68 72 75 67 55 70 70 65 72 20 26 20 31 7c hShrugUpper & 1| 01f0 6d 6f 75 74 68 52 6f 6c 6c 55 70 70 65 72 20 26 mouthRollUpper & 0200 20 33 7c 65 79 65 57 69 64 65 5f 4c 20 26 20 35 3|eyeWide_L & 5 0210 7c 62 72 6f 77 4f 75 74 65 72 55 70 5f 4c 20 26 |browOuterUp_L & 0220 20 31 38 7c 74 6f 6e 67 75 65 4f 75 74 20 26 20 18|tongueOut & 0230 34 7c 65 79 65 53 71 75 69 6e 74 5f 4c 20 26 20 4|eyeSquintL & 0240 33 34 7c 6a 61 77 52 69 67 68 74 20 26 20 31 38 34|jawRight & 18 0250 7c 6d 6f 75 74 68 4c 6f 77 65 72 44 6f 77 6e 5f |mouthLowerDown 0260 52 20 26 20 34 7c 6d 6f 75 74 68 4c 6f 77 65 72 R & 4|mouthLower 0270 44 6f 77 6e 5f 4c 20 26 20 34 7c 65 79 65 4c 6f Down_L & 4|eyeLo 0280 6f 6b 44 6f 77 6e 5f 4c 20 26 20 34 7c 65 79 65 okDown_L & 4|eye 0290 53 71 75 69 6e 74 5f 52 20 26 20 33 34 7c 6d 6f Squint_R & 34|mo 02a0 75 74 68 46 72 6f 77 6e 5f 4c 20 26 20 30 7c 6d uthFrown_L & 0|m 02b0 6f 75 74 68 46 72 6f 77 6e 5f 52 20 26 20 30 7c outhFrown_R & 0| 02c0 6d 6f 75 74 68 53 6d 69 6c 65 5f 52 20 26 20 33 mouthSmile_R & 3 02d0 32 7c 68 65 61 64 52 6f 6c 6c 4c 65 66 74 20 26 2|headRollLeft & 02e0 20 31 30 7c 65 79 65 42 6c 69 6e 6b 5f 4c 20 26 10|eyeBlink_L & 02f0 20 32 38 7c 6d 6f 75 74 68 50 75 63 6b 65 72 20 28|mouthPucker 0300 26 20 38 7c 65 79 65 42 6c 69 6e 6b 5f 52 20 26 & 8|eyeBlink_R & 0310 20 32 38 7c 6d 6f 75 74 68 53 6d 69 6c 65 5f 4c 28|mouthSmile_L 0320 20 26 20 34 30 7c 6d 6f 75 74 68 46 75 6e 6e 65 & 40|mouthFunne 0330 6c 20 26 20 33 7c 68 65 61 64 4c 65 66 74 20 26 l & 3|headLeft & 0340 20 33 39 7c 62 72 6f 77 49 6e 6e 65 72 55 70 20 39|browInnerUp 0350 26 20 33 7c 3d 68 65 61 64 23 2d 35 2e 36 30 35 & 3|=head#-5.605 0360 39 32 34 2c 36 39 2e 33 30 35 37 32 2c 2d 31 31 924,69.30572,-11 0370 2e 32 39 38 32 37 36 2c 30 2e 30 2c 30 2e 30 2c .298276,0.0,0.0, 0380 30 2e 30 7c 72 69 67 68 74 45 79 65 23 2d 30 2e 0.0|rightEye#-0. 0390 32 39 38 34 32 38 34 32 2c 2d 31 2e 39 38 34 32 29842842,-1.9842 03a0 35 38 32 2c 30 2e 30 7c 6c 65 66 74 45 79 65 23 582,0.0|leftEye# 03b0 2d 30 2e 32 35 33 30 34 39 36 2c 32 2e 34 33 33 -0.2530496,2.433 03c0 31 33 32 36 2c 30 2e 30 7c 1326,0.0|

xuan25 commented 1 month ago

Hi @Railline, thanks for your interest.

According to your description, their data frames seem quite similar and should not be really difficult to adapt.

Unfortunately, I do not have an Android device for testing and I am not focusing on this project right now.

I wonder if you are able to compile this project at all. If so, I guess a quick workaround could be that you have a try. This project was developed with Visual Studio 2022.

The things you might want to focus on are:

  1. data class: https://github.com/xuan25/VTube-IFacial-Link-Sharp/blob/efc6b00e2c68afe4e1b773983a46143424f853e4/Lib-VTube-IFacial-Link/IFacial/CapturedData.cs#L36
  2. parsing code: https://github.com/xuan25/VTube-IFacial-Link-Sharp/blob/efc6b00e2c68afe4e1b773983a46143424f853e4/Lib-VTube-IFacial-Link/IFacial/DataParser.cs#L46
  3. for it to be shown in data view, see examples: https://github.com/xuan25/VTube-IFacial-Link-Sharp/blob/efc6b00e2c68afe4e1b773983a46143424f853e4/VTube-IFacial-Link/Views/DataPage.xaml#L19
  4. (Optional) the built-in default config when first start-up: https://github.com/xuan25/VTube-IFacial-Link-Sharp/blob/efc6b00e2c68afe4e1b773983a46143424f853e4/VTube-IFacial-Link/Resources/default-scripts.json#L73
Railline commented 1 month ago

this can be possible, but i'm not very good C# i think i will try it on the python version xD