VAM Evolutionary Character Creation

Other VAM Evolutionary Character Creation

also, getting hundreds of errors: [Errno 2] No such file or directory: 'F:\\vam new\\Custom\\Atom\\UIText\\VAM Evolutionary Character Creation\\Preset_VAM2PythonText.vap'
Yeah that’s normal when you run it for the first time.
 
Can you try following the steps in the tutorial?

just tried again, the app window doesn't change and it still says connection lost in vam. the blocker UI briefly says "connecting" and then nothing happens.
if i manually remove the blocker it seems to connect
 
And you downloaded all the necessary plugins which the .var uses? I'm just checking what could be going wrong here.
 
Can you maybe make a screenshot of the python app before you click "initialize"? So I can check if something funky is going on? You can also DM me this.

Did you do the same stuff as I did in the video? Just double checking.
 
Can you maybe make a screenshot of the python app before you click "initialize"? So I can check if something funky is going on? You can also DM me this.
it appears i was missing aeternum tools 🤦‍♂️

works perfectly now, lmao. sorry for the bother. I wasn't getting any error issues or missing dependency messages so i didn't think to check for that
 
it appears i was missing aeternum tools 🤦‍♂️

works perfectly now, lmao. sorry for the bother. I wasn't getting any error issues or missing dependency messages so i didn't think to check for that
I’m glad that it works now!
 
v1.2 is definitely a nice improvement over previous v1.1, much appreciated. Thank you!
After quick test run it works flawlessly.

