Taxi demo update with sedan

This commit is contained in:
2026-09-17 02:55:53 +03:00
parent c748a7dd1e
commit 3c7f50a4ef
21 changed files with 2007 additions and 105 deletions
+45 -1
View File
@@ -2,7 +2,9 @@ project(vehicles)
set(VEHICLES_SRC boat-big.blend boat.blend
boat-gobbot.blend boat-sails.blend
raft.blend tiny-boat.blend)
raft.blend tiny-boat.blend
forklift.blend crate.blend pad.blend
wall.blend sedan-a.blend sedan-taxi.blend)
set(VEHICLE_OUTPUT_FILES)
foreach(VEHICLE_FILE ${VEHICLES_SRC})
@@ -22,4 +24,46 @@ foreach(VEHICLE_FILE ${VEHICLES_SRC})
list(APPEND VEHICLE_OUTPUT_FILES ${VEHICLE_OUTPUT_FILE} ${CMAKE_BINARY_DIR}/resources/vehicles/${FILE_NAME}.scene)
endforeach()
# Convention-built drivable vehicles: same mesh/material export plus a
# generated scene-entity JSON fragment (<name>.vehicle.json, see
# assets/blender/scripts/gen_vehicle.py and vehicles/CAR_MODELING.md).
set(VEHICLES_GEN_SRC sedan-v2.blend)
foreach(VEHICLE_FILE ${VEHICLES_GEN_SRC})
get_filename_component(FILE_NAME ${VEHICLE_FILE} NAME_WE)
set(VEHICLE_OUTPUT_FILE ${CMAKE_BINARY_DIR}/resources/vehicles/${FILE_NAME}.glb)
set(VEHICLE_JSON_FILE ${CMAKE_BINARY_DIR}/resources/vehicles/${FILE_NAME}.vehicle.json)
add_custom_command(
OUTPUT ${VEHICLE_OUTPUT_FILE} ${CMAKE_BINARY_DIR}/resources/vehicles/${FILE_NAME}.scene ${VEHICLE_JSON_FILE}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/resources/vehicles
COMMAND ${BLENDER} ${CMAKE_CURRENT_SOURCE_DIR}/${VEHICLE_FILE}
-b -Y -P
${CMAKE_SOURCE_DIR}/assets/blender/scripts/gen_vehicle.py
-- ${VEHICLE_OUTPUT_FILE} ${VEHICLE_JSON_FILE}
COMMAND ${CMAKE_COMMAND} -D FILE=${CMAKE_BINARY_DIR}/resources/vehicles/${FILE_NAME}.glb -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/check_file_size.cmake
COMMAND ${CMAKE_COMMAND} -D FILE=${CMAKE_BINARY_DIR}/resources/vehicles/${FILE_NAME}.scene -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/check_file_size.cmake
COMMAND touch ${VEHICLE_OUTPUT_FILE}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${VEHICLE_FILE} ${CMAKE_SOURCE_DIR}/assets/blender/scripts/gen_vehicle.py)
list(APPEND VEHICLE_OUTPUT_FILES ${VEHICLE_OUTPUT_FILE} ${CMAKE_BINARY_DIR}/resources/vehicles/${FILE_NAME}.scene ${VEHICLE_JSON_FILE})
endforeach()
add_custom_target(import_vehicles ALL DEPENDS ${VEHICLE_OUTPUT_FILES})
# One-step vehicle refresh: re-export changed .blend files (import_vehicles),
# re-stage the resources for the editScene runtime and re-merge the generated
# vehicle entity JSONs into the demo-taxi scenes. NOTE: the merge step EDITS
# the source scene JSONs under src/features/editScene/demos/demo-taxi (that is
# the point - merge_vehicle.py preserves entity id/name/transform, so hand
# edits to placement survive). Run after editing a vehicle .blend:
# cmake --build <build-dir> --target update_vehicles
set(DEMO_TAXI_DIR ${CMAKE_SOURCE_DIR}/src/features/editScene/demos/demo-taxi)
add_custom_target(update_vehicles
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_BINARY_DIR}/resources
${CMAKE_BINARY_DIR}/src/features/editScene/resources
COMMAND python3 merge_vehicle.py demo_scene_vehicletest.json
${CMAKE_BINARY_DIR}/resources/vehicles/sedan-v2.vehicle.json sedan1
COMMAND python3 merge_vehicle.py demo_scene_exterior.json
${CMAKE_BINARY_DIR}/resources/vehicles/sedan-v2.vehicle.json sedan_plain
WORKING_DIRECTORY ${DEMO_TAXI_DIR}
DEPENDS import_vehicles)