Better narration processing
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
project(building-parts)
|
||||
set(PARTS_FILES pier.blend)
|
||||
set(FURNITURE_FILES furniture.blend)
|
||||
set(FURNITURE_FILES furniture.blend furniture-sofa.blend)
|
||||
set(PARTS_OUTPUT_DIRS)
|
||||
foreach(PARTS_FILE ${PARTS_FILES})
|
||||
get_filename_component(FILE_NAME ${PARTS_FILE} NAME_WE)
|
||||
|
||||
@@ -49,9 +49,10 @@ def export_root_objects_to_gltf(output_dir):
|
||||
else:
|
||||
desc["tags"] = []
|
||||
desc["sensors"] = []
|
||||
desc["actions"] = []
|
||||
desc["positions"] = []
|
||||
for child in obj.children:
|
||||
if child.name.startswith("sensor-"):
|
||||
if child.name.startswith("action-"):
|
||||
if not "action" in child:
|
||||
continue
|
||||
if not "height" in child:
|
||||
@@ -64,29 +65,29 @@ def export_root_objects_to_gltf(output_dir):
|
||||
local_rot_d = ogre_local_matrix.to_quaternion()
|
||||
local_pos = [round(x, 4) for x in local_pos_d]
|
||||
local_rot = [round(x, 4) for x in local_rot_d]
|
||||
sensor = {}
|
||||
sensor["position_x"] = local_pos[0]
|
||||
sensor["position_y"] = local_pos[2]
|
||||
sensor["position_z"] = local_pos[1]
|
||||
sensor["rotation_w"] = local_rot[0]
|
||||
sensor["rotation_x"] = local_rot[1]
|
||||
sensor["rotation_y"] = local_rot[2]
|
||||
sensor["rotation_z"] = local_rot[3]
|
||||
sensor["height"] = child["height"]
|
||||
sensor["radius"] = child["radius"]
|
||||
sensor["action"] = child["action"]
|
||||
action = {}
|
||||
action["position_x"] = local_pos[0]
|
||||
action["position_y"] = local_pos[1]
|
||||
action["position_z"] = local_pos[2]
|
||||
action["rotation_w"] = local_rot[0]
|
||||
action["rotation_x"] = local_rot[1]
|
||||
action["rotation_y"] = local_rot[2]
|
||||
action["rotation_z"] = local_rot[3]
|
||||
action["height"] = child["height"]
|
||||
action["radius"] = child["radius"]
|
||||
action["action"] = child["action"]
|
||||
if "action_text" in child:
|
||||
sensor["action_text"] = child["action_text"]
|
||||
action["action_text"] = child["action_text"]
|
||||
else:
|
||||
sensor["action_text"] = child["action"].capitalize()
|
||||
action["action_text"] = child["action"].capitalize()
|
||||
if "name" in child:
|
||||
sensor["name"] = child["name"]
|
||||
action["name"] = child["name"]
|
||||
else:
|
||||
sensor["name"] = desc["name"] + "_" + str(len(desc["sensors"]))
|
||||
sensor["furniture"] = {}
|
||||
sensor["furniture"]["name"] = desc["name"]
|
||||
sensor["furniture"]["tags"] = desc["tags"]
|
||||
sensor["positions"] = []
|
||||
action["name"] = desc["name"] + "_" + str(len(desc["actions"]))
|
||||
action["furniture"] = {}
|
||||
action["furniture"]["name"] = desc["name"]
|
||||
action["furniture"]["tags"] = desc["tags"]
|
||||
action["positions"] = []
|
||||
for schild in child.children:
|
||||
if schild.name.startswith("position-"):
|
||||
local_matrix = schild.matrix_local
|
||||
@@ -107,8 +108,8 @@ def export_root_objects_to_gltf(output_dir):
|
||||
position["rotation_x"] = local_rot[1]
|
||||
position["rotation_y"] = local_rot[2]
|
||||
position["rotation_z"] = local_rot[3]
|
||||
sensor["positions"].append(position)
|
||||
desc["sensors"].append(sensor)
|
||||
action["positions"].append(position)
|
||||
desc["actions"].append(action)
|
||||
if child.name.startswith("position-"):
|
||||
local_matrix = child.matrix_local
|
||||
ogre_local_matrix = basis_change @ local_matrix @ basis_change.inverted()
|
||||
|
||||
BIN
assets/blender/buildings/parts/furniture-sofa.blend
LFS
Normal file
BIN
assets/blender/buildings/parts/furniture-sofa.blend
LFS
Normal file
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user