I have 2 small questions about scene itself (warning: heavy nitpicking):
1) i was peeking inside json a bit, is aeternum tools.1 (loaded on UIText#ChildState) really required, i mean...it loads latest 'v2' anyway
(that "optional" error inside package manager is triggering me...i know, what can i say...special case) 😅
2) is 3pl subscene rly required, or can you un-parent lights and delete subscene? (even though it's vam built-in...3 less dependencies and stuff)

suggestion:
Since you moved from 3 down to 1 person atom...maybe add a mirror behind or two (idk...at 45-60°).
Could be easier to spot the difference, without moving around (especially when quickly comparing similar presets)
True, rotating rating panel is one option, but you still have to move around to compare (with v1.1 i rarely moved around)

Anyway that's my first impression/feedback on update.

Thanks again for this great tool. 😉
 
v1.2 is definitely a nice improvement over previous v1.1, much appreciated. Thank you!
After quick test run it works flawlessly.

I have 2 small questions about scene itself (warning: heavy nitpicking):
1) i was peeking inside json a bit, is aeternum tools.1 (loaded on UIText#ChildState) really required, i mean...it loads latest 'v2' anyway
(that "optional" error inside package manager is triggering me...i know, what can i say...special case) 😅
Oh, I didn’t notice. I’ll see if I can fix it.


2) is 3pl subscene rly required, or can you un-parent lights and delete subscene? (even though it's vam built-in...3 less dependencies and stuff)
No, it’s not required. I just used the lighting from the VAM default scene so it doesn’t need extra dependencies.

suggestion:
Since you moved from 3 down to 1 person atom...maybe add a mirror behind or two (idk...at 45-60°).
Could be easier to spot the difference, without moving around (especially when quickly comparing similar presets)
True, rotating rating panel is one option, but you still have to move around to compare (with v1.1 i rarely moved around)
Yeah using mirrors is a good idea, also mentioned by @ypeckack. I might include that in a later version.

Anyway that's my first impression/feedback on update.

Thanks again for this great tool. 😉
Thanks for your kind words and ideas!
 
Pardon the n00bness but I've read all the info on the manual and discussion and I'm not able to get any of my models to load. Virtamate saves them to /saves/person/appearance, no subfolders, just a .json and a .jpg for each model. I've got about 300. When I select the folder in the executable, it is empty. When I was initially searching virtamate folder to figure out where my looks were being saved, I randomly found a look that is in .vap format that was saved in custom/atom/person/appearance - and if I choose that folder in the executable, that look comes up. I tried copying my .json looks to that folder for the hell of it but they still don't come up. I searched google and this forum and found very sparse and mostly old info about the different formats, but one post said saving as looks / .json is the current method and this is how it works for me doing the 'save look' under 'controls and physics' with a person selected - vs older method of saving .vap files as appearances. If only .vap files can be used in this, and this is a new program, then should i be saving all my looks/appearances as .vap? If so how - I can't find any commands in virtamate to do so.
Thanks for any help, the program in concept looks really exciting!
 
Thanks for creating this, it's a fun plugin to play with. I wanted to go back and touch upon appearances that may have had all/most of their morphs merged down into full body or full head/body morphs, which has made them unsuitable for use in this plugin.

I know nothing about how all this works under the hood, so please forgive my ignorance, but would it be feasible to assign these sub-150-morph-models with a bunch of zeroed morphs so that they could be added to the genetic pool? Which morphs? Either you pick what are the ~150 most generic morphs and hard code it in, or have the app scan the morphs being applied to all the appearances that are already elibible and find out what are the ~150 most commonly used morphs on those appearances.

I wonder though if either the full body/head morphs and/or the then huge number of zero'd morphs would then in some way overwhelm the gene pool.

Anwyay, great job either way, just spitballin' here hoping to find a way to make all appearances eligible for breeding.
 
Welp... not a great first run on v1.2 out of the gates... I was unable to connect to the app from inside the evolutionary character scene in VAM. I'd click on "Connect to App" and "Updating" would appear over the rating area and then nothing. No error messages on the black command window or anything.

Might this have something to do with me running VAM inside a Veracrypt volume by any chance?
 
I was unable to connect to the app from inside the evolutionary character scene in VAM. I'd click on "Connect to App" and "Updating" would appear over the rating area and then nothing.
This is exactly how the scene behaves if some of the dependencies are missing.
Open up the ingame browser, search for the 'evolution' project and check/download all dependencies, open the scene again.
Verify the scene loads fine in the error log.

Might this have something to do with me running VAM inside a Veracrypt volume by any chance?
Unless you do something weird like mounting your volume as readonly VeraCrypt it should never have an affect on any software.
Used VeraCrypt (previously TrueCrypt) for ca. 15 years now and I can confirm this project works just fine on a VeraCrypt volume.

Just a quick check: did you set min morph treshold to 150?
Nope, did not do that. Will do now with the update. That overview page was such a wall of text that I decided to skip the 'read the f&cking manual'-phase.
Edit: Yeah results are more varied by sorting out "full body" morphs with the threshold. Less "accident" faces now. :ROFLMAO:

To be clear I was exaggerating with the faces. It's not like they where super deformed - just never beautiful.
I believe many of my fav. appearances are in fact based on a very low number of morphs. So you're right.

Keeping the head / body separated is a much requested feature, and a feature I'd love to have myself, but at this point it's quite a challenge for me to know which morph influences what part of the character. The Carmen morph for instance, modifies the whole model from top to toe. So it's not an easy task to decide which morph should be seen as a "head" morph or a "body" morph. Unless you have a suggestion how to approach this?
Okay I understand why this is difficult.
Here is a theory how this could be solved - but ... it is VERY (!!!) complicated and requires messing with the binary morph format and understanding how it works.
  • requires good knowledge on how meshes work in modern 3D engines
  • find out which vertices (and the index of them) on the G2 mesh a are part of which body part
  • find out how the binary .vmb morph files work to know which vertices (probably identified with an index) are used by that morph
  • compare/cross references both morph indices and body part indices find out what body parts the morph affects and tag the morphs
I doubt anybody will be able to pull this off. It would probably be to slow to do this in real time, so the morphs would have to be 'pre-tagged' as head or body.
 
Last edited:
Okay I understand why this is difficult.
Here is a theory how this could be solved - but ... it is VERY (!!!) complicated and requires messing with the binary morph format and understanding how it works.
  • requires good knowledge on how meshes work in modern 3D engines
  • find out which vertices (and the index of them) on the G2 mesh a are part of which body part
  • find out how the binary .vmb morph files work to know which vertices (probably identified with an index) are used by that morph
  • compare/cross references both morph indices and body part indices find out what body parts the morph affects and tag the morphs
I doubt anybody will be able to pull this off. It would probably be to slow to do this in real time, so the morphs would have to be 'pre-tagged' as head or body.
Well I actually took a look at the morphs and they have regions assigned to them. This still means that although they have the "body" region, they could still influence the "face" (like the Carmen and other named morphs) but a rough split between types of morphs is possible. It's a lot of work though, since I would have to compile a list of the default morphs (400 or something of them) and look what they are assigned to, mostly by hand. So this is something I might look at, in the distant future.

Thanks for helping scarlett out by the way.
 
Last edited:
Yeah - though about these regions too (or 'Category' in the VAM UI).
They seem unreliable. Could work partially with the default morphs, but the custom ones are hell.
So many custom morph are tagged with random stuff or the creators name and nobody follows the "Morph/<bodypart>" scheme.
I guess this makes sense for the custom morph creators to use their name - since there is no "creator" property.
 
Yeah - though about these regions too (or 'Category' in the VAM UI).
They seem unreliable. Could work partially with the default morphs, but the custom ones are hell.
So many custom morph are tagged with random stuff or the creators name and nobody follows the "Morph/<bodypart>" scheme.
I guess this makes sense for the custom morph creators to use their name - since there is no "creator" property.
I am considering adding a feature “VAM default morphs only”. That way you can start generating characters which are easier to manipulate. Another approach, would be to use a neural net to try to recreate a single morph character by only using default morphs. But that’s another huge project.
 
I am in love with this tool already! I have spent close to four hours with it last night, just generating look presets. Out of the hundred+ or so generated, I managed to come up with around 5 really good, unique looks. Not the tools fault or anything, just me being picky with the looks, haha. The last one was the best look yet, but I pushed the variate population button before I quick saved the look and now she is lost in the void forever. Oof, that hurt. I have been more careful since that incident. I am happy with it in it's current version, but I have some suggestions/requests for possible future releases, if they are not too much trouble. These are only suggestions/requests, not demands, lol.

1. Undo/Redo button.
2. Ability to either generate actual preview images or the ability to create a preview image, like when you save a scene or a preset.
3. Possible "Generate Random Look" button?

There was one more thing, but I can not remember what it was... Anyway, thanks again for this awesome app!
Back to generating I go... 😄
 
This app is a magic of creation!But I meet a problem,there is a gray square UIwindow covered the adjust panel right of the model,it says to me to connect the app,but after I click to connect the app the gray UI window didn't disappear and I couldn't click the adjust panel behind it.Is I did something wrong?I took the screenshoots btw.
 

Attachments

  • beforeclick.png
    beforeclick.png
    373.3 KB · Views: 0
  • afterclick.png
    afterclick.png
    356.3 KB · Views: 0
Hi, is there any way to get "all flattened" appearances from /AddonPackages/ *.var? Or do i need to unpack all *.var files and then merge /Appearances/ folders into one?
 
Big fan of this app.

Slight issue that am having is that my looks turn out to be similar to my parent look (base model chosen) even after like 15+ Gens.

This could be either because i am subconsciously choosing similar and similar looks (because I find the original pretty) or something else. any way to randomize more?

P.S. I'll try to post some of my creations along with the original


*Left is original
 

Attachments

  • Compare1.png
    Compare1.png
    2 MB · Views: 0
Last edited:
Hey, I had an unusual problem that i fixed easy, i thought i was having the problem with not having all the dependencies where it was spitting out errors over and over and telling me my files were broken. Turned out, the default character wouldnt load right, so i just restored the default character to full default and it fixed it easy.
 
I may have found an issue. I wanted to see if the app could merge the quicksaves it made, so I removed all appearance presets as well as the VAM Evolutionary Character Creation folder inside. I copied a few of my quicksaves into the appearance folder, deleted the app from desktop and unzipped a clean version. All buttons work, the rating system and generate population work, but when I press the Variate Population button. It just stops working. It doesn't crash VaM or anything. I have saved the log to .txt incase you need it. Before and after I did my experimenting, the app worked perfectly. I have just checked by deleting the app, unzipping a clean version, removed the appearance presets and replacing the old presets. All is back to normal.
A few notes:
I did not rename the quicksaves that it saved for me.
I did load all 26 of the quicksave presets and saved them with preview new images, one by one.

After typing that last sentence, I was thinking that maybe it could be the .jpg files that I just created. I did drag them into the appearance folder along with the .vap files. I will test my theory right now and report back with my results. 🤔

Edit: The .jpgs were not the cause. Oh well. I tried.
 
Last edited:
Getting some python errors, and I'm not sure why, as the previous version of the app worked perfectly.

I immediately get this when initializing the population with gaussian samples, using my culled, hand-picked favorites for this app. The app stops generating at 1/20:

Code:
Gaussian Samples
Writing settings to: F:\CustomPrograms\Misc\VAM Evolutionary Character Creation v1.2.0\data\settings.json
Using random samples from multivariate gaussian distribution for initialization.
Source files: Choose All Favorites (85 Files)
Exception in Tkinter callback
Traceback (most recent call last):
  File "tkinter\__init__.py", line 1892, in __call__
  File "VAM Evolutionary Character Creation.py", line 755, in <lambda>
  File "VAM Evolutionary Character Creation.py", line 1250, in generate_next_population
  File "VAM Evolutionary Character Creation.py", line 1617, in gaussian_initialize_population
  File "VAM Evolutionary Character Creation.py", line 1448, in broadcast_message_to_VAM_rating_blocker
  File "VAM Evolutionary Character Creation.py", line 1456, in write_value_to_VAM_file
  File "json\__init__.py", line 293, in load
  File "json\__init__.py", line 357, in loads
  File "json\decoder.py", line 340, in decode
json.decoder.JSONDecodeError: Extra data: line 77 column 2 (char 1689)

And this when generating pairs, but only when trying to connect the vam app. It seems to work for a moment, but the immediately drops the connection after connecting:

Code:
...
Writing appearance to: F:\CustomPrograms\Misc\VaM 1.19\Custom/Atom/Person/Appearance\VAM Evolutionary Character Creation\Preset_Evolutionary_Child_20.vap
VAM is ready, let's go.
Switching view
Resetting ratings
Sending generation number
Exception in Tkinter callback
Traceback (most recent call last):
  File "tkinter\__init__.py", line 1892, in __call__
  File "tkinter\__init__.py", line 814, in callit
  File "VAM Evolutionary Character Creation.py", line 1363, in <lambda>
  File "VAM Evolutionary Character Creation.py", line 1357, in scan_vam_for_command_updates
  File "VAM Evolutionary Character Creation.py", line 1406, in execute_VAM_command
  File "VAM Evolutionary Character Creation.py", line 927, in switch_layout_to_overview
  File "VAM Evolutionary Character Creation.py", line 1448, in broadcast_message_to_VAM_rating_blocker
  File "VAM Evolutionary Character Creation.py", line 1456, in write_value_to_VAM_file
  File "json\__init__.py", line 293, in load
  File "json\__init__.py", line 357, in loads
  File "json\decoder.py", line 340, in decode
json.decoder.JSONDecodeError: Extra data: line 77 column 2 (char 1689)


EDIT: It doesn't seem to be any preset causing it? Selecting 2 random presets or even removing most of the presets from the folder doesn't seem to fix it.

I have tried redownloading the github app as well.
 
Last edited:
Getting similar errors.
Python:
  File "tkinter\__init__.py", line 1892, in __call__
  File "VAM Evolutionary Character Creation.py", line 755, in <lambda>
  File "VAM Evolutionary Character Creation.py", line 1250, in generate_next_population
  File "VAM Evolutionary Character Creation.py", line 1605, in gaussian_initialize_population
  File "VAM Evolutionary Character Creation.py", line 1644, in get_means_from_morphlists
KeyError: 'value'
Curiously enough, random crossover works fine.
 
Back
Top Bottom