NitroxNova / humanizer

convert MPFB2 to Godot4
The Unlicense
126 stars 12 forks source link

I want to understand the structure of this project to use this project in my own project with c#? #26

Closed unicornlox closed 1 month ago

unicornlox commented 1 month ago

hello, as I understand it, it's all about checking this file. the file is:res://addons/humanizer/data/resources/target_data.res. am I understanding correctly? How can I open the file with res extension? and how did you get the target_data.res file.

NitroxNova commented 1 month ago

the target_data.res is a compiled version of the target files from make human : https://github.com/makehumancommunity/makehuman/tree/master/makehuman/data/targets which are plain text. you have to open the project in godot to read the .res file

unicornlox commented 1 month ago

Thank you very much for your reply. How can files with .target extension be combined in bulk and compiled with .res extension, do you have any information about this and in addition, for example, is the design made by changing the mesh vertex codes in the l-ear-flap-decr.target file in this link. if this is the case, can you give a very short code example, this is very valuable for me to learn at the beginning. I apologise for taking your time and thank you very much again.

NitroxNova commented 1 month ago

so i restructured the data into packed arrays, here is the resource definition https://github.com/NitroxNova/humanizer/blob/master/scripts/resources/target_data.gd here is where i extract the data from the files and populate the target data https://github.com/NitroxNova/humanizer/blob/master/scripts/preprocessing/shapekey_reader.gd then there is the target config data for each human - https://github.com/NitroxNova/humanizer/blob/master/scripts/resources/target_config.gd you can then manipulate the data using the set_targets functions in https://github.com/NitroxNova/humanizer/blob/master/scripts/services/target.gd and https://github.com/NitroxNova/humanizer/blob/master/scripts/services/macros.gd

NitroxNova commented 1 month ago

the target data itself is simply vertex ids and their relative coordinate positions, which are then multiplied by the target percent and added to the base mesh https://github.com/makehumancommunity/makehuman/blob/master/makehuman/data/3dobjs/base.obj alot of the targets can be applied individually, such as your left ear, but there are also macros (height, weight, age, gender, race..) which have to be applied in combination or it wont look right

unicornlox commented 1 month ago

@NitroxNova thank you very much for your interest.