qtm.data.object.skeleton
Access skeletons.
import qtm
skeleton_ids = qtm.data.object.skeleton.get_skeleton_ids()
print(skeleton_ids)
# [8495, 8651]
skeleton_name = qtm.data.object.skeleton.get_skeleton_name(skeleton_ids[0])
print(skeleton_name)
# Eli
print(qtm.data.object.skeleton.find_skeleton(skeleton_name))
# 8495
segment_ids = qtm.data.object.skeleton.get_segment_ids(skeleton_ids[0])
print(segment_ids)
# [8496, 8507, 8515, 8522, 8528, 8534, 8540, 8547, 8555, 8561, 8567, 8574, ... ...
print(qtm.data.object.skeleton.get_segment_name(segment_ids[0]))
# Hips
print(qtm.data.object.skeleton.get_segment_markers(segment_ids[0]))
# [{'name': 'WaistRFront', 'position': [120.28204047346821, 202.23087588521537, ... ...
print(qtm.data.object.skeleton.get_segment_degrees_of_freedom(segment_ids[0]))
# {'rotation_x': {'constraint': None, 'couplings': [], 'goal': None}, 'rotation_y': ... ...
segment_child_ids = qtm.data.object.skeleton.get_segment_child_ids(segment_ids[0])
print(segment_child_ids)
# [8507, 8597, 8624]
print(qtm.data.object.skeleton.get_segment_name(segment_child_ids[0]))
# Spine
skeleton_ids = qtm.data.object.skeleton.get_skeleton_ids()
print(skeleton_ids)
-- {8495, 8651}
skeleton_name = qtm.data.object.skeleton.get_skeleton_name(skeleton_ids[1])
print(skeleton_name)
-- Eli
print(qtm.data.object.skeleton.find_skeleton(skeleton_name))
-- 8495
segment_ids = qtm.data.object.skeleton.get_segment_ids(skeleton_ids[1])
print(segment_ids)
-- {8496, 8507, 8515, 8522, 8528, 8534, 8540, 8547, 8555, 8561, 8567, 8574, ... ...
print(qtm.data.object.skeleton.get_segment_name(segment_ids[1]))
-- Hips
print(qtm.data.object.skeleton.get_segment_markers(segment_ids[1]))
-- {{weight = 1.0, name = "WaistRFront", position = {120.28204047347, 202.23087588522, ... ...
print(qtm.data.object.skeleton.get_segment_degrees_of_freedom(segment_ids[1]))
-- {translation_x = {couplings = {}}, rotation_z = {couplings = {}}, rotation_x = ... ...
segment_child_ids = qtm.data.object.skeleton.get_segment_child_ids(segment_ids[1])
print(segment_child_ids)
-- {8507, 8597, 8624}
print(qtm.data.object.skeleton.get_segment_name(segment_child_ids[1]))
-- Spine
curl --json "" http://localhost:7979/api/scripting/qtm/data/object/skeleton/get_skeleton_ids/
:: [8495,8651]
set skeleton_id=8495
curl --json "[%skeleton_id%]" http://localhost:7979/api/scripting/qtm/data/object/skeleton/get_skeleton_name/
:: "Eli"
set skeleton_name=\"Eli\"
curl --json "[%skeleton_name%]" http://localhost:7979/api/scripting/qtm/data/object/skeleton/find_skeleton/
:: 8495
curl --json "[%skeleton_id%]" http://localhost:7979/api/scripting/qtm/data/object/skeleton/get_segment_ids/
:: [8496,8507,8515,8522,8528,8534,8540,8547,8555,8561,8567,8574,8582,8589,8597,8603,8610,8617, ... ...
set segment_id=8496
curl --json "[%segment_id%]" http://localhost:7979/api/scripting/qtm/data/object/skeleton/get_segment_name/
:: "Hips"
curl --json "[%segment_id%]" http://localhost:7979/api/scripting/qtm/data/object/skeleton/get_segment_markers/
:: [{"name":"WaistRFront","position":[120.28204047346821,202.23087588521537,61.546423666081523], ... ...
curl --json "[%segment_id%]" http://localhost:7979/api/scripting/qtm/data/object/skeleton/get_segment_degrees_of_freedom/
:: {"rotation_x":{"constraint":null,"couplings":[],"goal":null},"rotation_y":{"constraint":null, ... ...
curl --json "[%segment_id%]" http://localhost:7979/api/scripting/qtm/data/object/skeleton/get_segment_child_ids/
:: [8507,8597,8624]
set segment_child_id=8507
curl --json "[%segment_child_id%]" http://localhost:7979/api/scripting/qtm/data/object/skeleton/get_segment_name/
:: "Spine"
get_skeleton_id
Get a skeleton identifier by index.
qtm.data.object.skeleton.get_skeleton_id(index)
Parameters
index
integer
The index of the skeleton.
Returns
integer
get_skeleton_ids
Get all skeleton identifiers.
qtm.data.object.skeleton.get_skeleton_ids()
Returns
[integer]
get_skeleton_count
Get the number of skeletons.
qtm.data.object.skeleton.get_skeleton_count()
Returns
integer
get_skeleton_name
Get the name of a skeleton.
qtm.data.object.skeleton.get_skeleton_name(skeleton_id)
Parameters
skeleton_id
integer
The skeleton identifier.
Returns
string
get_skeleton_scale
Get the scale of a skeleton.
qtm.data.object.skeleton.get_skeleton_scale(skeleton_id)
The scale represents the size of the skeleton relative to e.g. an avatar. It is used when exporting and streaming such that the scale of the output is always 1.0.
Parameters
skeleton_id
integer
The skeleton identifier.
Returns
float
get_skeleton_root_id
Get the root segment identifier in a skeleton.
qtm.data.object.skeleton.get_skeleton_root_id(skeleton_id)
Parameters
skeleton_id
integer
The skeleton identifier.
Returns
integer
get_segment_id
Get a segment identifier in a skeleton by index.
qtm.data.object.skeleton.get_segment_id(skeleton_id, index)
Parameters
skeleton_id
integer
The skeleton identifier.
index
integer
The segment index.
Returns
integer
get_segment_ids
Get all segment identifiers in a skeleton.
qtm.data.object.skeleton.get_segment_ids(skeleton_id)
Parameters
skeleton_id
integer
The skeleton identifier.
Returns
[integer]
get_segment_count
Get the number of segments in a skeleton.
qtm.data.object.skeleton.get_segment_count(skeleton_id)
Parameters
skeleton_id
integer
The skeleton identifier.
Returns
integer
get_segment_name
Get the name of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_name(segment_id)
Parameters
segment_id
integer
The segment identifier.
Returns
string
get_segment_solver
Get the solver of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_solver(segment_id)
A skeleton can have multiple solvers (e.g. the hands may be solved separately from the rest of the body). In this case, the solving will be done in a hierarchical manner, starting with the root (which must have a solver). Descendant body parts are then solved locally in the coordinate systems of their parent segments.
Parameters
segment_id
integer
The segment identifier.
Returns
"none"|"global_optimization"?
The segment solver (or null, if the segment is solved together with its ancestors).
get_segment_transform
Get the transform of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_transform(segment_id)
The transform represents the calibrated pose of the skeleton, and is used as the initial solution when solving.
Parameters
segment_id
integer
The segment identifier.
Returns
mat4x4f
The segment transform (in local coordinates with translation in millimeters).
get_segment_default_transform
Get the default transform of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_default_transform(segment_id)
The default transform brings skeletons with different zero poses (the pose where all segment rotations are zero) to the same default pose (e.g. a t-pose). This is mainly used for retargeting.
Parameters
segment_id
integer
The segment identifier.
Returns
mat4x4f
The segment default transform (in local coordinates with translation in millimeters).
get_segment_degrees_of_freedom
Get the degrees of freedom of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_degrees_of_freedom(segment_id)
Parameters
segment_id
integer
The segment identifier.
Returns
{"rotation_x"|"rotation_y"|"rotation_z"|"translation_x"|"translation_y"|"translation_z": {"constraint": {"lower_bound": float, "upper_bound": float}?, "couplings": [{"segment": string, "degree_of_freedom": "rotation_x"|"rotation_y"|"rotation_z"|"translation_x"|"translation_y"|"translation_z", "coefficient": float}], "goal": {"value": float, "weight": float}?}}
get_segment_endpoint
Get the endpoint of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_endpoint(segment_id)
Parameters
segment_id
integer
The segment identifier.
Returns
vec3f?
The segment endpoint (in local coordinates and millimeters). Or null, if the segment has children.
get_segment_markers
Get the markers of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_markers(segment_id)
Parameters
segment_id
integer
The segment identifier.
Returns
[{"name": string, "position": vec3f, "weight": float}]
The segment markers (with positions in local coordinates and millimeters).
get_segment_rigid_bodies
Get the rigid bodies of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_rigid_bodies(segment_id)
Parameters
segment_id
integer
The segment identifier.
Returns
[{"name": string, "transform": mat4x4f, "weight": float}]
The segment rigid bodies (with transforms in local coordinates and translations in millimeters).
get_segment_skeleton_id
Get the skeleton identifier of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_skeleton_id(segment_id)
Parameters
segment_id
integer
The segment identifier.
Returns
integer
get_segment_parent_id
Get the parent segment identifier of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_parent_id(segment_id)
Parameters
segment_id
integer
The segment identifier.
Returns
integer?
The parent segment identifier (or null, if the segment is the root).
get_segment_child_id
Get a child segment identifier of a segment in a skeleton by index.
qtm.data.object.skeleton.get_segment_child_id(segment_id, index)
Parameters
segment_id
integer
The segment identifier.
index
integer
The child index.
Returns
integer
get_segment_child_ids
Get all child segment identifiers of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_child_ids(segment_id)
Parameters
segment_id
integer
The segment identifier.
Returns
[integer]
get_segment_child_count
Get the number of child segments of a segment in a skeleton.
qtm.data.object.skeleton.get_segment_child_count(segment_id)
Parameters
segment_id
integer
The segment identifier.
Returns
integer
find_skeleton
Find a skeleton by name.
qtm.data.object.skeleton.find_skeleton(name)
Parameters
name
string
The name of the skeleton.
Returns
integer?
The identifier of the found skeleton (or null, if no skeleton was found).
find_segment
Find a segment in a skeleton by name.
qtm.data.object.skeleton.find_segment(skeleton_id, name)
Parameters
skeleton_id
integer
The skeleton identifier.
name
string
The name of the segment.
Returns
integer?
The identifier of the found segment (or null, if no segment was found).
help
Get the documentation for a module or method.
qtm.data.object.skeleton.help(method?)
Parameters
method
string?
The name of the method (if null, the documentation for the module will be returned instead).
Returns
string