asdt123123 Posted February 1, 2023 Posted February 1, 2023 SlaveTattoo position exporter for RapeTattoo's View File Description This is a simple tool for exporting your slavetattoo's into the format required for RapeTattoos, along with automated positioning based on reference color-based maps. Just quickly threw it together so I wouldn't have to go through the hassle of manually mapping out tattoos. It supports only face, and body. Not for any other reason other then I was too lazy to do hands. Although programmatically, it would be extremely simple to include if you want to (Just a matter of copy/pasting) How to use Click the Exporter.exe to open the program. (Or compile the software from the source) Put the absolute path of your slavetats folder for your desired mod. IE: C:\SkyrimSEMods\mods\SlaveTats AIO5\Textures\Actors\Character\slavetats\ Allow the program to read all your SlaveTattoo json files for information, then your DDS files for mapping out the physical position tats_output.json will be generated after the software is complete. Copy the elements into your Documents\My Games\Skyrim Special Edition\JCUser\rTats\settings.json file from RapeTattoos, and or your template file from the mod. Run your settings.json file through an online JSON format validator to insure there's no errors: https://jsonlint.com/ How to modify position definitions All the body parts are crudely defined by colors exact colors (RGB). You just grab a female body texture, and paint it the specific colors contained inside my reference pictures. You MUST retain the original sizes, which is 1024x1024 for the body and 512x512 for the face. License MIT - https://choosealicense.com/licenses/mit/ You can do WHATEVER you want with the source-code or binaries. I do not care Known Issues Little error handling, if you have trouble with the application chances are files are missing Does not map HAND tattoos yet due to lazyness Probably mixed up left/right on some of the arms/legs. Easily corrected by just color swapping Assumes your files are all RGBA Other Virus-Total: https://www.virustotal.com/gui/file/d4fcb7c5f97df720a09f452f730ee9db88e94cdf86145feb2d4ab22999ef4f63/detection Submitter asdt123123 Submitted 02/01/2023 Category Adult Mods Requires https://www.loverslab.com/files/file/3587-rapetattoos/ Regular Edition Compatible Yes
gdfll Posted February 2, 2023 Posted February 2, 2023 Nice, long ago I made something similar in Matlab, when I still had access to it. Must adapt it to Octave, but now I probably dont need to do that.
Loopmc Posted February 5, 2023 Posted February 5, 2023 Don't know why but crashes when used for CVScrawlsB, it straight up fails it might be handy for others to know which is crashing it.
asdt123123 Posted February 7, 2023 Author Posted February 7, 2023 On 2/4/2023 at 7:25 PM, Loopmc said: Don't know why but crashes when used for CVScrawlsB, it straight up fails it might be handy for others to know which is crashing it. Don't know why but his "texture" json key was "textureB". Either he made a mistake, or that represents a different type of overlay? I added error handling in 1.0.1
Mayakashi Posted March 12, 2023 Posted March 12, 2023 hello i have try for Sexy_Supplemental but didn't sort them , i need checks hole tattoos my self ...
yeahhowaboutnooo Posted March 20, 2023 Posted March 20, 2023 Thanks for the mod! FYI: you can easily multithread such for loops with OpenMP: (also need to enable /fopenmp in visual studio) @@ -320,7 +320,9 @@ directory = entry.path().string(); } - for (const auto& elem : json_obj) { + #pragma omp parallel for + for(int i = 0; i < json_obj.size(); i++){ + const auto elem = json_obj[i]; if (!elem.count("area") || !elem.count("texture")) { cout << "Incorrect format, or missing 'area'/'texture' on element: " << endl << elem << endl; Attached the modified source and binary below tat position exporter.exe Source.cpp 2
Langmans Posted May 6, 2023 Posted May 6, 2023 On 3/20/2023 at 11:30 PM, yeahhowaboutnooo said: Thanks for the mod! FYI: you can easily multithread such for loops with OpenMP: (also need to enable /fopenmp in visual studio) @@ -320,7 +320,9 @@ directory = entry.path().string(); } - for (const auto& elem : json_obj) { + #pragma omp parallel for + for(int i = 0; i < json_obj.size(); i++){ + const auto elem = json_obj[i]; if (!elem.count("area") || !elem.count("texture")) { cout << "Incorrect format, or missing 'area'/'texture' on element: " << endl << elem << endl; Attached the modified source and binary below tat position exporter.exe 254.5 kB · 6 downloads Source.cpp 8.75 kB · 2 downloads The lines printed before system("pause") should maybe be delayed until all json files have been processed? that way, only one pause needs to be added just before the program exits and the program can just print all errors at the end.
tznvlw Posted March 9, 2024 Posted March 9, 2024 I've read all your comments and I have an idea, is it possible to have the program automatically skip invalid tattoos (automatically skip those files that don't match the rape tattoo json format), and after generating the results, output a detailed report to the file (both successful and unsuccessful)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now