virtual-puppet-project / vpuppr

VTuber application made with Godot 4
Mozilla Public License 2.0
740 stars 61 forks source link

[FEATURE]: command line arguments for script automation purposes #214

Open jurassicjordan opened 1 year ago

jurassicjordan commented 1 year ago

Description

a few command line arguments to automatically select the tracker, select a model, and start the tacker would be a fantastic addition. it could work like this:

C:/path/to/Vuppr.exe -vrmrunner "C:/path/to/model.vrm" -tracker openseeface 3 12 cameraID autostart

-vrmrunner selects the runner and allows you to add a filepath to your vrm model or a model preset to open an existing preset. if preset doesnt exist or a file path isnt provided it can load the default ducky -tracker selects the tracker to be used. the options for the argument should go from bottom to top as seen on the tracking window in the GUI. first is model (3 will select the default model, 0 selects potato, etc), then tracker fps (if not listed default can simply be 12) and the most difficult would be cameraID, im not sure how it can be implemented in windows, the linux version seems to assign index IDs so you could do it that way ig? leaving it black should default it to the camera. lastly autostart should automatically start the tracker and hide the interface

Why is this needed

I'm sure I'm not the only person who finds it to be a hassle to set up all your programs for streaming. in my case I do hate having to remember the order in which to start vpuppr then obs, otherwise obs steals my webcam from vpuppr and won't allow me to use it unless I delete the camera from my obs scene or close obs. I think having the option to make an automated script that opens all my streaming tools would be a fantastic way to improve and enhance Vpuppr.

Additional information

Screenshot_20230907_165032

you-win commented 1 year ago

Initial work for this has been implemented. The current syntax looks like:

Starting a runner and optional tracker:

vpuppr [--quiet | -q] [--verbose | -v] [launch RUNNER_NAME [--tracker (mediapipe | ifacialmocap | vtubestudio | meowface | openseeface)]]

Creating a new runner with model:

vpuppr [--quiet | -q] [--verbose | -v] [with-model MODEL_PATH [--model-type (glb | vrm | pngtuber) [--runner-path PATH] [--gui-path PATH]]

Args are successfully parsed, all that's left is to actually use the args in the program.

libvpuppr tests with proposed usage.