diff --git a/assets/blender/characters/CMakeLists.txt b/assets/blender/characters/CMakeLists.txt new file mode 100644 index 0000000..184e950 --- /dev/null +++ b/assets/blender/characters/CMakeLists.txt @@ -0,0 +1,89 @@ +project(characters) + +set(EDITED_BLENDS_LIST + male + female +) +set(EDITED_BLEND_TARGETS) +set(CHARACTER_GLBS) +foreach(EDITED_BLEND ${EDITED_BLENDS_LIST}) +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/edited-normal-${EDITED_BLEND}.blend + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/edited-normal-${EDITED_BLEND}.blend + ${CMAKE_BINARY_DIR}/assets/blender/vrm-vroid-normal-${EDITED_BLEND}.blend + COMMAND ${CMAKE_COMMAND} + -E copy ${CMAKE_CURRENT_SOURCE_DIR}/edited-normal-${EDITED_BLEND}.blend + ${CMAKE_CURRENT_BINARY_DIR}/edited-normal-${EDITED_BLEND}.blend + COMMAND ${BLENDER} -b -Y + ${CMAKE_CURRENT_BINARY_DIR}/edited-normal-${EDITED_BLEND}.blend + -P ${CMAKE_SOURCE_DIR}/assets/blender/scripts/copy_animations.py -- + ${CMAKE_BINARY_DIR}/assets/blender/vrm-vroid-normal-${EDITED_BLEND}.blend ${EDITED_BLEND} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} +) +list(APPEND EDITED_BLEND_TARGETS ${CMAKE_BINARY_DIR}/assets/blender/edited-normal-${EDITED_BLEND}.blend) +list(APPEND CHARACTER_GLBS ${CMAKE_BINARY_DIR}/characters/${EDITED_BLEND}/normal-${EDITED_BLEND}.glb) +endforeach() + +add_custom_command( + OUTPUT ${CHARACTER_GLBS} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CREATE_DIRECTORIES} + COMMAND ${BLENDER} -b -Y -P ${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_models.py + COMMAND ${CMAKE_COMMAND} -E touch ${CHARACTER_GLBS} + DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/scripts/export_models.py ${VRM_IMPORTED_BLENDS} ${EDITED_BLEND_TARGETS} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + +set(VRM_IMPORTED_BLENDS + ${CMAKE_BINARY_DIR}/assets/blender/vrm-vroid-normal-female.blend + ${CMAKE_BINARY_DIR}/assets/blender/vrm-vroid-normal-male.blend + ${CMAKE_BINARY_DIR}/assets/blender/shapes/male/vrm-vroid-normal-male-chibi.blend +) + +set(VRM_SOURCE) + +add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/characters/shapes/male/chibi/vroid-normal-male-chibi.glb +DEPENDS ${CMAKE_BINARY_DIR}/assets/blender/characters/shapes/male/chibi/vroid-normal-male-chibi.glb +COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/assets/blender/characters/shapes/male/chibi/vroid-normal-male-chibi.glb + ${CMAKE_BINARY_DIR}/characters/shapes/male/chibi/vroid-normal-male-chibi.glb) +add_custom_target(morph ALL DEPENDS MorphTargetsResearch ${CMAKE_BINARY_DIR}/characters/shapes/male/chibi/vroid-normal-male-chibi.glb) + +set(VRM_FILES buch1-chibi.vrm buch1.vrm jane2-dress.vrm jane2.vrm) +file(GLOB MIXAMO_FILES RELATIVE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/assets/blender/mixamo/**/*.fbx) +foreach(VRM_FILE ${VRM_FILES}) + set(OUTPUT_FILE "${CMAKE_BINARY_DIR}/assets/vroid/${VRM_FILE}") + set(INPUT_FILE "${CMAKE_SOURCE_DIR}/assets/vroid/${VRM_FILE}") + add_custom_command(OUTPUT "${OUTPUT_FILE}" + COMMAND ${CMAKE_COMMAND} -E copy "${INPUT_FILE}" "${OUTPUT_FILE}" + DEPENDS "${INPUT_FILE}" VERBATIM) + list(APPEND VRM_SOURCE "${OUTPUT_FILE}") +endforeach() +foreach(MIXAMO_FILE ${MIXAMO_FILES}) + set(OUTPUT_FILE "${CMAKE_BINARY_DIR}/assets/blender/mixamo/${MIXAMO_FILE}") + set(INPUT_FILE "${CMAKE_SOURCE_DIR}/assets/vroid/mixamo/${MIXAMO_FILE}") + add_custom_command(OUTPUT "${OUTPUT_FILE}" + COMMAND ${CMAKE_COMMAND} -E copy "${INPUT_FILE}" "${OUTPUT_FILE}" + DEPENDS "${INPUT_FILE}" VERBATIM) + list(APPEND VRM_SOURCE "${OUTPUT_FILE}") +endforeach() +add_custom_command(OUTPUT ${VRM_IMPORTED_BLENDS} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CREATE_DIRECTORIES} + COMMAND ${BLENDER} -b -Y -P ${CMAKE_SOURCE_DIR}/assets/blender/scripts/import_vrm.py + COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${VRM_IMPORTED_BLENDS} + DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/scripts/import_vrm.py + ${VRM_SOURCE} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + + +set(COPY_BLENDS edited-shape-test-male.blend edited-normal-male-base.blend) +foreach (COPY_BLEND_FILE ${COPY_BLENDS}) + add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/assets/blender/${COPY_BLEND_FILE} + DEPENDS ${CMAKE_SOURCE_DIR}/assets/blender/${COPY_BLEND_FILE} + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/assets/blender/${COPY_BLEND_FILE} + ${CMAKE_BINARY_DIR}/assets/blender/${COPY_BLEND_FILE} + ) + list(APPEND EDITED_BLEND_TARGETS ${CMAKE_BINARY_DIR}/assets/blender/${COPY_BLEND_FILE}) +endforeach() + +add_custom_target(edited-blends ALL DEPENDS ${EDITED_BLEND_TARGETS}) + +add_custom_target(import_vrm DEPENDS ${CHARACTER_GLBS})