VaM 1.x quicklook: UI for a randomised pick and remix of a person's appearance and hair presets

Threads regarding the original VaM 1.x

atani

Invaluable member
Wiki Contributor
Featured Contributor
Joined
Jan 15, 2021
Messages
3,833
Solutions
114
Reactions
3,374
The title is a mouthful and still unclear, but I have this:
  • A organized collection of appearance presets and hair presets
  • Many persons with multiple appearance and hair presets that include the person's name
  • Categories in the file name for filtering an appearance preset in VAM by that category
And I want this:
  • A UI that shows me a random picture of a person for which I have one or more appearance and hair presets, and that when I click it it loads one random appearance and hair preset. If I click it again, it loads another randomised pick of that person.
  • I want to have categories to only show persons on that category list.
  • And I also want to be able to pick a specific one instead of a random pick, but still have the randomised mix when clicking the picture.
  • I can't write VAM plugins, so this can't be a VAM plugin and I have to rely on existing plugins for some functionality. I can write some simple python scripts to mass create preset files though.
Get it now?
I hope a little more than before, but it's still confusing I guess, so here's a video of my working project.





The pictures are blurred to follow Hub policies.
Stupidly I left the pointer in that location and you can't see it when it's pressisng the thumbnail button 🤦‍♂️
  • the purple buttons load a category
  • the image is randomly picked when loading a category and the orange button picks another random option from the loaded category
  • clicking the image loads a random appearance and hair preset of that person for maximum variety
  • the purple button (quicklook choose) opens a browser to select manually a person quicklook, which then shows the picture as well and the reload capacity in the UI
  • the UI shown is optional and can be bound to the camera or to a specific empty atom in the scene, quicklook presets can be loaded on the same named atom, but the UI gives it a better user experience


How does it work?

quicklook presets, as I call them, are empty and UIButtonImage atom presets that include MacGruber's Logicbricks and hazmhox's VAMStory plugins. These handle the features and triggers needed to gather and load all the correct person's appearance and hair presets.
Each person has a single quicklook preset which serves as a pointer to potentially multiple app/hair presets for that person. One quicklook Jill can list Jill's 3 appearance and 5 hair presets and mix them randomly using the UI as shown above in the video and bullet points.

A quicklook category or collection is also an empty atom preset, but one that points to person quicklooks. A category helps to narrow down the list of persons. Busty, young, mature, cartoon, you name it.

The process of making quicklook presets:

There's no way that I am doing quicklook presets manually, I would have to be insane. I'm talking about hundreds of presets and maintenance when adding or removing appearance or hair presets. Hell no!!!
This is where a python script comes in. I run it once, it collects the needed information and creates all the person and category quicklook presets needed. Takes a few seconds to create hundreds of them, ready to be used in VAM. Beautiful.


The script uses a file naming pattern to associate appearance and hair presets to a specific person.
  1. You put images in the desired folder for quicklook presets to be written;
    • mine folder is Custom/Atom/Empty/quicklook
    • the images will work as the thumbnails shown in the UI
  2. The script loops through all images there, strips the "Preset_" and ".jpg" name parts, and the remainder is the pattern to compare to when searching the appearance and hair preset folders.
As should be clear from the above procedure, that look up name needs to exist on all the app/hair presets you want associated with. For example, if the image is called "Preset_Jill Valentine.jpg", the script will search for the pattern "Jill Valentine" in all the app/hair presets. It doesn't matter if you have appearance/hair presets in subfolders or names like "Preset_Jill Valentine 3 (snoopy) cartoon.vap", as long as there's a "Jill Valentine" in the name, it will be associated to the image person.

A category quicklook is not an empty atom preset but a UIButtonImage preset because the thumbnail is this kind of button. The procedure is similar to the above, where the name of the category is searched for in the app/hair presets name, with the exception of the category "all" where all quicklook presets are listed.


Using quicklook presets in a scene

If you didn't already realized by now, all this process is not meant to be a general replacement option for appearance changes in random one-time playing scenes from the Hub. For those, the typical appearance tab preset loading or UIAssist to change presets does not need adding any atoms or preparing quicklook presets. This is meant for weirdly obsessed people like myself who want a way to mix up existing app/hair presets (and more) in my favorite scenes. It will be at some point built-in to my NEXT template scene whenever I update it, even if I don't expect anyone to use the feature but myself 😅 .

To use the quicklook presets functionalities you need to add a couple of atoms and the person must be called "Female", or else the triggers to load presets will not find the receiver. While the process to add atoms is easy and quick, it's a lot more convenient to save a version of the scene with the atoms already in place.

Barebones setup - quicklook atom only:

  • Empty atom named "quicklook" where a person quicklook preset is loaded
This works by itself, loading automatically a single random mix of appearance and hair presets on the person. However, to try another random mix, either you'd go to the atom and trigger the Eventonsceneload logicbrick plugin, or make a button with a trigger elsewhere to do that triggering. You could for example add a UIAssist button to handle the triggering, which is more accessible than a scene button. This barebones setup is not a great user experience, but works nonetheless; you also can't use quicklook categories.

UI setup for the best experience and all features:
  • Empty atom named "quicklook", like the above setup
  • Empty atom named "quicklookUI"
    • this atom includes the UI shown on the video, created on VAMStory Actions Custom plugin
    • also includes a BindToCam plugin to bind to the camera and unbind to a specificied empty atom target
  • UIButtonImage atom named "quicklookThumbnail" parent-linked to "quicklookUI"
    • this button shows a random picture from a quicklook category/person you load
    • pressing the button initially loads the shown person's quicklook preset with a random pick of app/hair presets, and subsequent clicks trigger a new random mix for the person
The complete setup requires a bit more than the barebones setup but not much more work and gives you a lot more features and experience.
Naturally, saving this setup on a scene you intend to replay later is a much better option than redoing the work every time.


End of presentation

This project is focused on the needs of a very demanding user: myself.
The setup as is mentioned only presents appearance and hair presets being loaded and mixed, but it is extendable to other kinds of presets and non-preset related associations. For example, I also set in the script to load a quickspeech audiobundle if it exists for the picked person. A quickspeech audiobundle is a CUA with audio files, tipically voice cloned audio, that my NEXT template scene can trigger at specific moments.
I also had associations of a person to a specific quickdress preset to be loaded in the scene. A quickdress is a type of fancy UI that controls some clothing options. This used a python dictionary and wrote in for X person to match Y quickdress, then the script did the checking and added it when applicable.
For more information about quickspeech and quickdress, see my resources page.

If you are interested in this unusual way of mixing up presets and making person associations to other content, I have no problem answering to questions here and sharing my quicklookmaker python script in a DM.

A big thank you to the plugin makers whose plugins I use in this setup:
  • Dragontales
  • hazmhox
  • MacGruber
 
Last edited:
Back
Top Bottom