Ser/der armature and bone names for debugging purposes

main
parent 23d391a1a2
commit 66cd204628

@ -13,7 +13,6 @@ D = bpy.data
ROOMS_EXPORT_NAME = "rooms" ROOMS_EXPORT_NAME = "rooms"
EXPORT_DIRECTORY = "../assets/exported_3d" EXPORT_DIRECTORY = "../assets/exported_3d"
if os.path.exists(bpy.path.abspath(f"//{EXPORT_DIRECTORY}")): if os.path.exists(bpy.path.abspath(f"//{EXPORT_DIRECTORY}")):
shutil.rmtree(bpy.path.abspath(f"//{EXPORT_DIRECTORY}")) shutil.rmtree(bpy.path.abspath(f"//{EXPORT_DIRECTORY}"))
os.makedirs(bpy.path.abspath(f"//{EXPORT_DIRECTORY}")) os.makedirs(bpy.path.abspath(f"//{EXPORT_DIRECTORY}"))
@ -152,6 +151,7 @@ def export_armatures():
with open(output_filepath, "wb") as f: with open(output_filepath, "wb") as f:
write_b8(f, True) # first byte is true if it's an armature file write_b8(f, True) # first byte is true if it's an armature file
write_string(f, armature_object.name)
write_string(f, mesh_image_filename) write_string(f, mesh_image_filename)
bones_in_armature = [] bones_in_armature = []
for b in armature_object.data.bones: for b in armature_object.data.bones:
@ -173,6 +173,7 @@ def export_armatures():
assert False, f"Couldn't find parent of bone {b}" assert False, f"Couldn't find parent of bone {b}"
#print(f"Parent of bone {b.name} is index {parent_index} in list {bones_in_armature}") #print(f"Parent of bone {b.name} is index {parent_index} in list {bones_in_armature}")
write_string(f, b.name)
write_i32(f, parent_index) write_i32(f, parent_index)
write_4x4matrix(f, model_space_pose) write_4x4matrix(f, model_space_pose)
write_4x4matrix(f, inverse_model_space_pose) write_4x4matrix(f, inverse_model_space_pose)

@ -916,6 +916,7 @@ typedef struct Bone
struct Bone *parent; struct Bone *parent;
Mat4 matrix_local; Mat4 matrix_local;
Mat4 inverse_model_space_pos; Mat4 inverse_model_space_pos;
MD_String8 name;
float length; float length;
} Bone; } Bone;
@ -1096,6 +1097,8 @@ Armature load_armature(MD_Arena *arena, MD_String8 binary_file, MD_String8 armat
ser_bool(&ser, &is_armature); ser_bool(&ser, &is_armature);
assert(is_armature); assert(is_armature);
ser_MD_String8(&ser, &to_return.name, arena);
MD_String8 image_filename; MD_String8 image_filename;
ser_MD_String8(&ser, &image_filename, scratch.arena); ser_MD_String8(&ser, &image_filename, scratch.arena);
arena->align = 16; // SSE requires quaternions are 16 byte aligned arena->align = 16; // SSE requires quaternions are 16 byte aligned
@ -1113,6 +1116,7 @@ Armature load_armature(MD_Arena *arena, MD_String8 binary_file, MD_String8 armat
BlenderMat inverse_model_space_pose; BlenderMat inverse_model_space_pose;
MD_i32 parent_index; MD_i32 parent_index;
ser_MD_String8(&ser, &next_bone->name, arena);
ser_int(&ser, &parent_index); ser_int(&ser, &parent_index);
ser_BlenderMat(&ser, &model_space_pose); ser_BlenderMat(&ser, &model_space_pose);
ser_BlenderMat(&ser, &inverse_model_space_pose); ser_BlenderMat(&ser, &inverse_model_space_pose);

Loading…
Cancel
Save